升序工作,但降序不起作用的python


Lower = (input ("Give lower limit: "))
Upper = (input ("Give upper limit: "))
Lower = int(Lower)
Upper = int(Upper)
X = input ("Ascending order (yes/no): ")
if X == 'yes':
for number in range(Lower,Upper+1):
print(number)
if X == 'no':
for number in range(Lower,Upper,-1):
print(number)

升序部分有效,但当 X == 'no' 时不打印数字

第二个循环被反转,请尝试以下操作:

Lower = (input ("Give lower limit: "))
Upper = (input ("Give upper limit: "))
Lower = int(Lower)
Upper = int(Upper)
X = input ("Ascending order (yes/no): ")
if X == 'yes':
for number in range(Lower,Upper+1):
print(number)
if X == 'no':
for number in range(Upper,Lower,-1):
print(number)

此外,如果您还需要打印Lower则需要更改为range(Upper,Lower-1,-1)

您一直错过了列表索引的领先优势。

范围可以有三个参数,开始停止步长。与负数索引相反,步长不会反向开始迭代,而只是递增起始值。

  • "开始"包含,默认值为 0
  • Stop 是排他性的,所以如果你想看到它,你应该在你的停止号中添加你想要的步骤,这是唯一需要的变量。
  • 步长,默认为 1。
Lower = int(input ("Give lower limit: ")) 
Upper = int(input ("Give upper limit: "))
X = input("Ascending order (yes/no): ").lower()
if X == 'yes': 
for number in range(Lower,Upper+1):  
print(number) 
if X == 'no': 
for number in range(Upper,Lower - 1,-1):   
print(number)

假设您要打印从 1 到 5 的数字。

上升

>>> for i in range(1,6,1): #note, step of 1 is the dafault value
...    print(i) 
1
2
3
4
5

>>> for i in range(5,0,-1):
...    print(i) 
5
4
3
2
1

最新更新