鱼C论坛

 找回密码
 立即注册
查看: 275|回复: 16

[已解决]关于零基础005讲动动手1的疑问

[复制链接]
最佳答案
1 
发表于 2018-6-7 23:23:59 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

x
temp = input('请输入一个年份:')
while not temp.isdigit():                #.isdigit()这个模块具体是怎么用的?小甲鱼没讲好迷糊。。
    temp = input("抱歉,您的输入有误,请输入一个整数:")#加temp=...是什么用法?为什么当输入非整数时temp可以跳出循环?
year = int(temp)
if (year/400 == int(year/400)) and (year/100 == int(year/100)):
    print(temp + ' 是闰年!')
else:
    if (year/4 == int(year/4)) and (year/100 != int(year/100)):
        print(temp + ' 是闰年!')
    else:
        print(temp + ' 不是闰年!')

两个问题在上面
另外问一下发帖怎么发代码?这样好乱
谢谢解答的大佬们!!
最佳答案
2018-6-8 00:18:46
也是新手上路,希望一同进步
temp.isdigit 的意思就是判断 temp 是否只由纯数字组成
如果是的话,返回一个 True ,反之返回一个 False
这里如果输如的不是纯数字的话,返回一个False,加入not后变成True,是while语句继续循环
temp = input() 则是让用户重新输入年份,input后面括号里的内容是可以打印出来的
而且 只有当输入为整数时才会跳出这个循环
至于输入代码嘛,你点开高级模式,@旁边有个<>标志,就是输入代码的
最佳答案
1 
发表于 2018-6-8 00:18:46 | 显示全部楼层    本楼为最佳答案   
也是新手上路,希望一同进步
temp.isdigit 的意思就是判断 temp 是否只由纯数字组成
如果是的话,返回一个 True ,反之返回一个 False
这里如果输如的不是纯数字的话,返回一个False,加入not后变成True,是while语句继续循环
temp = input() 则是让用户重新输入年份,input后面括号里的内容是可以打印出来的
而且 只有当输入为整数时才会跳出这个循环
至于输入代码嘛,你点开高级模式,@旁边有个<>标志,就是输入代码的

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
you2244687 + 1 + 1 + 1

查看全部评分

最佳答案
7 
发表于 2018-6-8 10:03:17 | 显示全部楼层

回帖奖励 +3 鱼币

you2244687 发表于 2018-6-8 09:46
谢谢!!第二个问题还是不懂额,不是纯数字while语句继续循环的话,input的内容为什么只显示了一次?如果 ...

输入为纯数字的话,while不执行。输入为非纯数字,就会执行循环体的内容(你这里的循环体是:一直提示输入,直到输入数字为止)。

评分

参与人数 1荣誉 +2 贡献 +2 收起 理由
you2244687 + 2 + 2 谢谢

查看全部评分

最佳答案
1 
 楼主| 发表于 2018-6-7 23:39:10 | 显示全部楼层
没有大佬吗
最佳答案
1 
 楼主| 发表于 2018-6-8 00:09:19 From FishC Mobile | 显示全部楼层
有时候怀疑我学的是不是旧版的。。好多课后作业要很长时间自己理解才能弄懂
最佳答案
1 
 楼主| 发表于 2018-6-8 00:18:07 From FishC Mobile | 显示全部楼层
为什么小甲鱼不把课后作业的知识点解释下啊,晕
最佳答案
2 
发表于 2018-6-8 07:45:39 | 显示全部楼层
评论不了
最佳答案
1 
 楼主| 发表于 2018-6-8 09:46:52 | 显示全部楼层
CG_noob 发表于 2018-6-8 00:18
也是新手上路,希望一同进步
temp.isdigit 的意思就是判断 temp 是否只由纯数字组成
如果是的话,返回一 ...

谢谢!!第二个问题还是不懂额,不是纯数字while语句继续循环的话,input的内容为什么只显示了一次?如果把temp = input()改成print('')它就会无限打印print的内容直到C+L强制中止循环。
最佳答案
5 
发表于 2018-6-8 10:11:38 | 显示全部楼层

回帖奖励 +3 鱼币

因为判断全部是不是数字啊?小数中包含小数点
>>> abc ="000123213"
>>> abc.isdigit()
True
>>> abc = 1.234
>>> abc="1.234000"
>>> abc.isdigit()
False
最佳答案
0 
发表于 2018-6-8 10:18:44 From FishC Mobile | 显示全部楼层

回帖奖励 +3 鱼币

为什么发不了贴
最佳答案
1 
 楼主| 发表于 2018-6-8 10:44:34 | 显示全部楼层
程序员的救赎 发表于 2018-6-8 10:03
输入为纯数字的话,while不执行。输入为非纯数字,就会执行循环体的内容(你这里的循环体是:一直提示输 ...

好像弄懂了,它是一直循环,而int()函数本身要输入,所以必须输入再执行循环。这样就不会像print那样会一直重复显示。我混淆了temp和print。谢谢谢谢!
最佳答案
0 
发表于 2018-6-8 18:06:33 | 显示全部楼层
while 的循环啊  
最佳答案
0 
发表于 2018-6-9 08:18:43 | 显示全部楼层
学学看看 发表于 2018-6-8 10:11
因为判断全部是不是数字啊?小数中包含小数点
>>> abc ="000123213"
>>> abc.isdigit()

.isdigit() 就是判断呗? 纯数字为True 反之False  是这意思吗?
最佳答案
2 
发表于 2018-6-9 10:09:33 | 显示全部楼层

回帖奖励 +3 鱼币

输入为纯数字的话,while不执行。输入为非纯数字
最佳答案
1 
发表于 2018-6-14 09:25:28 | 显示全部楼层

回帖奖励 +3 鱼币

我看到第五课 就突然失去了方向      课后题不会做了  
最佳答案
0 
发表于 2018-6-14 21:45:21 | 显示全部楼层

回帖奖励 +3 鱼币

输入为纯数字的话,while不执行
最佳答案
0 
发表于 2018-6-16 15:30:42 | 显示全部楼层

回帖奖励 +3 鱼币

好多课后作业要很长时间自己理解才能弄懂
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号

GMT+8, 2018-8-21 05:01

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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