paper009 2021-11-06 17:41 采纳率: 50%
浏览 1059
已结题

用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条回答 默认 最新

  • 笨鸟快飞呀 2021-11-06 21:58
    关注

    一看你就是个认真学习的同学。
    看上面的代码,一共有两个问题:
    问题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']
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月27日
  • 已采纳回答 11月19日
  • 修改了问题 11月6日
  • 创建了问题 11月6日