获取“ >>>”而不是我编写的字符串

时间:2020-05-15 12:10:16

标签: python

嗨,我使用的是Python 3,我正在尝试“用Python自动化无聊的东西”中的“逗号代码”程序(因此,您可能觉得我很陌生)。 如果用户输入的列表为空,我想打印“您的列表为空”,但是我却得到“您的列表为>>>”。为什么? 您可以在下面看到代码:

def commaCode(passedList):

    for i in (passedList):
        if len(passedList)==0:
            print('empty')
        elif passedList.index(i)<len(passedList)-1:
            print(str(i),end=', ')
        else:
            print ('and ' + (passedList[-1]))


passedList=list(input('insert a list:'))
print('you created the list', end=' ')
print(passedList)
print('your list is', end=' ')
commaCode(passedList)

2 个答案:

答案 0 :(得分:0)

因为commaCode不打印任何内容,并且您看到>>>提示符。

列表为空时,for i in passedList不执行任何操作,并且未遇到print('empty')

这是固定的

def commaCode(passedList):
    if not passedList:
        print("empty")
        return

    for i in passedList:
        if passedList.index(i) < len(passedList) - 1:
            print(str(i), end=", ")
        else:
            print("and " + (passedList[-1]))

,但是通过输入列表aabaa可能还会遇到另一个不相关的错误。 :)

答案 1 :(得分:0)

如果传递的列表为空,则永远不会进入循环。您需要在循环的外部print('empty')语句

def commaCode(passedList):

    if not passedList:
        print('empty')
        return

    for i, char in enumerate(passedList):
        if i < len(passedList) - 1:
            print(char, end=', ')
        else:
            print('and ' + char)
相关问题