鱼C论坛

 找回密码
 立即注册
查看: 4090|回复: 9

[已解决]关于第四课课后作业的问题

[复制链接]
发表于 2017-12-24 23:36:56 | 显示全部楼层 |阅读模式

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

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

x
temp = input("输入一个整数:")
num = int(temp)
i = 1
while num:
    print(i)
    i = i + 1
    num = num - 1



最后一行,num = num - 1 起到什么作用,为什么加了这一行可以停止无限循环?
最佳答案
2017-12-25 00:12:22
如果 num >0, 不加 num - 1 的话,while num 就会一直为 True; 加 num - 1 的话, num 总会到减到 0 的时候,while num 为 False,就可以退出循环了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-12-24 23:53:20 | 显示全部楼层
temp = input("输入一个整数:")
num = int(temp)
我想问的是既然第一句,明确说要输入一个整数了,并且赋值给temp,第二句何必还要int(temp)进行取整呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-25 00:07:06 | 显示全部楼层
aaaly567 发表于 2017-12-24 23:53
temp = input("输入一个整数:")
num = int(temp)
我想问的是既然第一句,明确说要输入一个整数了,并且赋 ...

input() 函数返回的是一个字符串。你输入 1 ,temp = "1"。 所以要int(temp)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-25 00:12:22 | 显示全部楼层    本楼为最佳答案   
如果 num >0, 不加 num - 1 的话,while num 就会一直为 True; 加 num - 1 的话, num 总会到减到 0 的时候,while num 为 False,就可以退出循环了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-25 00:13:02 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-25 00:07
input() 函数返回的是一个字符串。你输入 1 ,temp = "1"。 所以要int(temp)

int(),有把“数字型的字符串”变成数字的功能吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-25 00:20:34 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-25 00:07
input() 函数返回的是一个字符串。你输入 1 ,temp = "1"。 所以要int(temp)

谢谢! 终于明白了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-25 00:21:24 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-25 00:12
如果 num >0, 不加 num - 1 的话,while num 就会一直为 True; 加 num - 1 的话, num 总会到减到 0 的时 ...

谢谢! 终于明白了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-25 00:30:55 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-25 00:07
input() 函数返回的是一个字符串。你输入 1 ,temp = "1"。 所以要int(temp)

temp = input("输入一个整数:")
print(temp)
我用这个方法验证运行,发现temp返回的并不是一个字符串,而是数字。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-25 11:00:22 | 显示全部楼层
aaaly567 发表于 2017-12-25 00:30
temp = input("输入一个整数:")
print(temp)
我用这个方法验证运行,发现temp返回的并不是一个字符串 ...

字符串数字打印出来是没有引号的,比如说 ‘1’ 打印出来是 1.
你应该用 type(temp) 查看它的类型。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-25 11:01:21 | 显示全部楼层
aaaly567 发表于 2017-12-25 00:13
int(),有把“数字型的字符串”变成数字的功能吗?

对的。要是整数才行。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-19 17:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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