【发布时间】:2017-05-05 20:15:46
【问题描述】:
我正在尝试猜数字游戏。我试图让用户得到 3 次猜测,如果猜测太大,代码会说它太大,如果猜测太小,那么代码应该告诉他们,同时也允许如果他们的答案超出 1-10 的范围,他们重新输入他们的猜测,因为那是随机生成的数字的来源。我计划添加其他级别和排行榜,所以如果有人可以帮助我,我将不胜感激。这是我的代码:
import time
import random
answer1= ""
answer2= ""
answer3= ""
one= "You have two more guesses: "
two= "You only have one more guess. Be careful: "
number= random.randint(1,10)
number=str(number)
def code(a,number,b,n,d,e):
a = int(a)
number= int(number)
if a > number and a <11:
b=input("the number is too big. "+ n )
elif a< number and a>-1:
d= input("the number is too big. "+ n )
elif a> 10 or a<0:
e=input("please input a number smaller than 10 and bigger than 0: ")
print(" -------------------- Guess the number game --------------------")
time.sleep(1)
answer= input("The aim of the game is to guess the number. Are you ready? (yes/no): ").lower()
if "yes" in answer:
answer1=input("I am thinking of a number, between 0 and 10, What is the number: ")
if answer1 == number:
print ("Correct! Wow.. it only took you one guess")
time.sleep(1)
print("Come back again sometime...")
time.sleep(1)
print("BYE!")
time.sleep(1)
quit()
elif answer1 != number:
code(answer1,number,answer2,one,answer2,answer2)
if answer2 == number:
print ("Correct! it took you two turns.")
time.sleep(1)
print("Come back again sometime")
time.sleep(1)
print("BYE!")
time.sleep(1)
quit()
elif answer2 != number:
code(answer2,number,answer3,two,answer3,answer3)
if answer3 == number:
print ("Correct! Phew.... you guessed correctly in your last guess!")
time.sleep(1)
print("Come back again sometime")
time.sleep(1)
print("BYE!")
time.sleep(1)
quit()
elif answer3 != number:
print("Incorrect..... Sorry! ")
time.sleep(1)
print("The correct number was "+number)
time.sleep(1)
print("You lose! But don't stop trying!")
time.sleep(1)
quit()
elif "yes" != answer:
print("That's too bad...")
time.sleep(1)
print("Come back when you're ready to....")
time.sleep(2)
print("LOSE!!")
time.sleep(1)
quit()
当我像这样使用它时,它一直给我:“ValueError:int() 的无效文字,基数为 10:'',当我这样使用它时(这是在 shell 中):
------------------- Guess the number game --------------------
The aim of the game is to guess the number. Are you ready? (yes/no): yes
I am thinking of a number, between 0 and 10, What is the number: 2
the number is too big. You have two more guesses: 1
Traceback (most recent call last):
File "C:/Python33/Guweesss da numba.py", line 63, in <module>
code(answer2,number,answer3,two,answer3,answer3)
File "C:/Python33/Guweesss da numba.py", line 19, in code
a = int(a)
ValueError: invalid literal for int() with base 10: ''
忽略代码的奇怪名称 - 我之前已经尝试过多次,所以没有使用任何名称。
【问题讨论】:
-
当 answer1!= number 时,是预期的!
-
answer2在顶部设置为''并且从不重新分配。 -
你可以试试
a = int(a) if a else 0,这样空白输入就会被转换成0 -
您应该研究循环(例如
while、for),这将大大简化您的代码。
标签: python