elif 的一个条件不会执行
print('欢迎来到\'猜一猜\'小游戏\n')import random
secret = random.randint(1,10)
times = 0
guess = int(input('你能猜到我心里面所想的数字吗?\n(只有三次机会):'))
while guess != secret and times < 3:
times += 1
if guess < secret and:
print('猜错了,小了')
elif guess > secret:
print('猜错了,大了')
elif times == 1:
print('机会用完了,就这样吧.')
guess = int(input('猜错了哦,再猜猜看吧:'))
if guess == secret:
print('这么厉害,这你都知道.\n没意思,不玩了.')
红色字体的elif语句不会执行,有点懵,, 这样,不然你输入大或者小都在前面两个判断内
if times == 1:
print('机会用完了,就这样吧.')
elif guess < secret:
print('猜错了,小了')
elif guess > secret:
print('猜错了,大了') 你发的代码有问题吧
if guess < secret and:
print('猜错了,小了')
这个and是什么鬼???? 本帖最后由 jackz007 于 2021-2-23 13:55 编辑
if guess < secret and:
print('猜错了,小了') # guess 小了走这里
elif guess > secret:
print('猜错了,大了') # guess大了走这里
elif times == 1:
print('机会用完了,就这样吧.') # 只有 guess == secret 而且 times == 1 才会走这里
而维持循环条件又是 while guess != secret and times < 3,所以,带红字的语句永远也不可能被执行到。
试一下这个代码:
import random
print("欢迎来到'猜一猜'小游戏\n")
secret = random . randint(1,10)
print('你能猜到我心里面所想的数字吗\n(你只有三次机会)?')
for times in range(3):
print()
guess = int(input("请输入数字:"))
if guess == secret:
print('这么厉害,这你都知道?')
break
else:
if guess < secret:
print('猜错了,小了')
else:
print('猜错了,大了')
if times < 2:
print('再猜猜看吧。')
else:
print('很遗憾,机会用完了。\n其实,我心里面的数字是' , secret)
print('没意思,不玩了。') """用Python设置第一个游戏"""
import random
answer = random.randint(1, 10)
counts = 3
print("你一共有{}次机会哦!".format(counts))
print("答案在1到10之间!")
while counts > 0:
print("-----------------------------------------")
temp = input("不妨猜一下我现在心里想的是哪个数字:")
guess = int(temp)
if guess == answer:
print("你是我心里的蛔虫吗?!")
print("哼!猜中了也没奖励!")
break
elif guess < answer:
print("猜小了")
print('你还剩{}次机会哦!'.format(counts - 1))
else:
if guess > answer:
print("猜大了")
print('你还剩{}次机会哦!'.format(counts - 1))
counts -= 1
print("游戏结束,不玩啦^_^")
print("哈哈,答案是{}".format(answer))
本帖最后由 crisfo 于 2021-2-23 15:35 编辑
print('欢迎来到\'猜一猜\'小游戏\n')
import random
secret = random.randint(1,10)
times = 0#times从0开始
guess = int(input('你能猜到我心里面所想的数字吗?\n(只有三次机会):'))
while guess != secret and times < 3:
times += 1# 从0开始每次加1
if guess < secret and:
print('猜错了,小了')
elif guess > secret:
print('猜错了,大了')
elif times == 1: # times放这里不合适,因为不论你猜大了还是猜小了,都应该判定一下times是不是已经3次了,同时这里还有一个问题就是guess跟secret相等才行,而你的while后面条件是guess跟secret不相等才能进入循环,逻辑上有些问题。
print('机会用完了,就这样吧.')
guess = int(input('猜错了哦,再猜猜看吧:'))
if guess == secret:
print('这么厉害,这你都知道.\n没意思,不玩了.') crisfo 发表于 2021-2-23 15:33
print('欢迎来到\'猜一猜\'小游戏\n')
import random
secret = random.randint(1,10)
times放在那里是想让它在3次机会用完并且提示大小后打印出结束语。
guess第一次猜中后就直接结束,没猜中的话就进入循环继续猜,所以我用地是guess != secret这个条件。
后面我把elif改成了if,还借助break改好了,如下:
print('欢迎来到\'猜一猜\'小游戏\n')
import random
secret = random.randint(1,10)
times = 0
guess = int(input('你能猜到我心里面所想的数字吗?\n(只有三次机会):'))
while guess != secret and times < 3:
times += 1
if guess < secret:
print('猜错了,小了')
else:
print('猜错了,大了')
if times == 3:
print('机会用完了,就这样吧.')
break
guess = int(input('再猜猜看吧:'))
if guess == secret:
print('这么厉害,这你都知道.\n没意思,不玩了.') 昨非 发表于 2021-2-23 13:33
你发的代码有问题吧
if guess < secret and:
print('猜错了,小了')
,,,,打错了,{:10_260:} yayc_zcyd 发表于 2021-2-23 14:39
这个format行 画个圈圈XZQ 发表于 2021-2-23 22:33
这个format行
你就是把我那个answer改成你那个secret就行了 我刚开始也是想搞一个还剩几次机会,然后脑子里就蹦出来了format{:10_256:} 问题解决了请设最佳答案{:10_254:}
页:
[1]