gpt4 book ai didi

Python:有没有一种方法可以打印未知范围内的偶数且无需 if 语句?

转载 作者:太空宇宙 更新时间:2023-11-04 00:01:41 28 4
gpt4 key购买 nike

我在 Python 课上有作业要做,被问到这个问题:

Make a program that gets 2 numbers from the user, and prints all even numbers in the range of those 2 numbers, you can only use as many for statements as you want, but can't use another loops or if statement.

我明白我需要使用这段代码:

for num in range (x,y+1,2):
print (num)

但是没有任何 if 语句,我无法检查插入的值 x 是偶数还是奇数,以及用户是否插入了数字 5 as x, 所有的打印都是奇数。

我也尝试过将每个数字输入元组或数组,但我仍然无法检查第一个数字是否为偶数以开始打印。

def printEvenFor(x,y):
evenNumbers =[]
for i in range (x,y+1):
evenNumbers.append(i)
print (evenNumbers[::2])

def printEvenFor(x,y):
for i in range (x,y+1,2):
print(i,",")

我希望 printEvenFor(5,12) 的输出是 6,8,10,12 但它是 5,7,9,11

最佳答案

你可以通过先除法再乘法使 x 为偶数:

x = (x // 2) * 2

然后 x 将四舍五入为前一个偶数或保持不变,如果它是偶数之前。

如果你想把它四舍五入到你需要做的以下偶数:

x = ((x + 1) // 2) * 2

这可以通过使用移位运算符进一步改进:

x = (x >> 1) << 1         #Alternative 1
x = ((x + 1) >> 1) << 1 #Alternative 2

例子:

#Alternative 1
x = 9
x = (x >> 1) << 1
#x is now 8

#Alternative 2
x = 9
x = ((x + 1) >> 1) << 1
#x is now 10

第二种可能更适合你

关于Python:有没有一种方法可以打印未知范围内的偶数且无需 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55535138/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com