我对 Python(和一般编程)还很陌生,所以我经常会遇到非常愚蠢的问题,例如下面的问题。
我想要的是反复检查用户输入中的 所有 字符是否都是符号。输入这样的输入时,我想打印该字符串。
由于似乎没有专门测试符号的方法,我决定先测试字母,然后测试数字,如果两者都为负数,则应该打印文本。
这是我的代码:
while True:
symbols = input("Enter symbol string:")
if symbols == symbols.isalpha():
print (symbols.isalpha())
elif not a == a.isalpha():
print (a.isalpha())
break
原文由 Chrysoula Kaloumenou 发布,翻译遵循 CC BY-SA 4.0 许可协议
Symbols 有点模糊,但这里有一个策略:
上面的代码首先创建一个符号列表,您希望确保字符串是从名为
valid_symbols
中创建的。接下来,它创建一个名为has_only_symbols
的变量,其值True
开始。接下来它开始检查输入字符串中的每个字符是否存在于valid_symbols
中。如果它遇到一个无效的字符,那么它会将has_only_symbols
的值更改为False
并跳出 for 循环(无需检查字符串的其余部分)。循环完成后,它会检查has_only_symbols
是True
还是False
并做相应的事情。另一方面,您的某些代码没有按照您的想法进行:
will test if
symbols
, your input string, is equal to the result ofsymbols.isalpha()
which returns a booleanTrue
orFalse
.你的意思可能只是:elif
声明也很奇怪。您已经开始引用一些名为a
的变量,但是您没有在发布的代码中的任何地方定义它。从您的描述和代码看来,您打算使用此elif
语句也参考symbols
并调用isdigit
方法:然而,这在逻辑上并不完整,因为混合了字母、数字和符号的字符串会漏掉。例如
abc123!@#
这两个测试都将失败并被打印出来。你想要一些更独特的东西,比如我写的上面的代码。