用Python猜中奖号码

问题描述 投票:0回答:1

对于一项作业,我必须编写一个代码来猜测用户的中奖号码。它解释了几个步骤,但对我不起作用。我试图猜测这次尝试中的头奖号码的第一位数字。

我尝试对 while 循环进行一些调整。我首先尝试了 while true ,然后尝试仅使用 if/else 循环...

import random 
digits= int(input("How many digits do you want your jackpot number to have?   "))
jackpotnumber= str(input("What is the lucky number?   "))
if digits == 0:
    print("Choose your digits above zero... ")
if jackpotnumber == 0:
    print("Choose your jackpotnumber with a value above 0..")
if len(jackpotnumber) != digits:
    print("Match your digits and jackpotnumber correctly...")
listj= [int(jackpotnumber)]
listn= []
guess= random.randrange(9)
while guess != listj[0]:
    guess= random.randrange(9)
    if guess == listj[0]:
        listn.append(guess)
        print(listn)

作业: 在我们将编写的代码中(将其命名为 jackpot_computer.ipynb),计算机将尝试猜测您输入的数字。让计算机按照正确的顺序猜测 3 位数字。

在此代码中,您必须执行以下操作:

首先,询问用户您希望中奖号码有多少位。因此,如果您选择 3 位数字,您的头奖号码范围将在 001 到 999 之间。请注意范围:不接受值为 0 的头奖号码。 询问读者幸运数字是什么,并将其存储在名为 jackpotnumber 的变量中。验证用户输入的号码位数是否正确。如果输入的位数不正确,则退出代码。 定义一个名为 jackpotnumber 的变量,在其中存储用户输入的数字 构建一个循环来执行以下任务: 计算机将使用随机生成的数字猜测正确的头奖号码 您可以将问题分解为 N,而不是猜测 N 个数字中的一个数字,这样计算机就需要一次以正确的顺序猜测 0 到 9 之间的一位数字。只要第一个数字正确,您就可以启动循环来检查第二个数字。

python input while-loop guess.js
1个回答
0
投票

尝试下面的代码,

随机导入

def get_valid_input(prompt, validation):
    while True:
        user_input = input(prompt)
        if validation(user_input):
            return user_input
        else:
            print("Invalid input. Please try again.")

# Validate the number of digits
validate_digits = lambda x: x.isdigit() and int(x) > 0
digits = int(get_valid_input("How many digits do you want your jackpot number to have? ", validate_digits))

# Validate the jackpot number
validate_jackpot = lambda x: x.isdigit() and len(x) == digits
jackpotnumber = get_valid_input(f"Enter a {digits}-digit jackpot number: ", validate_jackpot)

# Guessing each digit
guessed_number = ''
for i in range(digits):
    guess = random.randrange(10)
    while str(guess) != jackpotnumber[i]:
        guess = random.randrange(10)
    guessed_number += str(guess)
    print(f"Guessed so far: {guessed_number}")

print(f"The guessed the jackpot number: {guessed_number}")
© www.soinside.com 2019 - 2024. All rights reserved.