📜  改变将逻辑放入代码的方式Python

📅  最后修改于: 2022-05-13 01:54:23.046000             🧑  作者: Mango

改变将逻辑放入代码的方式Python

这些年来,您是否对使用相同的传统逻辑进行编码感到无聊。是时候带来一些差异了。好吧,无论是任何编程语言。当我们被要求做一些基本的编程练习,比如排序、搜索、质数检查等时,我们都被驱赶到同一条船上,这是相同的编码逻辑。现在,我们已经过去了 2020 年,所以在编码方面,让我们也主动改变我们的思维方式。这是因为,只有当我们以不同的方式思考时,我们才能以不同的方式编码。

让我们深入了解那些精彩的编码技巧。

检查给定数字是奇数还是偶数

当然,多么简单的问题。我们可以使用模运算符轻松检查偶数或奇数。你想知道怎么做吗?请看下面的Python代码片段——

Python3
a = 4
  
if(a % 2 == 0):
    print("even")
else:
    print("odd")


Python3
a = 4
    
if(a & 1):
    print("odd")
else:
    print("even")


Python3
a = 10
  
if a>1:
    
    for i in range(2, (a//2)+1):
        
        if a % i == 0:
            print(a, "is not prime ")
            break
              
        else:
            print(a, "is prime ")
else:
    print(a, "is not prime ")


Python3
a = 10
i = 2
  
if a>1:
    
    while(i * i


Python3
k = 5
j = 2**k
p = k * j
  
print(p)


Python3
k = 5
  
print(k<


Python3
k = 5
j = 2**k
  
p = k//j
  
print(p)


Python3
k = 5
  
print(k>>k)


输出:

even

这里,取模运算用于确定获得的余数。所有偶数都可以被 2 整除。这意味着,在将偶数(例如 4)除以 2 时,我们将得到余数为 0。因此,在两个数之间应用模运算将使答案为 0。始终应用这个基本原理每当我们被要求检查奇数和偶数时,就开始编程。

你能不能换个思路?我们都教过我们的大脑逻辑,即一个数字除以 2 决定它是奇数还是偶数。传统上,所有编写代码的人都遵循这行代码。所以让我们开始挖掘一种常青树,但没有使用过的方法。

Python3

a = 4
    
if(a & 1):
    print("odd")
else:
    print("even")

输出:

even

这是使用按位与运算完成的。够酷!

位运算符逐位对整数进行操作。这是通过将整数转换为二进制,然后对每个相应位执行逻辑与运算来完成的。

注意:有关详细信息,请参阅Python位运算符

检查给定数字是否为素数?

那些能被 1 整除的数字并且只有那个数字被称为素数。素数的示例是 2、3、5、7 等,它们没有任何其他因数(不包括它们自己和 1)。我们都被教导过以下检查素数的逻辑。

Python3

a = 10
  
if a>1:
    
    for i in range(2, (a//2)+1):
        
        if a % i == 0:
            print(a, "is not prime ")
            break
              
        else:
            print(a, "is prime ")
else:
    print(a, "is not prime ")

输出:

10 is not prime 

但我们可以进一步优化它。它看起来像:

Python3

a = 10
i = 2
  
if a>1:
    
    while(i * i

输出:

10 is not prime 

两个代码都是正确的并输出相同的结果。但是第二个代码更优化,因为要检查因素,循环到给定数字的平方根就足够了,而不是检查到它的一半。

在上面的代码中,我们正在检查给定数字的因数。在每次迭代之后,我们必须增加循环变量“i”的值。它的功能直到 i^2 小于给定的数字。

将给定数字 k 乘以 2^k 并显示输出

这可以通过基本的数学步骤用任何语言轻松编码。所以步骤是:

  • 为变量“k”分配一个值,比如 5
  • 然后,我们必须将 2^5 的值存储在另一个变量 j 中。
  • 将 k 和 j 的内容相乘。
  • 显示输出。(这里 160 将是结果输出)

这可以用几行编码,代码如下:

Python3

k = 5
j = 2**k
p = k * j
  
print(p)

输出:

160

但是还有另一种更简单有效的方法。那是通过使用移位运算符。对变量 k 进行左移操作,k 次将产生如上所示相同的函数。所以优化后的代码会变成:

Python3

k = 5
  
print(k<

输出:

160

这两者都将产生相同的输出。

将给定数字除以 2^k 并显示输出

除法函数也类似于乘法函数。只有运算符改变。所以将一个数除以 2^k 的步骤如下:

  • 为变量“k”分配一个值,比如 5
  • 然后,我们必须将 2^5 的值存储在另一个变量 j 中。
  • 将 k 和 j 的内容相除。
  • 显示输出。(这里 160 将是结果输出)

基本除法的Python 3代码如下:

Python3

k = 5
j = 2**k
  
p = k//j
  
print(p)

输出:

0

我们可以根据我们的要求使用'//'进行整数除法和'/'进行地板除法。使用右移操作的优化代码如下所示:

Python3

k = 5
  
print(k>>k)

输出:

0

这两个代码都将导致输出“0”(整数除法)。

注意:有关详细信息,请参阅Python位运算符。

所有这些操作自历史以来就已经存在。但是我们忘了练习使用它们。为了我们不断变化的未来,让我们采用这些微小的变化并成为其中的一部分。