Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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 赢得的价值';t商店_Python - Fatal编程技术网

Python 赢得的价值';t商店

Python 赢得的价值';t商店,python,Python,我有这个问题已经有一段时间了,我的一些价值观会拒绝存储。这很可能是因为我在某个地方违反了一条规则,但在网上搜索了一段时间后,我找不到问题所在 代码: 我之前尝试给变量stancount一个数字,然后通过输入运行它,但是它只会传递输入之前我给它的数字。当您尝试打印它时,stancount变量超出范围 您可以将其作为参数传递到print\u mining\u values()函数中,并以这种方式进行打印 因此,print\u mining\u values()将变成: def view_mining

我有这个问题已经有一段时间了,我的一些价值观会拒绝存储。这很可能是因为我在某个地方违反了一条规则,但在网上搜索了一段时间后,我找不到问题所在

代码:


我之前尝试给变量
stancount
一个数字,然后通过输入运行它,但是它只会传递输入之前我给它的数字。

当您尝试打印它时,
stancount
变量超出范围

您可以将其作为参数传递到
print\u mining\u values()
函数中,并以这种方式进行打印

因此,
print\u mining\u values()
将变成:

def view_mining_values(sCount, aCount, uCount):
    print("\n Printing all of the variables now.")
    print("\n Number of standard miners starting with: ")
    print(sCount)
    print("\n Number of advanced miners starting with: ") 
    print(aCount) 
    print("\n Number of ultra miners starting with: ")
    print(uCount)
def min_count_set():
    stancount = int(input("How many standard miners do you wish to start with? "))
    if (stancount > 10000 or stancount < 0):
        print("\n Please enter a valid number to start with. \n \n")
        min_count_set()
    else:
        advcount= int(input("How many advanced miners do you wish to start with? "))
    if (advcount > 10000 or advcount < 0):
        print("\n Please enter a valid number to start with. \n \n")
        min_count_set()
    else:
        ultrcount = int(input("How many ultra miners do you wish to start with? "))
    if (ultrcount > 10000 or ultrcount < 0):
        print("\n Please enter a valid number to start with. \n \n")
        min_count_set()
    else:
        print("\n Returning you to the setup menu \n \n")
    set_mining_values(stancount, advcount, ultrcount)
您的
min\u count\u set()
函数将变成:

def view_mining_values(sCount, aCount, uCount):
    print("\n Printing all of the variables now.")
    print("\n Number of standard miners starting with: ")
    print(sCount)
    print("\n Number of advanced miners starting with: ") 
    print(aCount) 
    print("\n Number of ultra miners starting with: ")
    print(uCount)
def min_count_set():
    stancount = int(input("How many standard miners do you wish to start with? "))
    if (stancount > 10000 or stancount < 0):
        print("\n Please enter a valid number to start with. \n \n")
        min_count_set()
    else:
        advcount= int(input("How many advanced miners do you wish to start with? "))
    if (advcount > 10000 or advcount < 0):
        print("\n Please enter a valid number to start with. \n \n")
        min_count_set()
    else:
        ultrcount = int(input("How many ultra miners do you wish to start with? "))
    if (ultrcount > 10000 or ultrcount < 0):
        print("\n Please enter a valid number to start with. \n \n")
        min_count_set()
    else:
        print("\n Returning you to the setup menu \n \n")
    set_mining_values(stancount, advcount, ultrcount)
def最小计数集():
stancount=int(输入(“您希望从多少个标准矿工开始?”)
如果(stancount>10000或stancount<0):
打印(“\n请输入一个有效的数字以开始。\n\n”)
最小计数集()
其他:
advcount=int(输入(“您希望从多少名高级矿工开始?”)
如果(advcount>10000或advcount<0):
打印(“\n请输入一个有效的数字以开始。\n\n”)
最小计数集()
其他:
ultrcount=int(输入(“您希望从多少名超级矿工开始?”)
如果(ultrcount>10000或ultrcount<0):
打印(“\n请输入一个有效的数字以开始。\n\n”)
最小计数集()
其他:
打印(“\n将您返回到设置菜单\n\n”)
设置挖掘值(stancount、advcount、ultrcount)

请注意,变量现在被传递到打印函数中。

您必须在函数外部声明变量,并在函数内部修改变量,因为变量在定义它们的地方是局部的,因为您在函数内部定义的是
stancount
,因此它基本上被“删除”当你离开函数时:我推荐类似的东西

def min_count_set():
  stancount = int(input("How many standard miners do you wish to start with? "))
  #do stuff
  set_mining_values()
  return stancount


def view_mining_values(stancount):
  print("\n Printing all of the variables now.")
  print("\n Number of standard miners starting with: ")
  print(stancount)
  #do more stuff

stancount=min_count_set()

这将
stancount
设置为您在函数中设置的值,并允许您在以后打印它

您可以将
stancount
声明为全局变量,如:

def min_count_set():
    global stancount

您试图访问函数范围之外的stancount变量这里有很多不好的东西,首先您不返回函数中的任何内容,也不从递归调用中捕获它,
advcount
ultrcount
在调用之间不共享,每个调用都是一个完全独立的作用域。这些变量在另一个函数中定义,还向我们显示set_mining_values的定义检查:定义
stancount
在任何函数的作用域之外,然后使用函数修改
stancount
的值,但他不能在本地范围内使用
stancount
对变量进行未保存的更改true(抱歉),但我认为他想在其他地方访问此本地变量(因此我的答案)。