首页 > 解决方案 > 为什么即使我有一些命令,该过程也会停止?

问题描述

我正在尝试制作一个代码猜谜游戏,用户可以在其中选择代码的范围。用户尝试猜测随机生成的代码,直到他/她猜对为止。计算机还会显示用户正确的数字。问题是,当用户确实猜对了代码时,即使我的代码说要打印祝贺消息并转到再次播放功能,该过程也会停止。请问有人可以帮忙吗?谢谢。代码:

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()

标签: python

解决方案


我认为这里的问题是你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()

推荐阅读