【问题标题】:the if stament it's ignored [duplicate]if语句被忽略[重复]
【发布时间】: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是不同的。一个是字符串。

标签: python function


【解决方案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”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多