检查字符串是否包含整数 python
check if string contains an integer python
我需要检查密码中输入的字符是否包含整数。
password = input("Enter a password:" )
for num in password:
if num.isdigit():
break
else:
print("Your password must contain a number.")
上面的代码不起作用,因为我假设由于 python 3 将每个用户输入作为一个字符串,它检查字符串并且永远不知道字符串和整数之间的区别细绳。我该如何解决这个问题?
您的代码将为每个非数字字符打印 Your password must contain a number.
。您需要知道密码中是否有数字,然后再决定其有效性。所以你可以使用一个布尔变量,然后如果在密码中找到任何数字字符,变量将是 True
并且在 for
循环之后你将使用它来检查密码的有效性。
你可以这样做:
password = input("Enter a password:" )
good_pass = False
for num in password:
if num.isdigit():
good_pass = True
break
if good_pass == True:
print('Good password!')
else:
print("Your password must contain a number.")
如果您取消缩进 else
使其成为 for
的一部分,您的代码可以正常工作:
for num in password:
if num.isdigit():
break
else:
print("Your password must contain a number.")
如果它是 if
的一部分,则 else
出现在每个非数字字符上;如果它是 for
的一部分,它会在循环结束时发生 如果循环从未中断 ,这就是您想要的行为。
编写相同支票的更简单方法是使用 any
函数(“如果没有任何数字...”):
if not any(num.isdigit() for num in password):
print("Your password must contain a number.")
或等效于 all
(“如果所有字符都不是数字...”):
if all(not num.isdigit() for num in password):
print("Your password must contain a number.")
我需要检查密码中输入的字符是否包含整数。
password = input("Enter a password:" )
for num in password:
if num.isdigit():
break
else:
print("Your password must contain a number.")
上面的代码不起作用,因为我假设由于 python 3 将每个用户输入作为一个字符串,它检查字符串并且永远不知道字符串和整数之间的区别细绳。我该如何解决这个问题?
您的代码将为每个非数字字符打印 Your password must contain a number.
。您需要知道密码中是否有数字,然后再决定其有效性。所以你可以使用一个布尔变量,然后如果在密码中找到任何数字字符,变量将是 True
并且在 for
循环之后你将使用它来检查密码的有效性。
你可以这样做:
password = input("Enter a password:" )
good_pass = False
for num in password:
if num.isdigit():
good_pass = True
break
if good_pass == True:
print('Good password!')
else:
print("Your password must contain a number.")
如果您取消缩进 else
使其成为 for
的一部分,您的代码可以正常工作:
for num in password:
if num.isdigit():
break
else:
print("Your password must contain a number.")
如果它是 if
的一部分,则 else
出现在每个非数字字符上;如果它是 for
的一部分,它会在循环结束时发生 如果循环从未中断 ,这就是您想要的行为。
编写相同支票的更简单方法是使用 any
函数(“如果没有任何数字...”):
if not any(num.isdigit() for num in password):
print("Your password must contain a number.")
或等效于 all
(“如果所有字符都不是数字...”):
if all(not num.isdigit() for num in password):
print("Your password must contain a number.")