s.isdigit 和 isinstance(s,int) 的选择?
为什么图中画红色部分【temp.isdigit():】{图1}改成【isinstance(temp,int)】{图2}就无法运行了呢? 本帖最后由 逃兵 于 2021-4-8 19:16 编辑因为input()函数返回的是一个字符串
你输入的是213
返回的结果是 '213'
temp = '213'
'213'是字符串,不是整型了,isinstance(temp,int)永远返回False
isdigit()是用来判断字符串是不是由纯数字组成
temp = '213'
temp是由纯数字组成的字符串,所以temp.isdigit()返回True 本帖最后由 肖-肖 于 2021-4-8 19:21 编辑
可能input默认接收将你输入的东西的类型转为字符串类型了吧!
所以用isinstance判断的时候:是判断一个字符串是不是整型数字或浮点型的
你输入的1234是一个字符串,不是数字类型的
所以永远为判断的结果永远为False.
而.isdigit()是判断一个字符串的内容是否为整数的,所以用这个是可以的!
它们两者的区别详情见下图:
逃兵 发表于 2021-4-8 19:13
因为input()函数返回的是一个字符串
你输入的是213
明白了,感谢解答! 肖-肖 发表于 2021-4-8 19:18
可能input默认接收将你输入的东西的类型转为字符串类型了吧!
所以用isinstance判断的时候:是判断一个字 ...
好的,明白啦,感谢解答!! IEECO 发表于 2021-4-8 19:51
好的,明白啦,感谢解答!!
不客气( ̄︶ ̄)↗ 這裡我沒有用到判斷整數語句,直接用 try() 由系統自己判斷
while True:
try:
num = int(input("請輸入一個年份:\n"))
if num%100 != 0 and num%4 == 0:
print(f"{num} 是閏年")
else:
print(f"{num} 不是閏年")
break
except:
print("輸入不正確,請重試")
continue
當然,如果你想要用判斷是否整數語句,可以試試用 type(),如:
x = 12345
y = "12345"
if type(x) == int:
print("x is an integer")
else:
print("x is not an integer")
if type(y) == int:
print("y is an integer")
else:
print("y is not an integer")
x is an integer
y is not an integer 傻眼貓咪 发表于 2021-9-5 15:07
這裡我沒有用到判斷整數語句,直接用 try() 由系統自己判斷
當然,如果你想要用判斷是否整數語句,可以 ...
谢谢!
页:
[1]