Lucky.Jobling 发表于 2020-4-23 16:29:45

005课后题疑惑求助,先谢大神!

判断是否为闰年的那道题
我的程序这样写:
year=input('请输入一个年份,判断是否为闰年:')
while type(year,int)!=true:
      print('输入不合法,')
      year=input('请重新输入:')
a=year/400
b=year/4
c=year/100
print(year,end='')
if type(a,int)==true:
                   print('年是闰年')
else:
    print('年是闰年')
    if type(b,int)==true andtype(c,int)!=true:
         print('年是闰年')
    else:
         print('年不是闰年')
结果就是出错,参考答案用的事s.isdigit,判断是否全为数字,我用type()判断类型为什么就不可以啊
还有个问题时比如while和if后面的条件,如果只是判断真和假,像type这样出结果的,还有像我写的这样加一个判断语句么,直接while type(a,int),是真就继续执行?还是要这样while type(a,int)==true?

初学小甲鱼的课,问得太基础了,烦劳大神们不吝赐教{:5_110:}

qiuyouzhi 发表于 2020-4-23 16:32:19

1,input接收的永远是字符串。
2,while type(a, int)就好。

Lucky.Jobling 发表于 2020-4-23 16:45:03

qiuyouzhi 发表于 2020-4-23 16:32
1,input接收的永远是字符串。
2,while type(a, int)就好。

谢谢大神{:5_109:}

Lucky.Jobling 发表于 2020-4-23 20:14:00

qiuyouzhi 发表于 2020-4-23 16:32
1,input接收的永远是字符串。
2,while type(a, int)就好。

大神,再追问一个问题:type(5)是可以返回<class 'int'>,返回结果的这个字符不能直接和int比较是么,如果希望比较结果是否为某个类型,正确地该怎么做啊

qiuyouzhi 发表于 2020-4-23 20:18:14

Lucky.Jobling 发表于 2020-4-23 20:14
大神,再追问一个问题:type(5)是可以返回,返回结果的这个字符不能直接和int比较是么,如果希望比较结果 ...

isinstance

Lucky.Jobling 发表于 2020-4-23 20:27:17

python初学者,上面的代码写得明显错误了。

首先type()识别的是括号内字符的类型,返回应该是<class '字符类型(int/str/float等等)'>,返回的是个字符串
比较某个字符串是不是某个类型,用函数isinstance(a,z字符类型如int),返回结果是true或false

让大家见笑了{:10_269:}
页: [1]
查看完整版本: 005课后题疑惑求助,先谢大神!