鱼C论坛

 找回密码
 立即注册
查看: 612|回复: 4

[已解决]第四讲 自己写了一段

[复制链接]
发表于 2019-3-28 00:08:39 | 显示全部楼层 |阅读模式

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

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

x
import random

_random = random.randint(1,10)

_GuessNum = input("让我们猜猜数字")
_GuessNumAnswer = int(_GuessNum)
while _GuessNumAnswer != _random:
    if _GuessNumAnswer == _random:
        print('中了')
        print('没奖励')
    else:
        if _GuessNumAnswer > _random:
            _AgainNum = input('大了,请再输入')
            _GuessNumAnswer = int(_AgainNum)
        else:
            _AgainNum = input('小了,请再输入')
            _GuessNumAnswer = int(_AgainNum)
print('游戏结束')


请问程序是怎么走的导致不会出现'中了'和‘没奖励’直接游戏结束的,要优化的话怎么写
最佳答案
2019-3-28 00:35:49
    while 语句条件设置不当,导致如果答对,直接跳出(或不进入)循环,根本没有机会显示后面的 '中了' 等信息
  1. while _GuessNumAnswer != _random:
复制代码

    应该这么改:
  1. while True:
  2.     if _GuessNumAnswer == _random:
  3.         print('中了')
  4.         print('没奖励')
  5.         break
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-28 00:23:58 | 显示全部楼层
本帖最后由 13572044595 于 2019-3-28 00:34 编辑

你的代码,第一次输入正确,就直接 结束

第一次输入错误,就会进入 else 语句中,
else 重新接收 输入, 如果输入值 正确,
再次 while循环 判断时,while 循环 条件为 假,退出循环,
不会进入到 if 判断哪里的
如果不正确,又会 进入 else 重新接收 输入



修改过的代码:

  1. import random

  2. _random = random.randint(1,10)

  3. _GuessNum = print("让我们猜猜数字:", end='')
  4. _GuessNumAnswer = 0
  5. while _GuessNumAnswer != _random:
  6.     _GuessNumAnswer = int(input())
  7.     if _GuessNumAnswer == _random:
  8.         print('中了')
  9.         print('没奖励')
  10.     else:
  11.         if _GuessNumAnswer > _random:
  12.             print('大了,请再输入:', end='')
  13.         else:
  14.             print('小了,请再输入:', end='')
  15. print('游戏结束')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-3-28 00:35:49 | 显示全部楼层    本楼为最佳答案   
    while 语句条件设置不当,导致如果答对,直接跳出(或不进入)循环,根本没有机会显示后面的 '中了' 等信息
  1. while _GuessNumAnswer != _random:
复制代码

    应该这么改:
  1. while True:
  2.     if _GuessNumAnswer == _random:
  3.         print('中了')
  4.         print('没奖励')
  5.         break
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-30 22:20:38 | 显示全部楼层
13572044595 发表于 2019-3-28 00:23
你的代码,第一次输入正确,就直接 结束

第一次输入错误,就会进入 else 语句中,

end函数的意思是?  小甲鱼在第四讲没有提过end,  我是完全的初学者。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-31 10:30:07 | 显示全部楼层
焚炎之琼 发表于 2019-3-30 22:20
end函数的意思是?  小甲鱼在第四讲没有提过end,  我是完全的初学者。。

end -- 是 print() 函数的默认参数,默认 end='\n'  也就是换行的意思
你可以给 end=‘’ 那样就不会换行了~

想要查看 函数的具体用法使用 help() 帮助函数
如图:

QQ截图20190331102718.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-3 01:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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