【发布时间】:2022-01-21 17:50:00
【问题描述】:
我只需要从这个程序中输出奇数:
m = int(input())
n = int(input())
for i in range(m, n - 1, -1,):
print(i)
请不要如果
【问题讨论】:
-
您的问题是什么?预期输出与实际输出?
标签: python python-3.x
我只需要从这个程序中输出奇数:
m = int(input())
n = int(input())
for i in range(m, n - 1, -1,):
print(i)
请不要如果
【问题讨论】:
标签: python python-3.x
使用and 代替if:
i&1 and print(i)
(在步骤-2中更好地使用范围,我只是不喜欢这样的限制问题,并且总是尝试以意想不到的方式解决限制)。
【讨论】:
如果不能保证你的起始值是奇数,它会变得有点棘手,因为你不能简单地按 2 步。你仍然可以使用这样的条件(稍微)摆脱它:
m = int(input())
n = int(input())
for i in range(m, n):
output_str = (f"{str(i % 2)}" or "") * i
output_str += (i % 2) * '\n'
print(output, end="")
我应该在这里声明我严格回答这个问题。我并不完全赞同这种方法。
【讨论】:
output 变量。
你可以使用一个跨步范围,只要你让sur来调整起始数字:
m = int(input())
n = int(input())
for i in range(m+1-m%2,n+1,2): # start at next odd if m is even
print(i)
如果您希望它们按降序排列:
m = int(input())
n = int(input())
for i in reversed(range(m+1-m%2,n+1,2)):
print(i)
【讨论】:
m|1 而不是m+1-m%2。