我是Python和学习列表的新手。这是我编写的用于排序数字的程序:
def sorting(final_input):
final_output= []
count = 0
length = len(final_input)
while count < length:
final_output.append(min(final_input))
final_input.remove(min(final_input))
count += 1
if count == (length):
break
return(final_output)
final_input = [5,6,57,531,9,1]
print(final_input)
print(sorting(final_input))
上述程序运行正常,并提供以下输出:
[5, 6, 57, 531, 9, 1]
[1, 5, 6, 9, 57, 531]
但是当我输入输入命令时(如下所示):
def sorting(final_input):
final_output= []
count = 0
length = len(final_input)
while count < length:
final_output.append(min(final_input))
final_input.remove(min(final_input))
count += 1
if count == (length):
break
return(final_output)
final_input = []
while True:
user_input = input("Enter number or quit: ")
if user_input == "quit":
break
final_input.append(user_input)
print(final_input)
print(sorting(final_input))
以上程序提供以下错误输出。我不清楚需要使用“输入”声明更新什么。任何帮助将不胜感激。
Enter number or quit: 5
Enter number or quit: 6
Enter number or quit: 57
Enter number or quit: 531
Enter number or quit: 9
Enter number or quit: 1
Enter number or quit: quit
['5', '6', '57', '531', '9', '1']
['1', '5', '531', '57', '6', '9']
答案 0 :(得分:1)
正如kvmahesh所回答的,input()
的返回类型始终为str
。如果您想要数字,则需要将其转换为int
。
while True:
user_input = input("Enter number or quit: ")
if user_input == "quit":
break
try:
final_input.append(int(user_input))
except ValueError:
print("Invalid input!")
try...except
块可以检查用户是否提供了一些无效输入(例如asdfg
)。
此外,如果您只想对列表进行排序,可以使用sorted()
:
final_input = sorted(final_input)
答案 1 :(得分:0)
stdin
值始终为string
类型。所以在追加int
行时使用final_input.append(int(user_input))
进行转换:
def sorting(final_input):
final_output= []
count = 0
length = len(final_input)
while count < length:
final_output.append(min(final_input))
final_input.remove(min(final_input))
count += 1
if count == (length):
break
return(final_output)
final_input = []
while True:
user_input = input("Enter number or quit: ")
if user_input == "quit":
break
final_input.append(int(user_input))
print(final_input)
print(sorting(final_input))
输出:
Enter number or quit: 3
Enter number or quit: 5
Enter number or quit: 1
Enter number or quit: 2
Enter number or quit: 100
Enter number or quit: quit
[3, 5, 1, 2, 100]
[1, 2, 3, 5, 100]
答案 2 :(得分:0)
使用此声明的输入
user_input = input(“输入数字或退出:”)
将以字符串数据类型的形式获取数据。所以您的输入采用字符串。所以排序不起作用
所以在附加
时将其设为intfinal_input.append(INT(USER_INPUT))