问题描述
num_1 = int(input("Enter the first number >>>>"))
num_2 = int(input("Enter the second number >>>>"))
if num_1 > num_2:
for i in range(num_1,num_2+1):
print(i)
else:
for i in range(num_1,num_2,-1):
print(i)
这段代码有什么问题?一旦用户输入这两个数字,程序就会停止并且不会打印任何内容。
解决方法
你的逻辑是错误的。计数时需要检查num_1是否小于num_2。
ffmpeg -i input.mp4 -ar 8000 -ac 1 -s 352x288 -b:a 10.2k output.3g2
,
num_1 = int(input("Enter the first number >>>>"))
num_2 = int(input("Enter the second number >>>>"))
if num_1 < num_2:
for i in range(num_1,num_2,+1):
print(i)
else:
for i in range(num_1,-1):
print(i)
,
问题是您的第一个和第二个数字在范围内使用不正确。
范围首先取较小的数字,然后取较大的数字。您提供 if product = ProductFactory.create(prices__size=5)
then get num1 > num2
这不是迭代,因为没有元素从 range(num1,num2)
跨越到 num1
num2
num_1 = int(input("Enter the first number >>>>"))
num_2 = int(input("Enter the second number >>>>"))
if num_1 < num_2:
for i in range(num_1,num_2+1):
print(i)
else:
for i in range(num_1,-1):
print(i)
,
要从高数到低数,您需要做的不仅仅是反转步骤。如果您有,例如:
range(1,10,-1)
这从 1 开始,并尝试向后计数。 1 到 9 之间没有数字从 1 开始倒数,所以你会得到一个空集合:
>>> list(range(1,-1))
[]
您还需要反转参数:
>>> list(range(10,1,-1))
[10,9,8,7,6,5,4,3,2]
,
您遇到错误是因为您以错误的方式使用了 range
函数。
range(start,stop[,step])
-> 范围对象
这里如果没有提供步长和起始值,那么默认值将起始值视为 0,并且小于结束值。同样,start 是包含值,end 是不包含的。
简而言之 range(start,end,step)
-> start,start+step,start+step+step,....,end-1`
在您的代码中,
if num_1 > num_2:
for i in range(num_1,num_2+1):
# so on
这里你在检查,if num_1>num_2
,对for
做range(num_1. num_2)
操作,所以由于step不是你定义的,所以默认取为1
现在 range(num_1,num_2)
变成 []
为 num_1 > num_2
并且您无法通过将 1 添加到 num_1
来达到 num_2。即 list(range(num_1,num_2))
是 []
。
因为它是空的 for 循环不会工作并且它退出程序。当 num_1<num_2
时同样发生(以相反的方式)。
要解决此问题,您需要在范围内提供正确的值或更改 if 条件。
解决办法就是这样
if num_1 < num_2:
for i in range(num_1,-1):
print(i)