改变将逻辑放入代码的方式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
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
但我们可以进一步优化它。它看起来像:
输出:
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位运算符。
所有这些操作自历史以来就已经存在。但是我们忘了练习使用它们。为了我们不断变化的未来,让我们采用这些微小的变化并成为其中的一部分。