这是自动化教材中的一个练习。我应该创建一个函数,该函数将列表值作为参数,并返回一个字符串,该字符串的所有项都用逗号和空格分隔,并在最后一项之前插入“and”。我的代码还包括一个循环,供用户创建他们的列表。
def add_and(alist):
if ((alist != []) & (len(alist) > 2)):
for item in alist[:-1]:
print(item + ", ",end="")
print("and", alist[-1])
elif ((alist != []) & (len(alist) == 2)):
print(alist[0], "and", alist[1])
elif ((alist != []) & (len(alist) == 1)):
print(alist[0])
else:
print("")
your_list = []
while True:
print("Enter An Item or nothing")
item = input()
if ((item) == ""):
print("")
break
else:
your_list.append(item)
continue
add_and(your_list)我知道代码是有效的,但我想知道是否存在我正在实现的任何错误,或者是否有任何我可以做的事情来使它变得更干净。谢谢!
发布于 2020-12-12 15:52:53
and而不是二进制&join而不是for和级联。if中。else-以后-breakinput提示符留空建议:
def and_add(alist):
if len(alist) > 1:
print(', '.join(alist[:-1]), 'and', alist[-1])
elif len(alist) == 1:
print(alist[0])
else:
print('')
def get_input():
while True:
item = input('Enter an item or nothing: ')
if not item:
return
yield item
and_add(list(get_input())) https://codereview.stackexchange.com/questions/253361
复制相似问题