首页 新闻 会员 周边

关于python IDLE用户交互输入字符串转换成整数列表问题

0
悬赏园豆:20 [已解决问题] 解决于 2020-06-23 10:30

代码:

lst = []#定义一个空列表
str = input("请输入任意数字,用空格隔开:")
lst1 = str.split(" ") #接收用户输入

i = 0
while i <= len(lst1)+1:
lst.append(int(lst1.pop())) #转字符串转换成整数赋值lst
i += 1

print(lst)

问题

正常输入:1 2 3 4 5 6 7 8 9
应该导出的列表是[9,8,7,6,5,4,3,2,1]
但是交互导出的结果却是[9, 8, 7, 6, 5, 4] 少了 3 2 1
请帮我看看是哪里出了问题了

陈自深的主页 陈自深 | 初学一级 | 园豆:184
提问于:2020-06-22 19:14
< >
分享
最佳答案
0

别忘了结贴啊!你的代码有2个错误:
1,循环次数多了1次(实际上由于错误2,错误1没有体现出来)
2,每循环一次,列表的长度就少1,你还和这个长度比,就错了

if __name__ == "__main__":
    lst = []#定义一个空列表
    str = input("请输入任意数字,用空格隔开:")
    lst1 = str.split(" ") #接收用户输入

    i = 0
    length = len(lst1)
    while i < length:
        lst.append(int(lst1.pop())) #转字符串转换成整数赋值lst
        i += 1

    print(lst)
收获园豆:20
会长 | 专家六级 |园豆:12401 | 2020-06-23 09:25
其他回答(1)
0
#因为你每次循条件判断的时候list1的长度一直在减少,你应该
lst = []#定义一个空列表
str = input("请输入任意数字,用空格隔开:")
lst1 = str.split(" ") #接收用户输入
print(lst1)
i = 0
lst1_len = len(lst1)
while i <= lst1_len-1:
    print(lst1)
    lst.append(int(lst1.pop())) #转字符串转换成整数赋值lst
    i += 1

print(lst)



小小咸鱼YwY | 园豆:3210 (老鸟四级) | 2020-06-23 09:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册