鱼C论坛

 找回密码
 立即注册
查看: 1762|回复: 7

[已解决]求助大神 这个程序又进行不下去了

[复制链接]
发表于 2020-8-30 10:13:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import random
answer=random.randint(1,10)
print('hello hello')
temp=input('不妨说说你心里想的数字')
times=1
while   times<4:
    while   temp.isdigit()==False:
        temp=input('说一个1到10的整数')
        times=times+1
    guess=int(temp)
    while   guess!=answer:
        temp=input('猜错了 重新猜')
        guess=int(temp)
        times=times+1
        if  guess<answer:
                print('害 小了小了')
        if  guess>answer:
                print('还是不对 大了')
        if  guess==answer:
            break
            print('猜对啦')
            print('不过并没有奖励')
            print('游戏结束不玩了88')
print('次数用完啦')
print('下次见咯')

以上是代码 想要写一个猜数游戏希望可以有3次猜的机会 但是好像这个次数没有赋值上去还是怎么样 第一个while好像就没有进行 怎么办啊哪里有问题啊
最佳答案
2020-8-30 10:38:15
本帖最后由 疾风怪盗 于 2020-8-30 10:51 编辑

你写的整个逻辑不通顺啊,试试看这样
  1. import random

  2. answer = random.randint(1, 10)
  3. print(answer)
  4. print('hello hello')
  5. temp = input('不妨说说你心里想的数字')
  6. times = 2

  7. while times > 0:
  8.     if temp.isdigit() == False:
  9.         temp = input(f'说一个1到10的整数,还剩下{times}次机会')
  10.         times = times - 1
  11.         print(times)
  12.     else:      
  13.         guess = int(temp)
  14.         times = times - 1
  15.         if guess == answer:
  16.             print('猜对啦')
  17.             print('不过并没有奖励')
  18.             print('游戏结束不玩了88')
  19.             break
  20.         else:
  21.             if guess < answer:
  22.                 print('害 小了小了')
  23.             elif guess > answer:
  24.                 print('还是不对 大了')
  25.             temp = input(f'猜错了 重新猜,还剩下{times + 1}次机会')
  26.             guess = int(temp)
  27. else:
  28.     print('次数用完啦')
  29.     print('下次见咯')

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-8-30 10:22:00 | 显示全部楼层
  1. import random
  2. answer=random.randint(1,10)
  3. print('hello hello')
  4. temp=input('不妨说说你心里想的数字')
  5. times=1
  6. while times<4:
  7.     while temp.isdigit() == False:
  8.         temp=input('说一个1到10的整数')
  9.     times=times+1
  10.     guess=int(temp)
  11.     if  guess<answer:
  12.         print('害 小了小了')
  13.     elif  guess>answer:
  14.         print('还是不对 大了')
  15.     else:
  16.         print('猜对啦')
  17.         print('不过并没有奖励')
  18.         print('游戏结束不玩了88')
  19.         break
  20.     temp=input('猜错了 重新猜')
  21. print('次数用完啦')
  22. print('下次见咯')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-30 10:38:15 | 显示全部楼层    本楼为最佳答案   
本帖最后由 疾风怪盗 于 2020-8-30 10:51 编辑

你写的整个逻辑不通顺啊,试试看这样
  1. import random

  2. answer = random.randint(1, 10)
  3. print(answer)
  4. print('hello hello')
  5. temp = input('不妨说说你心里想的数字')
  6. times = 2

  7. while times > 0:
  8.     if temp.isdigit() == False:
  9.         temp = input(f'说一个1到10的整数,还剩下{times}次机会')
  10.         times = times - 1
  11.         print(times)
  12.     else:      
  13.         guess = int(temp)
  14.         times = times - 1
  15.         if guess == answer:
  16.             print('猜对啦')
  17.             print('不过并没有奖励')
  18.             print('游戏结束不玩了88')
  19.             break
  20.         else:
  21.             if guess < answer:
  22.                 print('害 小了小了')
  23.             elif guess > answer:
  24.                 print('还是不对 大了')
  25.             temp = input(f'猜错了 重新猜,还剩下{times + 1}次机会')
  26.             guess = int(temp)
  27. else:
  28.     print('次数用完啦')
  29.     print('下次见咯')

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-8-30 10:38:56 | 显示全部楼层

你这样会有个bug,猜对了也会打印
  1. print('次数用完啦')
  2. print('下次见咯')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-30 10:42:54 | 显示全部楼层
如果你只需要猜3次,那么我觉得你的while循环甚至都可以省略了,因为你的代码中已经出现了3次input了,加入while反而没必要,而且你加入的while甚至让你的程序可以输入很多次,比如重复输入一个数字
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-30 12:42:59 | 显示全部楼层
疾风怪盗 发表于 2020-8-30 10:38
你写的整个逻辑不通顺啊,试试看这样

明白了 非常感谢 还有一点小问题 就是while后面一般是不能再用while了对吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-30 12:48:26 | 显示全部楼层
孙赖 发表于 2020-8-30 12:42
明白了 非常感谢 还有一点小问题 就是while后面一般是不能再用while了对吗

不是不能用,用while或者if都是从逻辑角度的吧,反正按我的思路写的,就用一次足够了
我也是初学者,我一般写的代码,基本用不到while,比较常用if,while比较难理解,会死循环。。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-30 15:00:02 | 显示全部楼层
疾风怪盗 发表于 2020-8-30 12:48
不是不能用,用while或者if都是从逻辑角度的吧,反正按我的思路写的,就用一次足够了
我也是初学者,我 ...

好的 非常感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-26 14:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表