Python 如何在一个函数中使用另一个函数中设置的变量

Python 如何在一个函数中使用另一个函数中设置的变量,python,Python,我很难在一个函数中使用另一个函数中设置的变量。我必须说明我是python新手。我怎样才能做到这一点。提前感谢。有一些错误: 如果uuu name uuuu==''uuuu main uuuu' 在set\u value 如注释中所述,您返回set\u值中的两个值,但不要使用它们 您必须使用global关键字才能使其正常工作,这在大多数情况下都是一个坏主意 也许你需要一个正确的方法来退出你的程序(比如选择“3”) 试着这样做: def set_values(): cycle_num =

我很难在一个函数中使用另一个函数中设置的变量。我必须说明我是python新手。我怎样才能做到这一点。提前感谢。

有一些错误:

  • 如果uuu name uuuu==''uuuu main uuuu'
  • set\u value
  • 如注释中所述,您返回
    set\u值
    中的两个值,但不要使用它们
  • 您必须使用
    global
    关键字才能使其正常工作,这在大多数情况下都是一个坏主意
  • 也许你需要一个正确的方法来退出你的程序(比如选择“3”)
试着这样做:

def set_values():
    cycle_num = input("Cycle Amount: ")
    probability = input("Probability: ")
    main_menu()
    return cycle_num, probability
def display_values(cycle_num, probability):
    print(cycle_num)
    print(probability)
def main_menu():
    user_choice = input("Choose option 1 or 2")
    if user_choice == "1":
        set_values()
    else:
        display_values(cycle_num, probability)
if __name__ == main_menu():
    main_menu()
有一些错误:

  • 如果uuu name uuuu==''uuuu main uuuu'
  • set\u value
  • 如注释中所述,您在
    set_values
    中返回两个值,但不使用它们
  • 您必须使用
    global
    关键字才能使其正常工作,这在大多数情况下都是一个坏主意
  • 也许你需要一个正确的方法来退出你的程序(比如选择“3”)
试着这样做:

def set_values():
    cycle_num = input("Cycle Amount: ")
    probability = input("Probability: ")
    main_menu()
    return cycle_num, probability
def display_values(cycle_num, probability):
    print(cycle_num)
    print(probability)
def main_menu():
    user_choice = input("Choose option 1 or 2")
    if user_choice == "1":
        set_values()
    else:
        display_values(cycle_num, probability)
if __name__ == main_menu():
    main_menu()

你对这个概念有疑问。调用函数
set_values()
时,您分配了两个变量,并将它们返回到调用它们的原始函数。这部分是正确的

遇到问题的地方是您的
主菜单()
函数没有对这些值执行任何操作。因为你不储存它们,它们就消失了。一个简单的解决办法是:

def set_values():
    cycle_num = input("Cycle Amount: ")
    probability = input("Probability: ")
    return cycle_num, probability

def display_values(cycle_num, probability):
    print("Cycle Amount: ", cycle_num)
    print("Probability: ", probability)

def main_menu():
  cycle_num=0
  probability=0

  while True:
    user_choice = input("Choose option 1, 2 or 3")
    if user_choice == "1":
        cycle_num, probability=set_values()
    elif user_choice == "2":
        display_values(cycle_num, probability)
    else:
      break

if __name__ == '__main__':
  main_menu()

你对这个概念有疑问。调用函数
set_values()
时,您分配了两个变量,并将它们返回到调用它们的原始函数。这部分是正确的

遇到问题的地方是您的
主菜单()
函数没有对这些值执行任何操作。因为你不储存它们,它们就消失了。一个简单的解决办法是:

def set_values():
    cycle_num = input("Cycle Amount: ")
    probability = input("Probability: ")
    return cycle_num, probability

def display_values(cycle_num, probability):
    print("Cycle Amount: ", cycle_num)
    print("Probability: ", probability)

def main_menu():
  cycle_num=0
  probability=0

  while True:
    user_choice = input("Choose option 1, 2 or 3")
    if user_choice == "1":
        cycle_num, probability=set_values()
    elif user_choice == "2":
        display_values(cycle_num, probability)
    else:
      break

if __name__ == '__main__':
  main_menu()


我想您可能需要阅读有关变量作用域的内容。-阅读关于返回变量的内容也不会有什么坏处。您正在调用set_values(),它返回两个值,但您没有存储这些值。它们被丢弃了。我支持@ChristopherSchneider的建议,建议您阅读一些内容。感谢您的评论-我之前花了一些时间研究类似的问题,但似乎无法在我的实际代码中使用它们(比我提供的示例复杂得多)@因此,您建议我做什么来存储变量而不是丢弃它们呢?
cycle\u num,probability=set\u values()
-它所需要的只是将返回的值分配给一些变量。但是,要使这项工作正常运行,您需要的不仅仅是这些。请参阅下面的答案。我想您可能需要阅读有关变量作用域的内容。-阅读关于返回变量的内容也不会有什么坏处。您正在调用set_values(),它返回两个值,但您没有存储这些值。它们被丢弃了。我支持@ChristopherSchneider的建议,建议您阅读一些内容。感谢您的评论-我之前花了一些时间研究类似的问题,但似乎无法在我的实际代码中使用它们(比我提供的示例复杂得多)@因此,您建议我做什么来存储变量而不是丢弃它们呢?
cycle\u num,probability=set\u values()
-它所需要的只是将返回的值分配给一些变量。但是,要使这项工作正常运行,您需要的不仅仅是这些。请参阅下面的答案。我以前尝试过这个,但它重新运行了选项1,我不希望它这样做。@Matt:抱歉,我没有注意到您没有在代码中循环。现在应该工作得更好了,在我的机器上没问题。ctrl-c什么都不做btw@Matt:在我的计算机上以脚本形式运行。@Matt:这是合乎逻辑的。。。这些值将是未设置的。我以前尝试过这个,但它重新运行了选项1,我不希望它这样做。@Matt:抱歉,我没有注意到您没有在代码中循环。现在应该工作得更好了,在我的机器上没问题。ctrl-c什么都不做btw@Matt:在我的计算机上以脚本形式运行。@Matt:这是合乎逻辑的。。。这些值将是未设置的。Python 3中没有
原始输入。
。@Blender:谢谢,忘了我说的话。编辑我的answer@Matt:它“有效”,因为在计算此行时将调用
main_menu()
。我不确定使用visual studio社区的python是哪一种,但它不会接受raw_input@Matt更新了答案,现在应该可以使用Python3了(您可能正在使用的是什么)Python 3中没有原始输入。@Blender:谢谢,忘了我说的吧。编辑我的answer@Matt:它“有效”,因为在计算此行时将调用
main_menu()
。我不确定使用visual studio社区的python是哪一种,但它不会接受raw_input@Matt更新了答案,现在应该可以使用Python3了(您可能正在使用的是什么)