Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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 在IF循环中更改变量值_Python_Python 3.x_Loops_If Statement - Fatal编程技术网

Python 在IF循环中更改变量值

Python 在IF循环中更改变量值,python,python-3.x,loops,if-statement,Python,Python 3.x,Loops,If Statement,我有一个接受值1-5的函数,我想声明一个名为“Des”的全局变量,并根据所选选项进行更改,因为我想在另一个函数中使用该值。我试过了,但没用 def mainNJ(): #S_menu() print( "\033[1m" " PLEASE SELECT THE TYPE OF DONATION.") global Des validate = False while not validate: opt

我有一个接受值1-5的函数,我想声明一个名为“Des”的全局变量,并根据所选选项进行更改,因为我想在另一个函数中使用该值。我试过了,但没用

def mainNJ():
    #S_menu()
    print( "\033[1m" " PLEASE SELECT THE TYPE OF DONATION.")
    global Des
    validate = False
    while not validate:
        option = input(" INPUT VALUE 1 TO 5 : " "\033[0m")

    # For Selection 1 Animal Protection And Welfare.
        if option == str(1):
            validate = True
            print()
            print("\033[1m" " Animal Protection And Welfare Has Been Selected." "\033[0m")
            #Amount()
            Des1 = " Animal Protection And Welfare Has Been Selected."
            Des = Des1

    # For Selection 2 Support For Natural Disaster.
        elif option == str(2):
            validate = True
            print()
            print("\033[1m" " Support For Natural Disaster Has Been Selected." "\033[0m")
            #Amount()
            Des2 = " Support For Natural Disaster Has Been Selected."
            Des = Des2
    # For Selection 3 Children Education And Activities.
        elif option == str(3):
            validate = True
            print()
            print("\033[1m" " Children Education And Activities Has Been Selected." "\033[0m")
            #Amount()
            Des3 = " Children Education And Activities Has Been Selected."
            Des = Des3
    # For Selection 4 Children Education And Activities.
        elif option == str(4):
            validate = True
            print()
            print("\033[1m" " Caregiving And Health Research Has Been Selected." "\033[0m")
            #Amount()
            Des4 = " Caregiving And Health Research Has Been Selected."
            Des = Des4
    # For Selection 5 Conservation Of Cultural Arts.
        elif option == str(5):
            validate = True
            print()
            print("\033[1m" " Conservation Of Cultural Arts Has Been Selected." "\033[0m")
            #Amount()
            Des5 = " Conservation Of Cultural Arts Has Been Selected."
            Des = Des5

        else:
            print()
            print(" Invalid Option. Please Try Again.")
            #S_menu()

将Des指定给Desx,这是一个字符串。您需要将其分配给int(选项)

您将Des分配给Desx,这是一个字符串。您需要将其分配给int(选项)

也许,如果Des不是在函数外部定义的,那么您正在尝试在分配它>>之前访问它。i、 e.在进行mainNJ()调用之前,您正在使用Des做一些事情

如果这是问题,请给出解决方案

在另一个函数中,使用它的位置

试试看:
打印(Des)#用法示例
除名称错误外:
打印(“Des尚未创建”)
#您还可以将return语句放入函数中,这样函数就不会继续
#或者在这里调用mainNJ()
也许,如果Des不是在函数外部定义的,那么您正在尝试在分配它>>之前访问它。i、 e.在进行mainNJ()调用之前,您正在使用Des做一些事情

如果这是问题,请给出解决方案

在另一个函数中,使用它的位置

试试看:
打印(Des)#用法示例
除名称错误外:
打印(“Des尚未创建”)
#您还可以将return语句放入函数中,这样函数就不会继续
#或者在这里调用mainNJ()

呼叫金额和S_菜单是否与问题相关?如果没有,您可能希望从代码中删除它们,因为它们会阻止其他人按原样运行。@Roy2012注意到,我已将它们注释掉。使用类而不是全局变量如何?您认为您的代码为什么不起作用?Des在代码末尾被赋值。作为一名程序员,你应该非常非常努力地避免使用全局变量。对Amount和S_菜单的调用是否与问题相关?如果没有,您可能希望从代码中删除它们,因为它们会阻止其他人按原样运行。@Roy2012注意到,我已将它们注释掉。使用类而不是全局变量如何?您认为您的代码为什么不起作用?Des在代码末尾被赋值。作为程序员,你应该非常非常努力地避免使用全局变量。