在下面的程序中,如果输入字符串包含不是数字,字母或空格的任何字符,我希望该程序退出。但是,在我的第二个条件elif语句中使用方法“ isspace”时,它接受非空格字符。例如,从技术上讲,如果我在输入字符串中插入以下任何字符,则该程序应以exit(-1)退出,但不会退出:“:”,“;”,“。”或“ *” 使用调试器,我看到它实际上输入了第二条条件elif语句,这不应该发生。我已经在python3终端中测试并验证了该语句
";".isspace()
的计算结果为“ False”,但是在我下面的代码中,显然不是。 为什么会这样?
#!/usr/bin/python3
lets = 0
nums = 0
inp = input("enter input")
for i in range(len(inp)):
if inp[i].isdigit():
nums += 1
elif inp[i].isalpha():
lets += 1
elif inp[i].isspace:
pass
else:
print("invalid entry, try again")
exit(-1)
print("LETTERS {:10d}\nDIGITS {:10d}".format(lets, nums))