用户输入,其中输出将按降序排序。
例如,输入数字:
您要输入更多内容吗?
如果是,请输入其他号码
如果回答否
中断参数并按降序对输出进行排序。
我使用raw_input
来查询和获取while循环来运行代码。但它只按降序对第一个输出和最后一个输出进行排序
a = raw_input("Enter a number: ")
while True:
b = raw_input("Do you want to input more: ")
c = raw_input("Enter another number:")
if b == 'yes':
print (c)
continue
elif b == 'no':
my_list = [a,c]
my_list.sort(reverse=True)
print(my_list)
break
我希望代码能够成功运行
Enter a number:2
Do you want to input more:yes
Enter another number:3
Do you want to input more:yes
Enter another number:4
Do you want to input more:no
[4,3,2]
答案 0 :(得分:2)
在 Python 3.x 中,使用input()
代替raw_input()
创建一个list
以便将用户输入追加到其中,以便稍后对其进行排序。
input_List = []
input_List.append(int(input("Enter a number: ")))
while True:
b = input("Do you want to input more: ")
if b == 'yes':
input_List.append(int(input("Enter a number: ")))
elif b == 'no':
input_List.sort(reverse=True)
break
print(input_List)
输出:
Enter a number: 5
Do you want to input more: yes
Enter a number: 7
Do you want to input more: yes
Enter a number: 90
Do you want to input more: no
[90, 7, 5]
答案 1 :(得分:0)
它应该像这样:
a = input("Enter a number: ")
l = [int(a)]
while True:
b = input("Do you want to input more: ")
if b == 'yes':
c = input("Enter another number:")
l.append(int(c))
elif b == 'no':
l.sort(reverse=True)
print(l)
break
答案 2 :(得分:0)
很多逻辑错误,还有更细微的错误
raw_input
返回一个字符串,除非转换为整数,否则不会获得正确的数字排序。append
,它将始终包含2个元素。 my_list = [a,c]
没有任何意义。我的建议:
# this is for retrocompatibility. Python 3 users will ditch raw_input altogether
try:
raw_input
except NameError:
raw_input = input # for python 3 users :)
# initialize the list with the first element
my_list = [int(raw_input("Enter a number: "))]
while True:
b = raw_input("Do you want to input more: ")
if b == 'yes':
# add one element
my_list.append(int(raw_input("Enter another number:")))
elif b == 'no':
my_list.sort(reverse=True)
print(my_list)
break
答案 3 :(得分:0)
您需要将新输入的值添加到列表中,而不是每次迭代都重新创建一个新变量。
以下是修改后的代码,使用input
而不是raw_input
来实现Python 3兼容性:
a = input('Enter number: ')
# create a list, add the first number
# we use a list so we can append each new number that is added
my_list = [a]
while True:
b = input("Do you want to input more: ")
if b == 'yes':
inputted = input("Enter another number: ")
my_list.append(inputted)
elif b == 'no':
break
my_list.sort(reverse=True) # reverse sort list
print(my_list)
请注意,我们会将新输入的值附加到在循环开始前 声明的数组中,以便在迭代之间存储这些值。然后,我们在列表末尾进行排序。
答案 4 :(得分:-1)
以下将起作用
my_list = []
a = int(raw_input("Enter a number: "))
my_list.append(a)
while True:
b = raw_input("Do you want to input more: ")
if b == 'yes':
c = int(raw_input("Enter another number:"))
my_list.append(c)
continue
elif b == 'no':
my_list.sort(reverse=True)
print(my_list)
break
输出:
Enter a number: 4
Do you want to input more: yes
Enter another number:3
Do you want to input more: yes
Enter another number:8
Do you want to input more: no
['8', '4', '3']