![](/img/trans.png)
[英]I'm a beginner in python and I'm trynna code a number guessing game. It keeps giving me a math domain error. Any suggestions pls?
[英]Trying to code a counting game, this error keeps occuring and I'm not sure how to solve it (really beginner level)
我正在編寫一個計數游戲,計算機生成一個 3 位數字,你必須猜它。 如果你在正確的位置得到一個數字,你就會得到一個好球,如果你在錯誤的位置得到一個數字,你就會得到一個球。 我在代碼的第 12 行不斷收到錯誤消息。 有人可以幫忙嗎?
x = random.randint(1, 9)
y = random.randint(1, 9)
z = random.randint(1, 9)
while True:
try:
user_guess_unlisted = int(input('What number do you want to guess?'))
except:
continue
break
number_to_guess = [x, y, z]
user_guess = list(user_guess_unlisted)
b = 0
s = 0
rloop = 1
while rloop:
if user_guess[0] == number_to_guess[0]:
s = s + 1
if user_guess[0] == number_to_guess[1]:
b = b + 1
if user_guess[0] == number_to_guess[2]:
b = b + 1
if user_guess[1] == number_to_guess[0]:
b = b + 1
if user_guess[1] == number_to_guess[1]:
s = s + 1
if user_guess[1] == number_to_guess[2]:
b = b + 1
if user_guess[2] == number_to_guess[0]:
b = b + 1
if user_guess[2] == number_to_guess[1]:
b = b + 1
if user_guess[2] == number_to_guess[2]:
s = s + 1
print(str(s) + "S " + str(b) + "B")
if s != 3:
b = 0
s = 0
userguessunlisted = input('what number do you want to guess?')
userguess = list(userguessunlisted)
if s == 3:
print('you win!')
rloop = 0
您不能將整數轉換為列表。
你可以使用這個:
from random import randint
num = str(randint(0, 999)).zfill(3)
while True:
while True:
guess = input('Guess a number: ').zfill(3)
if guess.isdigit():
if int(guess) < 1000:
break
b = s = 0
for i, n in enumerate(num):
for j, g in enumerate(guess):
if n == g:
if i == j:
s += 1
else:
b += 1
print('Balls:', b)
print('Strikes:', s)
if s == 3:
break
print('')
輸出:
Guess a number: 123
Balls: 0
Strikes: 0
Guess a number: 456
Balls: 2
Strikes: 0
Guess a number: 654
Balls: 1
Strikes: 1
Guess a number: 647
Balls: 1
Strikes: 1
Guess a number: 657
Balls: 2
Strikes: 1
Guess a number: 675
Balls: 0
Strikes: 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.