鱼C论坛

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

while 循环的问题

[复制链接]
发表于 2017-10-23 11:05:19 | 显示全部楼层 |阅读模式

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

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

x
我感觉我进入了一个误区,希望高手版主,来帮帮我解决这个问题,
当我键入一个数字,while判断真,
问题一:执行循环语句,>> guess = int(temp) 这里为什么要加入这个变量,前面已经定义了,我想这里应该可以直接调用,我用PyCharm调试,没有这句程序会乱跑,输入100返回的结果还是,数字小了
问题2:当>>if guess > secret: 为真,执行>>temp = input("请重新输入一个数字")后,程序是从>>while guess != secret:这里循环还是从>>guess = int(temp)这里?
import random
secret = random.randint(1,10)           
temp = input("请输入一个数字:")               
guess = int(temp)
while guess != secret:
    guess = int(temp)
    if guess > secret:
        print("你猜测的数字大了")
        temp = input("请重新输入一个数字")
    else:
        print("你猜测的数字小了")
        temp = input("请重新输入一个数字")
if guess == secret:
    print("恭喜你猜对了")
    print("游戏结束")
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-10-23 11:53:23 | 显示全部楼层
问题1:guess = int(temp) int函数是将temp转换为数字类型,input()返回字符串如果不转换guess != secret怎么比较,下面是我运行你代码的结果:
请输入一个数字:100
你猜测的数字大了
请重新输入一个数字
问题2:从>>while guess != secret: 开始
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-23 11:58:13 | 显示全部楼层
$DIM 发表于 2017-10-23 11:53
问题1:guess = int(temp) int函数是将temp转换为数字类型,input()返回字符串如果不转换guess != secret ...

guess = int(temp)
转换的问题,这个我知道
程序里有两个guess = int(temp)
我想问的是循环语句里面guess = int(temp)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-23 12:07:31 | 显示全部楼层
lkafw 发表于 2017-10-23 11:58
guess = int(temp)
转换的问题,这个我知道
程序里有两个guess = int(temp)

>>while guess != secret:

while guess != secret: -->2
    guess = int(temp) -->3
    if guess > secret: -->4
        print("你猜测的数字大了")
        temp = input("请重新输入一个数字") -->1

执行顺序:1 , 2, 3, 4
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-23 12:16:26 | 显示全部楼层
$DIM 发表于 2017-10-23 12:07
>>while guess != secret:

while guess != secret: -->2

谢谢你让我知道第二个问题,循环里面的guess = int(temp)这个有必要要吗?我感觉是没有必要在此定义,但是不用它,有会有错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-23 12:38:24 | 显示全部楼层
lkafw 发表于 2017-10-23 12:16
谢谢你让我知道第二个问题,循环里面的guess = int(temp)这个有必要要吗?我感觉是没有必要在此定义,但 ...

但是不用它,有会有错

那就是有意义呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-23 15:09:52 From FishC Mobile | 显示全部楼层
小甲鱼老师有强调,temp=input()输入的值是字符串,需要将字符串转化成整型,才能比较guess=int(temp)。
打个比方,input()给的是汉字,和你随机生成的数字如何比较!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-24 10:19:13 | 显示全部楼层
$DIM 发表于 2017-10-23 12:38
但是不用它,有会有错

那就是有意义呀

我重新看了一下代码发现了第二个guess = int(temp)的作用了,
它是用来定义 if 和 else 重新接收输入后的强制转换int型。
如果代码temp = input("请重新输入一个数字")更换为
temp = int(input("请重新输入一个数字"))
则不需要在次定义转换,
第一次执行时候,转换int形式,while 条件比较,进入循环后则不执行第一个guess = int(temp),所有这里需要重新定义,最后谢谢你的解答!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-25 12:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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