Python if statement if variable value is string or any Type
如何生成一个if语句,该语句将询问我的变量是否包含字符串或任何类型,如果包含,那么它将执行if语句下的代码。下面的代码只是我的实验,但它不能像我希望的那样工作。
1 2 3 4 5 | def checkMyValues(*args): if isinstance(args, str) == True: print("it is a string!") checkMyValues("haime") |
但这不会输出"它是一个字符串!".
任何帮助都将不胜感激,谢谢
当您想要检查类型的参数列表时,您应该循环它,而不是检查元组本身的类型。然后它会给你预期的结果。下面是您的代码的修改版本
1 2 3 4 5 6 7 8 | def checkMyValues(*args): for each in args: if isinstance(each, str) == True: print("it is a string!") else: print("Its not a string") checkMyValues("haime", 20, '40.2') |
您需要循环遍历参数(它是您传递给函数的参数中的
1 2 3 4 | def checkMyValues(*args): for arg in args: if isinstance(arg, str): print(arg,"is a string!") |
输出:
1 2 3 4 5 6 | checkMyValues("haime") # haime is a string! checkMyValues("haime", 7, [], None, 'strg') # haime is a string! # strg is a string! |
从args中删除*,它将工作。向参数添加*使其成为非关键字参数(列表)。所以你的支票没用。
在函数中使用
试试这个
1 2 3 4 5 | def checkMyValues(arg): if isinstance(arg, str): # Not need to compare == True print("it is a string!") checkMyValues("haime") |
更多有关
我不太明白你的意思,但根据你的代码。也许你需要这个。
1 2 3 | def checkMyValues(args): if isinstance(args, str): print("is string") |
*args是元组而不是字符串
1 2 3 4 5 6 7 8 9 | def checkMyValues(*args): for s in args: z = type(s) if z is str: print(s," is a string!") else: print(s," is not a string!") checkMyValues("4","5",5) |