Carsten 发表于 2020-6-8 11:28:02

小白想问问isinstance 和 end= 的用法

有一个闰年判断的小程序
num = input('输入年份判断是否是闰年: ')
while not num.isdigit():
    num = input('输入有误,请输入整数: ')

Y = int(num)
if (isinstance(Y/4,int)) and (isinstance(Y/100,float)):
    print('闰年')
else:
    if (isinstance(Y/400,int)):
      print('闰年')
    else:
      print('非闰年')
            
   
不管输入啥年份都是闰年,我的isinstancce用的好像不太对

还有!!end= 咋用啊,我看到小甲鱼的程序里的end=有点不太明白,不换行的意思?

Twilight6 发表于 2020-6-8 11:32:50

本帖最后由 Twilight6 于 2020-6-8 11:34 编辑

因为 除法 永远返回的是 float,所以你这判断是否是整数不能用 isinstance 方法 因为永远不可能为 整型

判断是否为整数用 % 求余运算符即可

num = input('输入年份判断是否是闰年: ')
while not num.isdigit():
    num = input('输入有误,请输入整数: ')

Y = int(num)
if Y%4 == 0 and Y%100 != 0:
    print('闰年')
else:
    if Y%400 == 0:
      print('闰年')
    else:
      print('非闰年')

Carsten 发表于 2020-6-8 11:37:41

Twilight6 发表于 2020-6-8 11:32
因为 除法 永远返回的是 float,所以你这判断是否是整数不能用 isinstance 方法 因为永远不可能为 整型

...

哇懂了!谢谢谢谢

Twilight6 发表于 2020-6-8 11:38:08

Carsten 发表于 2020-6-8 11:37
哇懂了!谢谢谢谢

print 里面有个默认参数 end = '\n' 是默认等于一个换行符 ,而且是在每次你 print 要结束时会自动打印 end ,所以你每次 print 都会自动换行

如果我们人为重新给 print 里面的end 参数赋值,那么就会覆盖原有的默认参数,达到你想要的效果,比如把end 赋值为 ' ' 空格,那么他打印完后会默认打印一个空格,而不是默认的换行

xiaosi4081 发表于 2020-6-8 12:36:41

Twilight6 发表于 2020-6-8 11:38
print 里面有个默认参数 end = '\n' 是默认等于一个换行符 ,而且是在每次你 print 要结束时会自动打印 e ...

我想回答,但是你已经回答了,而且回答的非常到位,我就算回答了你也是最佳{:10_266:}{:10_266:}{:10_266:}{:10_266:}

狗宁 发表于 2020-6-26 11:15:19

我来嫖一下
页: [1]
查看完整版本: 小白想问问isinstance 和 end= 的用法