《零基础入门学校Python》第四讲 改进小游戏(已解决)
本帖最后由 皇甫宅 于 2018-12-5 21:47 编辑大家好,非常新的新手 请教个问题。Python第四讲 关于改进小游戏,有个问题想不明白。
视频里面老师讲了随机变量有限次数循环猜数字,但是我就是想知道如果系统明确了正确答案,怎么设置猜数字的次数呢。
不知道我表述清楚没有就是假设游戏的准确答案是8,但是你只有5次猜测的机会,这个要怎么实现呢。
我怎么试都试不出来,唉,太难了,一点儿也不简单,希望有前辈解惑呀。
这是我写的,运行后猜一次就结束了,死活整不明白。
times = 5
print('............我爱甲鱼.......')
temp = input("不妨猜一下小甲鱼心里想的是哪个数字:")
times = 5
guess = 8
while (guess != 8 ) and (times < 5):
temp=input("wrong!!try again:")
guess=int(temp)
times = times - 1
if guess==8:
print("卧槽,你是我的蛔虫吗?")
print("哼,猜中也没奖!")
else:
if guess > 8 :
print("大了")
else :
print("小了")
if times > 0:
print ('try again:, end =')
print("game over")
前面guess = 8,循环的条件是guess != 8 本帖最后由 heidern0612 于 2018-12-4 21:37 编辑
你要是想猜次数,想进while循环,guess就不要赋值为8。你都赋值为8了,while还循环个啥?你可以赋值任意值,总之不要为8就是了。
这个游戏的本意就是guess等于8的时候,游戏结束。
游戏都结束了,你还猜个啥? heidern0612 发表于 2018-12-4 21:31
你要是想猜次数,想进while循环,guess就不要赋值为8。你都赋值为8了,while还循环个啥?你可以赋值任意值 ...
那我换个问法,比如小明18岁,让小红猜他的年龄,但是只给3次机会,第一次就猜中了当然就结束啦,但是第一次没猜中可以再猜啊,但是不能无限猜,最多猜三次。这个不能实现吗? 本帖最后由 heidern0612 于 2018-12-5 19:30 编辑
皇甫宅 发表于 2018-12-4 22:20
那我换个问法,比如小明18岁,让小红猜他的年龄,但是只给3次机会,第一次就猜中了当然就结束啦,但是第 ...
times = 3
while times !=0:
try:
temp = int(input("请输入你猜测的年纪:"))
if temp!= 18:
times -= 1
print("猜的不对哟~")
else:
print("猜对啦~游戏结束!")
break
except:
print("输入的内容有误,请输入数字。")
else:
print("机会用光啦,请重新再来吧!") heidern0612 发表于 2018-12-5 08:03
try都出来了,人家看得懂嘛 你循环条件该换成temp = int(temp)
while (temp != guess) and (times > 0):
然后主程序根据这个再改改 times = 5
print('|---我爱鱼c工作室---|')
guess = 8
while True:
temp = int(input('不妨猜一下小甲鱼心里想的是哪个数字:'))
if times > 1:
times -= 1
if temp == guess:
print("卧槽,你是我的蛔虫吗?")
print("哼,猜中也没奖!")
else:
if temp > guess:
print('小了')
else:
print('大了')
else:
print('你没有游戏机会了!')
break
写给你参考一下 945318498 发表于 2018-12-5 14:35
写给你参考一下
谢谢运行了一下是对的就是还没学过break heidern0612 发表于 2018-12-5 08:03
感谢 感谢! 我百度了一下,用笨的方法也试出来了,就是比较冗长。
print('............我爱甲鱼.......')
temp = input("不妨猜一下小甲鱼心里想的是哪个数字:")
guess=int(temp)
if guess==8:
print("卧槽,你是我的蛔虫吗?")
print("哼,猜中也没奖!")
else:
if guess > 8:
print('大了!')
else :
print('小了!')
times = 2
while (guess != 8 ) and (times > 0):
times = times - 1
temp = input('Try again:')
guess=int(temp)
if guess == 8:
print("卧槽,你是我的蛔虫吗?")
print("哼,猜中也没奖!")
else:
if guess > 8:
print('大了!')
else :
print('小了!')
if times < 1:
print ('机会用完啦!')
print("game over")
本帖最后由 zwhahx521 于 2018-12-11 10:22 编辑
print('............我爱甲鱼.......')
times = 3
while times>0:
temp=input("wrong!!try again:")
guess=int(temp)
times = times - 1
if guess==8:
print("卧槽,你是我的蛔虫吗?")
print("哼,猜中也没奖!")
break
else:
if guess > 8:
print('哥,大了...')
else:
print('嘿,小了')
if times > 0:
print('最后一次:', end='')
else:
print('机会用光了T_T')
print("game over")
你试试这个程序。 皇甫宅 发表于 2018-12-5 21:41
谢谢运行了一下是对的就是还没学过break
break 就是结束循环。 zwhahx521 发表于 2018-12-10 17:18
print('............我爱甲鱼.......')
times = 3
while times>0:
谢谢 加模块啊 你这已经是定值了
页:
[1]