【发布时间】:2015-04-18 14:24:13
【问题描述】:
我正在尝试制作一个具有显示五个不同标志的函数的程序。用户从列表中选择这些标志。我最大的问题是打印每个标志,而不考虑我选择的标志。
我尝试将代码的每个部分单独保存到自己的函数中,并使用 if、elif、else 解决方案来限制打印的标志,但没有找到解决方案来解决似乎是循环的问题。我曾尝试将处理函数中的if、elif、else代码直接插入问题函数中,但没有发现这个有用。我还尝试在每个 if 语句之后放置一个 break 语句,以便在进行选择后结束循环,但这没有任何作用。
我做错了什么?循环是我最薄弱的环节,紧随其后的是 if 语句,我怀疑错误可能在于我的 if 语句,但我不确定。任何帮助将不胜感激,谢谢。
这是我的代码:
def main():
intro()
choice = question()
processing(choice)
unitedStates()
italy()
germany()
def intro():
print("program to draw a national flag.")
print()
def processing(choice):
for f in choice:
if choice == "1":
unitedStates()
break
elif choice == "2":
italy()
break
elif choice == "3"
germany()
break
return unitedStates(), italy(), germany()
def question():
while True:
choice = ()
print("Please choose a flag:")
print(" 1, for United States;")
print(" 2, for Italy;")
print(" 3, for Germany;")
choice = input("-->", )
if choice[0] >= "1" and choice[0] <= "5" and len(choice) == 1:
break
print("Choice must be, between 1-5, not ", choice + ".")
print("Try again.")
print()
print()
return choice
我的标志功能超出了这一点。如果它们对回答我上面的问题有用,我会发布它们。
【问题讨论】:
-
你在 processing() 中返回所有标志,我猜是你的问题
-
是的,您不需要从
processing()函数中返回任何内容。只需摆脱整个返回线。 -
为什么不把函数放入字典
funcs = {'3': germany, ...}?然后就是funcs[choice]()。 -
谢谢大家的回复,我已经删除了处理返回,但是并没有解决打印每个flag的问题。当我选择德国国旗时,它会打印,然后打印所有的国旗。
标签: python loops printing selection statements