问题描述
我想从用户那里获得输入数字并对其进行排序,然后打印出来。但这会导致属性错误:
AttributeError:'str'对象没有属性'sort'
-带有代码-
lucky_numbers = input("Write your favourite numbers: ")
ans = (lucky_numbers)
ans.sort()
print(ans)
解决方法
使用CamelCaseNamingStrategy
:
[JsonProperty( "camelCaseName" )]
输出:
split()
编辑:
如果要在lucky_numbers = input("Write your favourite numbers with a space: ")
numberList = lucky_numbers.split()
numberList.sort()
print(numberList)
中使用值:
Write your favourite numbers with a space: 50 40 -10
['-10','40','50']
,
如果数字用空格分隔,则可以调用split( )
以获得“数字字符串列表”。
然后,您可以调用map
将字符串转换为数字,例如list(map(int,stringlist))
这是您可以参考的简单演示。
lucky_numbers = input("Write your favourite numbers: ")
stringlist = lucky_numbers.split( )
numbers = list(map(int,stringlist))
numbers.sort()
for i in numbers:
print(i)
,
这可能是答案。您还需要将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)
这仅适用于整数,并且您可以做更多的工作来进行类型检查,并确保用户输入的内容为数字或数字,或者列表为空。这只是显示整个过程的简单示例。