为什么输入正确,还会出现这样的BUG?哪里出错了?
代码是跟书上一模一样的,为什么还会出现这样的问题?怎么改?如图所示: 因为第一个if判断完了之后,后面执行的else语句除了小于的情况还有等于的情况,所以最后多打印了一个“小了小了”。如下这么改就好了:
import random
secret = random.randint(1,10)
temp = input("请输入一个整数:")
guess = int(temp)
while guess != secret :
temp = input("哎呀,输错了,请从新输入吧:")
guess = int(temp)
if guess > secret :
print("哥,大了大了")
elif guess < secret:
print("嘿,小了小了")
else :
print("哎呀,你真是小甲鱼肚子里的蛔虫呀!")
print("哼~猜中了也没有奖励")
print("游戏结束,不玩啦") 是有一个小bug,因为while循环中的if-else语句逻辑有漏洞,当输入等于答案的时候也会走else分支
你可以这样改:
if guess > secret:
print('哥,大了大了~~')
elif guess == secret:
print('答对了')
break
else:
print('哥,小了小了~~')
break表示跳出while循环
secret = 6
temp = input("猜一下:")
guess = int(temp)
while guess != secret:
temp = input("猜错了,重新输入:")
guess = int(temp)
if guess >secret:
print("大了")
# else:
# print("小了")
#这个else语句里包括了小于和等于,如果猜对了也会执行一次print语句
elif guess<secret:
print("小了")
#if guess == secret:
else:
print("猜对了,游戏结束")
最后答对的if条件不应该缩进了吧。
import random
secret = random.randint(1,10)
print('-----------------我爱鱼c工作室------------------')
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
guess = int(temp)
while guess != secret:
if guess > secret:
print("大了哟!")
else:
print("小了一点。")
temp = input("猜错了哟,再猜一下:")
guess = int(temp)
if guess == secret:
print("卧槽,你是小甲鱼肚子里的蛔虫吗?!")
print("不过猜中了也没有奖励,哈哈!")
print("游戏结束,不玩了。")
页:
[1]