python - 为什么即使我有一些命令,该过程也会停止?
问题描述
我正在尝试制作一个代码猜谜游戏,用户可以在其中选择代码的范围。用户尝试猜测随机生成的代码,直到他/她猜对为止。计算机还会显示用户正确的数字。问题是,当用户确实猜对了代码时,即使我的代码说要打印祝贺消息并转到再次播放功能,该过程也会停止。请问有人可以帮忙吗?谢谢。代码:
import random
import string
def get_range():
Min = input("ENTER THE MINIMUM NUMBER THE CODE CAN BE: ")
Max = input("ENTER THE MAXIMUM NUMBER THE CODE CAN BE: ")
validate_range(Min, Max)
def validate_range(Min, Max):
Check_Min = Min.isdigit()
Check_Max = Max.isdigit()
if Check_Min is not True or Check_Max is not True:
print("INPUT MUST ONLY INCLUDE INTEGERS! ")
get_range()
elif Min == Max:
print("MINIMUM AND MAXIMUM NUMBER MUST NOT BE EQUIVALENT! ")
get_range()
elif Min > Max:
print("MINIMUM NUMBER MUST NOT BE GREATER THAN MAXIMUM NUMBER!")
get_range()
else:
Random = random.randrange(int(Min), int(Max))
get_guess(Random)
def get_guess(Random):
Guess = str(input("ENTER YOUR GUESS: "))
Check_Guess = Guess.isdigit()
if not Check_Guess:
print("INPUT MUST ONLY CONTAIN INTEGERS! ")
get_guess(Random)
else:
validate_guess(Guess, Random)
def validate_guess(Guess, Random):
Length = len(str(Random))
Digits_Correct = 0
if Guess == Random:
print("WELL DONE! YOU GUESSED THE NUMBER! ")
play_again()
else:
Digits = ["?"] * Length
for i in range(0, int(Length)):
if str(Guess)[i] == str(Random)[i]:
Digits[i] = Guess[i]
Digits_Correct += 1
else:
continue
if int(Length) > Digits_Correct > 0:
print("NOT QUITE! YOU GOT", Digits_Correct, " DIGITS CORRECT!")
print(Digits)
get_guess(Random)
elif Digits_Correct == 0:
print("NONE OF YOUR DIGITS MATCH! ")
get_guess(Random)
def play_again():
Choice = input("\n DO YOU WISH TO PLAY AGAIN? (Y/N)")
if Choice != "Y" or Choice != "N" or Choice != "y" or Choice != "n":
print("PLEASE ENTER A VALID INPUT! ")
play_again()
else:
get_range()
print("WELCOME TO CODE CRUNCHERS!\n ")
get_range()
解决方案
我认为这里的问题是你Guess
是一个字符串,你Random
是一个整数。要解决此问题,您可以尝试将 转换Guess
为整数或Random
字符串。尝试这个:
def validate_guess(Guess, Random):
Length = len(str(Random))
Digits_Correct = 0
if int(Guess) == Random:
print("WELL DONE! YOU GUESSED THE NUMBER! ")
play_again()
推荐阅读
- c - 如何反转多行输入?(C)
- python - ModuleNotFoundError:即使安装了模块,也没有名为“mysql”的模块
- c# - 有没有办法使错误消息循环?
- r - 将数据合并到每组一行
- python - 如何在运行之前搜索 python 脚本以使用类方法?
- javascript - 检查 IF 语句中的哪个条件为真
- wso2 - WSO2 APIM 3.0.0 在编辑 master-datasources.xml 文件后拒绝启动
- android - 无法将视图边缘与另一个中心对齐视图对齐
- python - 计算多个文件中单词的出现次数
- python-2.7 - 如何在年、月、日日期时间对象中添加一天