Python打印函数输出多次
Python printing function output multiple times
我正在编写一个程序来完成 certain python challenge。我创建了这个程序,它基本上完成了我需要它做的所有事情,除了它有一个奇怪的怪癖;它多次打印我想要的输出。
cmdname = input("Enter the name of your command.\n>")
print("Enter options one by one. If the option has an argument, put a * at the end of the option. When done entering options, enter \"q\".")
oplist = ""
oplist += cmdname + " "
def prgm():
global oplist
while 2 + 2 == 4:
user = input(">")
if user[0] == "-":
if "*" in user:
oplist += user[0:len(user) - 1] + " "
print("Now, enter the option's argument.")
user = input(">")
oplist += user[0:len(user) - 1] + " "
print("Option successfully added.")
prgm()
else:
oplist += user + " "
print("Option successfully added.")
prgm()
elif user == "q":
print("Enter the command argument.")
user = input(">")
oplist += user
else:
print("Error. You didn't enter an option.")
prgm()
break
print(oplist)
prgm()
打印输出的次数似乎取决于用户指定的选项数量,但我不知道为什么。此外,当 运行 程序处于 IDLE 时,如果我在函数完成后手动打印(oplist),IDLE 会在一行上打印一次输出,就像我打算的那样。为什么会这样?
将print(oplist)
移到函数外,到程序的最后一行。由于您使用递归,此行被调用多次。
我正在编写一个程序来完成 certain python challenge。我创建了这个程序,它基本上完成了我需要它做的所有事情,除了它有一个奇怪的怪癖;它多次打印我想要的输出。
cmdname = input("Enter the name of your command.\n>")
print("Enter options one by one. If the option has an argument, put a * at the end of the option. When done entering options, enter \"q\".")
oplist = ""
oplist += cmdname + " "
def prgm():
global oplist
while 2 + 2 == 4:
user = input(">")
if user[0] == "-":
if "*" in user:
oplist += user[0:len(user) - 1] + " "
print("Now, enter the option's argument.")
user = input(">")
oplist += user[0:len(user) - 1] + " "
print("Option successfully added.")
prgm()
else:
oplist += user + " "
print("Option successfully added.")
prgm()
elif user == "q":
print("Enter the command argument.")
user = input(">")
oplist += user
else:
print("Error. You didn't enter an option.")
prgm()
break
print(oplist)
prgm()
打印输出的次数似乎取决于用户指定的选项数量,但我不知道为什么。此外,当 运行 程序处于 IDLE 时,如果我在函数完成后手动打印(oplist),IDLE 会在一行上打印一次输出,就像我打算的那样。为什么会这样?
将print(oplist)
移到函数外,到程序的最后一行。由于您使用递归,此行被调用多次。