如何从用户处获取输入数字并在用python打印之前对其进行排序
我想从用户那里得到输入的数字,并对其进行排序,然后打印出来。但它给出了属性错误: AttributeError:“str”对象没有属性“sort” --使用代码-- 使用如何从用户处获取输入数字并在用python打印之前对其进行排序,python,string,function,Python,String,Function,我想从用户那里得到输入的数字,并对其进行排序,然后打印出来。但它给出了属性错误: AttributeError:“str”对象没有属性“sort” --使用代码-- 使用split(): 输出: Write your favourite numbers with a space: 50 40 -10
split()
:
输出:
Write your favourite numbers with a space: 50 40 -10
['-10', '40', '50']
编辑:
如果要在int
中设置值:
numberList = [int(x) for x in numberList]
这是可能的答案。您还需要将str值转换为int
lucky_numbers = input("Write your favourite numbers: ")
ans = lucky_numbers.split()
ans_int = [int(i) for i in ans]
ans_int.sort()
print(ans_int)
您无法对其进行排序,因为输入函数返回用户键入的字符串,因此它将是字符串而不是列表,您无法对其进行排序。您的方法必须更改,并且必须将用户输入和数字存储在列表中。 类似的方法可能会奏效:
lucky_numbers = []
while True:
user_input = input('enter your favourite number or to exit enter Q:')
if user_input == 'Q':
break
else:
lucky_numbers.append(int(user_input))
lucky_numbers.sort()
print(lucky_numbers)
这只适用于整数,您还可以进行更多的类型检查,确保用户输入是数字或否,或者列表是否为空。这只是一个简单的例子来展示整个过程。如果您输入一个数字字符串(例如,用空格分隔),您需要将数字存储在
列表中,然后对其进行排序。嘿@wink-了解,在发布问题之前,您所做的是,输入的字符将是python中的字符串,需要类型转换
,然后才能排序
lucky_numbers = input("Write your favourite numbers: ")
ans = lucky_numbers.split()
ans_int = [int(i) for i in ans]
ans_int.sort()
print(ans_int)
lucky_numbers = []
while True:
user_input = input('enter your favourite number or to exit enter Q:')
if user_input == 'Q':
break
else:
lucky_numbers.append(int(user_input))
lucky_numbers.sort()
print(lucky_numbers)