if语句被忽略[重复]
Posted
技术标签:
【中文标题】if语句被忽略[重复]【英文标题】:the if stament it's ignored [duplicate] 【发布时间】:2020-03-05 20:13:05 【问题描述】:我是初学者,我的功能不起作用。我没有我错过的内容:
def string_length(stri):
if stri == int:
print(" not a string")
else:
print(len(stri), stri)
stri = str(input("please write a string: "))
string_length(stri)
在少数情况下,如果我写一个整数,if 语句将被忽略。
【问题讨论】:
并不是它被忽略了。就是你认为它在做什么和它实际上在做什么是非常不同的。 stri == int 是 not 你如何检查某事物是否是 an int。 您的“if”测试特定对象是否等于整数类型。这在这里没有意义。你想要“isinstance”。 另外,请注意,如果您从用户那里接受输入,则输入始终是字符串。 “3”和3是不同的。一个是字符串。 【参考方案1】:def is_number(stri):
try:
float(stri)
return True
except ValueError:
pass
def string_length(stri):
if is_number(stri) == True:
print(" not a string")
else:
print(len(stri), stri)
stri = input("please write a string: ")
is_number(stri)
string_length(stri)
它对你不起作用,因为数字可以是字符串的形式,例如“6”而不是 6。所以任何时候你输入一个数字,它都会是一个字符串,所以会忽略 if。 is_number() 函数检查字符串是否可以表示为浮点数,如果可以,则返回值“True”。
【讨论】:
以上是关于if语句被忽略[重复]的主要内容,如果未能解决你的问题,请参考以下文章