Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
发生了什么事?Python在函数中跳过行_Python_Function_If Statement_Skip - Fatal编程技术网

发生了什么事?Python在函数中跳过行

发生了什么事?Python在函数中跳过行,python,function,if-statement,skip,Python,Function,If Statement,Skip,当我在Python中运行下面的程序时,该函数接收变量,但完全跳过其余部分,并在不做任何操作的情况下重新显示程序的主菜单。此外,即使选择了第一个或第二个选项(不需要第三个变量),它也会跳过限定的“if”语句并请求所有变量。顺便说一句,这不应该是缩进错误,我只是缩进以显示它是stackoverflow中的代码 编辑:无需担心。我让它工作了。函数括号中的变量都必须相同。哼!拍额头 您的函数被定义为计数(x,y,z,countingSubmenu,q),但当您调用它时,您的参数列表是计数(countin

当我在Python中运行下面的程序时,该函数接收变量,但完全跳过其余部分,并在不做任何操作的情况下重新显示程序的主菜单。此外,即使选择了第一个或第二个选项(不需要第三个变量),它也会跳过限定的“if”语句并请求所有变量。顺便说一句,这不应该是缩进错误,我只是缩进以显示它是stackoverflow中的代码


编辑:无需担心。我让它工作了。函数括号中的变量都必须相同。哼!拍额头


您的函数被定义为
计数(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

您没有提到您正在使用的Python版本,但我怀疑它来自3.x系列。以匹配2.x系列中以前的原始输入()


因此,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)