Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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_Python 3.x - Fatal编程技术网

Python 而韩元';停不下来

Python 而韩元';停不下来,python,python-3.x,Python,Python 3.x,我学习的课程中有一个练习: 编写一个程序,从1到100中选择一个随机整数,让玩家猜这个数字。这些规则是: 如果玩家的猜测小于1或大于100,则说“出界” 在玩家的第一个回合,如果他们的猜测是正确的 在数字的10以内,返回“WARM!” 如果距离数字超过10,则返回“冷!” 在随后的所有转弯中,如果有猜测 比上一次猜测更接近该数字返回“温暖!” 与上一次猜测的数字相比,返回“COLDER!” 当玩家的猜测等于数字时,告诉他们猜对了,猜了多少次 出于某种原因,即使猜测的数字是正确的,它仍然会要求我输

我学习的课程中有一个练习:

编写一个程序,从1到100中选择一个随机整数,让玩家猜这个数字。这些规则是:

如果玩家的猜测小于1或大于100,则说“出界” 在玩家的第一个回合,如果他们的猜测是正确的 在数字的10以内,返回“WARM!” 如果距离数字超过10,则返回“冷!” 在随后的所有转弯中,如果有猜测 比上一次猜测更接近该数字返回“温暖!” 与上一次猜测的数字相比,返回“COLDER!” 当玩家的猜测等于数字时,告诉他们猜对了,猜了多少次

出于某种原因,即使猜测的数字是正确的,它仍然会要求我输入一个新的数字。 你能帮我修一下吗

来自随机导入randint
#选择随机整数
抽奖=兰迪特(1100)
#进入第一猜测
guess=int(输入(“猜测随机数:”)
#检查第一猜测
如果guess<1或guess>100:
打印(“债券到期”)
其他:
如果猜测==抽奖:
打印(“正确!您在第一次尝试后算出了数字!”)
否则,如果猜测>抽奖:
如果猜奖券<11:
打印(“温暖!”)
其他:
打印(“冷!”)
其他:
如果抽奖猜测<11:
打印(“温暖!”)
其他:
打印(“冷!”)
猜测计数=1
匹配=错误
def guess_check():
next_guess=int(输入(“再次猜测随机数:”)
如果下一个猜测<1或猜测>100:
打印(“债券到期”)
其他:
如果下一次猜==抽奖:
打印(“正确!你算出了数字!”)
匹配=真
elif next_guess>抽奖:
如果下一次抽奖<11:
打印(“加热器!”)
其他:
打印(“更冷!”)
其他:
如果抽奖-下一次猜<11:
打印(“加热器!”)
其他:
打印(“更冷!”)
比赛时!=正确:
猜一猜
打印(f“随机数为:{raffle}”)
```蟒蛇

问题在于
match
内部
guess\u check
treat match的赋值是一个局部变量,不会更改“全局”
match
变量

一种解决方案是在更改匹配值之前,在
guess\u check
中添加以下内容-

global match
match = True
就个人而言,我宁愿从函数返回匹配值,也不愿使用全局变量


有关全局变量的详细信息,请参见问题在于
match
内部
guess\u check
treat match的赋值是一个局部变量,不会更改“全局”
match
变量

一种解决方案是在更改匹配值之前,在
guess\u check
中添加以下内容-

global match
match = True
就个人而言,我宁愿从函数返回匹配值,也不愿使用全局变量


查看有关全局变量的更多信息

只需让您的函数
guess\u check()
返回布尔值,True或False,而不是使用全局变量
match
。然后,当您在while循环中调用
guess\u check()
时,您需要重新分配match到
guess\u check()
返回的值。i、 e

def guess_check():
next_guess=int(输入(“再次猜测随机数:”)
如果下一个猜测<1或猜测>100:
打印(“债券到期”)
其他:
如果下一次猜==抽奖:
打印(“正确!你算出了数字!”)
返回真值
elif next_guess>抽奖:
如果下一次抽奖<11:
打印(“加热器!”)
其他:
打印(“更冷!”)
其他:
如果抽奖-下一次猜<11:
打印(“加热器!”)
其他:
打印(“更冷!”)
返回错误
比赛时!=正确:
匹配=猜测检查()

只要让你的函数
guess\u check()
返回一个布尔值,True或False,而不是使用全局变量
match
。然后,当您在while循环中调用
guess\u check()
时,您需要重新分配match到
guess\u check()
返回的值。i、 e

def guess_check():
next_guess=int(输入(“再次猜测随机数:”)
如果下一个猜测<1或猜测>100:
打印(“债券到期”)
其他:
如果下一次猜==抽奖:
打印(“正确!你算出了数字!”)
返回真值
elif next_guess>抽奖:
如果下一次抽奖<11:
打印(“加热器!”)
其他:
打印(“更冷!”)
其他:
如果抽奖-下一次猜<11:
打印(“加热器!”)
其他:
打印(“更冷!”)
返回错误
比赛时!=正确:
匹配=猜测检查()

正如@TomRon所提到的,您需要添加这些行,并且在最后一个print语句中,您需要修改的内容如下:

print("The random number is: {raffle}".format(raffle=raffle))
因此,新代码可能如下所示:

        if next_guess == raffle:
            print("Correct! You figured the number!")
            global match
            match = True

正如@TomRon所提到的,您需要添加这些行,并且在最后一个print语句中,您需要修改的内容如下:

print("The random number is: {raffle}".format(raffle=raffle))
因此,新代码可能如下所示:

        if next_guess == raffle:
            print("Correct! You figured the number!")
            global match
            match = True

常见的Python问题(问题可能是一个重复)。。。在函数中分配给
match
时,您正在创建一个新的局部变量,与全局
match
变量不同。解决此问题的一种方法是在
guess\u check
函数的顶部说
global match
;然而,像这样使用全局变量通常是要避免的,最好重写脚本。现在,试试
global
thing.:)这不是一个完美的复制品,但它解决了常见的Python问题(问题可能是一个复制品)。。。在函数中分配给
match
时,您正在创建一个新的局部变量,与全局
match
变量不同。解决这个问题的一种方法是说