输出奇数而不带if



我只需要从这个程序中输出奇数:

m = int(input())
n = int(input())
for i in range(m, n - 1, -1,):
print(i)

请不要使用if

使用and而不是if:

i&1 and print(i)

(步骤-2的使用范围更好,我只是不喜欢这样的限制问题,总是试图以意想不到的方式绕过限制(。

您可以使用跨步范围,只要您进行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)

如果不能保证您的起始值是奇数,则会变得有点棘手,因为您不能简单地以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="")

我应该在这里声明我严格回答这个问题。我并不完全赞同这种方法。

最新更新