鱼C论坛

 找回密码
 立即注册
查看: 2681|回复: 15

[已解决]0基础学习phython的课后作业改进小游戏,自己改编了一下,运行没问题,但我猜不出数。

[复制链接]
发表于 2020-2-11 20:29:58 | 显示全部楼层 |阅读模式
1鱼币
import random

print('----------猜数游戏----------')
random = random.randint(1,10)
print("不妨猜一下我现在想的是什么数字:")
while True:
    guess = input()
    if int(guess) !=0:
        if int(guess)>random:
            print("大了,请重新输入:")
            
        else:
            print("小了,请重新输入:")
    else:
        print("我草,你是我心里的蛔虫吗?!")
        print("哼,猜中了也没有奖励!")
        print("游戏结束,不玩啦")
        break
运行结果:
----------猜数游戏----------
不妨猜一下我现在想的是什么数字:
7
大了,请重新输入:
6
大了,请重新输入:
5
大了,请重新输入:
4
小了,请重新输入:
最佳答案
2020-2-11 20:29:59
把代码改成这样:

  1. import random

  2. print('----------猜数游戏----------')
  3. random = random.randint(1,10)
  4. print("不妨猜一下我现在想的是什么数字:")
  5. while True:
  6.     guess = input()
  7.     if int(guess) != random:
  8.         if int(guess)>random:
  9.             print("大了,请重新输入:")
  10.             
  11.         else:
  12.             print("小了,请重新输入:")
  13.     else:
  14.         print("我草,你是我心里的蛔虫吗?!")
  15.         print("哼,猜中了也没有奖励!")
  16.         print("游戏结束,不玩啦")
  17.         break
复制代码

最佳答案

查看完整内容

把代码改成这样:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-11 20:29:59 | 显示全部楼层    本楼为最佳答案   
把代码改成这样:

  1. import random

  2. print('----------猜数游戏----------')
  3. random = random.randint(1,10)
  4. print("不妨猜一下我现在想的是什么数字:")
  5. while True:
  6.     guess = input()
  7.     if int(guess) != random:
  8.         if int(guess)>random:
  9.             print("大了,请重新输入:")
  10.             
  11.         else:
  12.             print("小了,请重新输入:")
  13.     else:
  14.         print("我草,你是我心里的蛔虫吗?!")
  15.         print("哼,猜中了也没有奖励!")
  16.         print("游戏结束,不玩啦")
  17.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-11 20:35:47 | 显示全部楼层
你要考虑一下你的代码中当:
  1. int(guess)==random
复制代码

会发生什么?问题不难找出来
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-11 20:45:02 | 显示全部楼层
你没告诉电脑如果猜中的会如何啊,你的代码只是guess为0的时候才有输出
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-11 20:45:28 | 显示全部楼层
把  if int(guess) !=0:  改成  if int(guess) !=random:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-11 20:46:20 | 显示全部楼层
hrp 发表于 2020-2-11 20:35
你要考虑一下你的代码中当:

会发生什么?问题不难找出来

能在说的详细一点吗?不懂呀
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-11 20:50:54 From FishC Mobile | 显示全部楼层
卡卡西曦 发表于 2020-2-11 20:46
能在说的详细一点吗?不懂呀

逻辑混乱,太乱
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-11 20:52:59 | 显示全部楼层
本帖最后由 hrp 于 2020-2-11 20:56 编辑
卡卡西曦 发表于 2020-2-11 20:46
能在说的详细一点吗?不懂呀

  1. import random

  2. print("----------猜数游戏----------")
  3. randomnum = random.randint(1, 10)  # 变量名最好不用random这个,会跟random模块混淆
  4. print("不妨猜一下我现在想的是什么数字:")
  5. while True:
  6.     guess = input()
  7.     if int(guess) != randomnum: # != 0 没有意义,这样写当你猜对了也会进入这个分支,改成 != randomnum,也就是当输入的数不等于随机数的时候
  8.         if int(guess) > randomnum:
  9.             print("大了,请重新输入:")

  10.         else:
  11.             print("小了,请重新输入:")
  12.     else:
  13.         print("我草,你是我心里的蛔虫吗?!")
  14.         print("哼,猜中了也没有奖励!")
  15.         print("游戏结束,不玩啦")
  16.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-11 20:58:10 | 显示全部楼层

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

使用道具 举报

发表于 2020-2-11 21:00:53 | 显示全部楼层
第8行,把
  1. if int(guess) != 0:
复制代码

改成
  1. if int(guess) != random:
复制代码

以及你变量名和模块名重了,最好改掉,不要用 random 作为变量名
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-11 21:02:25 | 显示全部楼层
首先逻辑就有问题  猜不对很正常  下面你看看我的注释

  1. import random

  2. print('----------猜数游戏----------')
  3. random = random.randint(1,10)
  4. print("不妨猜一下我现在想的是什么数字:")
  5. while True:
  6.     guess = input()
  7.     if int(guess) !=0:
  8.         if int(guess)>random:
  9. #首先来说上面这一句 假设随机数为6   你输入的是 7  执行大了重新输入  如果  你输入的是5 会执行小了  这目前也没什么问题
  10. 但是! 你输入的如果是正确的  6  首先 他会判断  你输入的不大于随机数,  这时候就会返回小了 即使你输入的是正确的
  11. #    if int(guess) == random:
  12. #        正确
  13. #    elif int(guess) > random:
  14. #        大了
  15. #    else:
  16. #        小了
  17.             print("大了,请重新输入:")
  18.         else:
  19.             print("小了,请重新输入:")
  20.     else:
  21.         print("我草,你是我心里的蛔虫吗?!")
  22.         print("哼,猜中了也没有奖励!")
  23.         print("游戏结束,不玩啦")
  24.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-11 21:05:25 | 显示全部楼层
Suud 发表于 2020-2-11 21:00
第8行,把

改成

好的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-11 21:09:16 | 显示全部楼层

你这和没改有什么区别吗   仔细想想 是不是错了 ,!= randomnum 你也说了输入正确的会进入这里  那么问题来了  进入之后进行第一个判断  很显然输入正确的不会满足大于这个条件  也就执行了  else 即使输入正确的也会说笑了  
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-11 21:19:57 | 显示全部楼层
苏沫儿 发表于 2020-2-11 21:09
你这和没改有什么区别吗   仔细想想 是不是错了 ,!= randomnum 你也说了输入正确的会进入这里  那么问题 ...

你确定?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-11 21:23:12 | 显示全部楼层

不确定被你的话误导了  回复完反过来一想 不对啊 正确不是进不去嘛.
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-11 21:26:52 | 显示全部楼层
苏沫儿 发表于 2020-2-11 21:23
不确定被你的话误导了  回复完反过来一想 不对啊 正确不是进不去嘛.

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 12:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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