我已經制作了一個在亂數或字母之間進行選擇的 python 程式,然后用戶嘗試猜測它,但是當程式選擇一個數字并且正確猜出確切數字時,它回傳用戶輸入的數字是不正確。
這是我的代碼:
import math
import random
import string
count = 0
numberroll = random.randint(1,10)
stringroll = random.choice(string.ascii_letters)
chooseroll = random.choice([numberroll, stringroll.lower()])
# print(chooseroll)
count = 0
if chooseroll == numberroll:
usernumberguess = input("Your guess: ")
if usernumberguess.isdigit():
print("It is a number!")
count = 1
else:
print("That is not a number...")
if usernumberguess.isdigit() == numberroll:
print("Correct number!")
count = 2
else:
print("Better luck next time!")
if chooseroll == stringroll.lower():
userstringguess = input("Your guess: ")
if userstringguess.isalpha():
print("It is a letter!")
count = 1
else:
print("That is not a letter...")
if userstringguess.lower() == stringroll.lower():
print("Correct letter!")
count = 2
else:
print("Incorrect! Better luck next time!")
# print(count)
有沒有什么辦法解決這一問題?提前致謝!
uj5u.com熱心網友回復:
這部分if usernumberguess.isdigit() == numberroll:可能有問題:isdigit()回傳 True 或 False,然后檢查它是否是numberroll. 當猜測是數字時,您可以檢查猜測是否正確。您還需要將輸入(字串)轉換為int.
if chooseroll == numberroll:
usernumberguess = input("Your guess: ")
if usernumberguess.isdigit():
print("It is a number!")
usernumberguess = int(usernumberguess)
count = 1
if usernumberguess == numberroll:
print("Correct number!")
count = 2
else:
print("Better luck next time!")
else:
print("That is not a number...")
我會添加更多用于除錯的代碼,以便您可以看到出現了什么問題:
import random
random.seed(0)
count = 0
numberroll = random.randint(0, 9)
print(f"the user has to guess: {numberroll}")
usernumberguess = input("your guess: ")
print(f"your guess is {usernumberguess}")
if usernumberguess.isdigit():
print("your guess is a number")
usernumberguess = int(usernumberguess)
count = 1
if usernumberguess == numberroll:
print("your guess is correct")
count = 2
else:
print("your guess is not correct")
else:
print("your guess is not a number")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/393403.html
下一篇:帶反斜杠的字串到字典
