发生了什么事?Python在函数中跳过行
当我在Python中运行下面的程序时,该函数接收变量,但完全跳过其余部分,并在不做任何操作的情况下重新显示程序的主菜单。此外,即使选择了第一个或第二个选项(不需要第三个变量),它也会跳过限定的“if”语句并请求所有变量。顺便说一句,这不应该是缩进错误,我只是缩进以显示它是stackoverflow中的代码发生了什么事?Python在函数中跳过行,python,function,if-statement,skip,Python,Function,If Statement,Skip,当我在Python中运行下面的程序时,该函数接收变量,但完全跳过其余部分,并在不做任何操作的情况下重新显示程序的主菜单。此外,即使选择了第一个或第二个选项(不需要第三个变量),它也会跳过限定的“if”语句并请求所有变量。顺便说一句,这不应该是缩进错误,我只是缩进以显示它是stackoverflow中的代码 编辑:无需担心。我让它工作了。函数括号中的变量都必须相同。哼!拍额头 您的函数被定义为计数(x,y,z,countingSubmenu,q),但当您调用它时,您的参数列表是计数(countin
编辑:无需担心。我让它工作了。函数括号中的变量都必须相同。哼!拍额头
您的函数被定义为
计数(x,y,z,countingSubmenu,q)
,但当您调用它时,您的参数列表是计数(countingSubmenu,x,y,z,q)
它似乎在Python2.7中工作(参见Chris Phillips的回答)
无论如何,你能做的改进很少
- 从循环中取出功能
计数
- 您不需要调用
四次,只需调用counting
counting(countingSubmenu,x,y,z,q)
函数以不同的顺序获取参数,而您以错误的顺序传递参数计数
- 您不需要传递x、y、z,因为您是在向用户请求传递x、y、z
因此,input()现在总是返回一个字符串。因此,您需要对结果调用int()或eval()(我个人建议使用int())。您的问题是将参数以错误的顺序传递给
counting()
。“没关系。我成功了。函数括号中的变量都必须相同。”这是一种糟糕的更新。请把它拿走。请在回答中附上其他人需要了解的信息。回答你的问题没关系。道歉是不行的。与其提供如此混乱的更新,不如删除它。
option = 1
while option !=0:
print "\n\n\n************MENU************"
print "1. Counting"
print "2. Fibbonacci Sequence"
print "0. GET ME OUTTA HERE!"
print "*" * 28
option = input("Please make a selection: ") #counting submenu
if option == 1:
print "\n\n*******Counting Submenu*******"
print "1. Count up by one"
print "2. Count down by one"
print "3. Count up by different number"
print "4. Count down by different number"
print "*" * 28
countingSubmenu = input("Please make a selection: ")
x=0
y=0
z=0
q=0
def counting (x, y, z, countingSubmenu, q):
x = input("Please choose your starting number: ")
y = input("Please choose your ending number: ")
if countingSubmenu == 1:
for q in range (x, y+1, 1):
print q
elif countingSubmenu == 2:
for q in range (x, y, -1):
print q
elif countingSubmenu == 3:
z = input("Please choose an increment: ")
for q in range (x, y+1, z):
print q
else:
z = input("Please choose an increment: ")
for q in range (x, y, -z):
print q
return x, y, z, q
if countingSubmenu == 1:
counting(countingSubmenu, x, y, z, q)
if countingSubmenu == 2:
counting(countingSubmenu, x, y, z, q)
if countingSubmenu == 3:
counting(countingSubmenu, x, y, z, q)
if countingSubmenu == 4:
counting(countingSubmenu, x, y, z, q)