用python输入一个包含若干整数的列表,删除其中所有奇数,然后将剩余整数转换为字符串,输出包含这些字符串的列表。
问题描述:
想要的结果:例如,输入[1, 2, 3, 4, 5, 7,6, 8],输出[‘2’,’4’,’6’,’8’]。
以下是我的思路,还没有敲转换为字符串这一步的代码,目前的代码就已经出错了,系统提示的是if那一步出错,想请教一下具体是什么问题。谢谢!
x=input('请输入若干整数:')
lst=list(x)
i=len(lst)-1
while i>=0:
if int(lst[i])%2==1:
del lst[i]
i=i-1
else:
print(lst)
答
一看你就是个认真学习的同学。
看上面的代码,一共有两个问题:
问题1:
问题出在第一步,当你输入 1,2,3,4,5,6 的时候,x 获取的是一个字符串,也就是 “1,2,3,4,5,6”
而下一步你用 list(x)转换成lst的时候,也把逗号算进去了,所以此时lst的值是 ['1', ',', '2', ',', '3', ',', '4', ',', '5', ',', '6'] ,这是问题之一。
问题2:
在while循环语句中,当i为偶数的时候,进入eles循环,然而 i并没有变化,因此进入了 while死循环。
所以,我修改了部分代码如下参考:
x = input('请输入若干整数:')
lst = x.split(',')
print(lst)
i = len(lst)-1
while i >= 0:
if int(lst[i]) % 2 == 1:
del lst[i]
i = i-1
print(lst)
请输入若干整数:1,2,3,4,5,6
['1', '2', '3', '4', '5', '6']
['2', '4', '6']