皇甫宅 发表于 2018-12-4 21:00:27

《零基础入门学校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")

冬雪雪冬 发表于 2018-12-4 21:08:01

前面guess = 8,循环的条件是guess != 8

heidern0612 发表于 2018-12-4 21:31:49

本帖最后由 heidern0612 于 2018-12-4 21:37 编辑

你要是想猜次数,想进while循环,guess就不要赋值为8。你都赋值为8了,while还循环个啥?你可以赋值任意值,总之不要为8就是了。

这个游戏的本意就是guess等于8的时候,游戏结束。
游戏都结束了,你还猜个啥?

皇甫宅 发表于 2018-12-4 22:20:04

heidern0612 发表于 2018-12-4 21:31
你要是想猜次数,想进while循环,guess就不要赋值为8。你都赋值为8了,while还循环个啥?你可以赋值任意值 ...

那我换个问法,比如小明18岁,让小红猜他的年龄,但是只给3次机会,第一次就猜中了当然就结束啦,但是第一次没猜中可以再猜啊,但是不能无限猜,最多猜三次。这个不能实现吗?

heidern0612 发表于 2018-12-5 08:03:39

本帖最后由 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("机会用光啦,请重新再来吧!")

945318498 发表于 2018-12-5 14:15:46

heidern0612 发表于 2018-12-5 08:03


try都出来了,人家看得懂嘛

945318498 发表于 2018-12-5 14:19:07

你循环条件该换成temp = int(temp)
while (temp != guess) and (times > 0):
然后主程序根据这个再改改

945318498 发表于 2018-12-5 14:35:26

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
写给你参考一下

皇甫宅 发表于 2018-12-5 21:41:53

945318498 发表于 2018-12-5 14:35
写给你参考一下

谢谢运行了一下是对的就是还没学过break

皇甫宅 发表于 2018-12-5 21:46:40

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-10 17:18:23

本帖最后由 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")


你试试这个程序。

zwhahx521 发表于 2018-12-10 17:21:09

皇甫宅 发表于 2018-12-5 21:41
谢谢运行了一下是对的就是还没学过break

break 就是结束循环。

皇甫宅 发表于 2018-12-12 22:05:46

zwhahx521 发表于 2018-12-10 17:18
print('............我爱甲鱼.......')
times = 3
while times>0:


谢谢

ljy123456 发表于 2018-12-12 22:19:36

加模块啊 你这已经是定值了
页: [1]
查看完整版本: 《零基础入门学校Python》第四讲 改进小游戏(已解决)