嗨,我使用的是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)
答案 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)