为什么它显示我所有输入的重复?

时间:2017-03-01 07:01:17

标签: python

pres = ["Kennedy", "Lincoln", "Washington", "Trump"]

for presidents in pres:
    print ("%s" % presidents)

add = input("Please enter a president: ")
if add not in pres:
    pres.append(add)
pres.insert(-1,add)
add = input("Please enter a president: ")
if add not in pres:
    pres.append(add)
pres.insert(-1,add)
add = input("Please enter a president: ")
if add not in pres:
    pres.append(add)
pres.insert(-1,add)
add = input("Please enter a president: ")
if add not in pres:
    pres.append(add)
pres.insert(-1,add)
print (pres)

此程序也正确地覆盖了这个问题:编写一个程序,其中包含一个列有四位美国总统名单的列表。使用你想要的任何总统。然后,运行一个循环,将更多的总统添加到列表中。以列表作为唯一参数调用另一个函数。第二个函数应该对列表进行排序,然后循环遍历列表以在其自己的行上打印每个总统的名称。

例如,它将我的输出显示为:

Please enter a president: obama
Please enter a president: eisenhower
Please enter a president: truman
Please enter a president: obama
['Kennedy', 'Lincoln', 'Washington', 'Trump', 'obama', 'obama', 'eisenhower', 'eisenhower', 'truman', 'obama', 'truman']

1 个答案:

答案 0 :(得分:1)

add = input("Please enter a president: ")
if add not in pres:
    pres.append(add) #adding president if name is not present.
pres.insert(-1,add) #adding president again(doesn't matter if present or not)

所以删除第二个插入。

 add = input("Please enter a president: ")
if add not in pres:
    pres.append(add)

此外,你必须运行一个循环来增加四个总统,所以:

For i in range(4):
    add = input("Please enter a president: ")
    if add not in pres:
       pres.append(add);
    else:
       i = i-1;  #to add president, not already present.

最后,创建一个函数并将president-names作为参数传递,使用sort函数(使用sort()或sorted())并打印列表。

希望得到这个帮助。