猜数字小游戏找bug
import randomc=random.randint(1,101)
print('这是一个猜数字小游戏\n你有10次机会')
print(c) #测试
x=int(input('请输入你猜的数字: '))
for i in range(9):
if c>x:
print('猜小了')
x=int(input('请输入你猜的数字: '))
if c<x:
print('猜大了')
x=int(input('请输入你猜的数字: '))
else:
print(f'恭喜你猜对了!答案是{x}\n你一共猜了{i+2}次')
break
连续猜两个相同的数字就会出bug,直接显示猜对了
这是一个猜数字小游戏
你有10次机会
17
请输入你猜的数字: 7
猜小了
请输入你猜的数字: 7
恭喜你猜对了!答案是7
你一共猜了2次 import random
c=random.randint(1,101)
print('这是一个猜数字小游戏\n你有10次机会')
print(c) #测试
x=int(input('请输入你猜的数字: '))
for i in range(9):
if c>x:
print('猜小了')
x=int(input('请输入你猜的数字: '))
elif c<x:
print('猜大了')
x=int(input('请输入你猜的数字: '))
else:
print(f'恭喜你猜对了!答案是{c}\n你一共猜了{i+2}次')
break
您可以把代码改成这样:
import random
c=random.randint(1,101)
print('这是一个猜数字小游戏\n你有10次机会')
print(c) #测试
x=int(input('请输入你猜的数字: '))
for i in range(9):
if c>x:
print('猜小了')
x=int(input('请输入你猜的数字: '))
if c<x:
print('猜大了')
x=int(input('请输入你猜的数字: '))
else:
print(f'恭喜你猜对了!答案是{x}\n你一共猜了{i+2}次')
break
这里将第 11 行的:
if c<x
改成了:
elif c < x
因为这里您前面第 7 行就是 if 语句,
而这一行的意思就是判断用户猜的是不是小了,
但第 11 行 if c<x 就不应该这样写,
因为您前面写过 if c<x 判断过一次了,
下面应该直接写 elif c > x,
而不是 if c > x,
不然的话您这里这条语句无论前面的 if c<x判断结果指真或假,
也会执行 if c<x这一句,所以需要用到 elif 语句,
只有当上一条成立时才会执行下一条判断!
懂了吗?不懂可以再问!懂了就给个好评呗!!!
{:10_257:}{:10_297:}{:10_281:}{:10_298:}
打字不易!请给个好评!!!
兄弟!给个好评!求求了!!!
{:10_254:}{:10_254:}{:10_254:}{:10_254:} import random
c=random.randint(1,101)
print('这是一个猜数字小游戏\n你有10次机会')
print(c) #测试
x=int(input('请输入你猜的数字: '))
for i in range(9):
if c==x:
print(f'恭喜你猜对了!答案是{x}\n你一共猜了{i+2}次')
break
else:
if c<x:
print('猜大了')
x=int(input('请输入你猜的数字: '))
else:
print('猜小了')
x=int(input('请输入你猜的数字: '))
这样就ok了 import random
c=random.randint(1,101)
print('这是一个猜数字小游戏\n你有10次机会')
print(c) #测试
x=int(input('请输入你猜的数字: '))
for i in range(9):
if c>x:
print('猜小了')
x=int(input('请输入你猜的数字: '))
if c<x:
print('猜大了')
x=int(input('请输入你猜的数字: '))
else:
print(f'恭喜你猜对了!答案是{x}\n你一共猜了{i+2}次')
break 为啥只在else后面加break,而if后面不加呢? 一次循环有了结果就要重新循环。
页:
[1]