ASCII_LOWERCASE='abcdefghijklmnopqrstuvwxyz'
ASCII_UPPERCASE='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ASCII_ALL=ASCII_LOWERCASE+ASCII_UPPERCASE
def is_alpha(x):
for ch in x:
if ch not in ASCII_ALL:
return False
return True
这是我的原始代码,在False
等情况下仍未返回""
。在isalpha()
或False
的情况下,真实''
返回""
。如何排除所有这些案件?
答案 0 :(得分:5)
你的循环
for ch in x:
如果len(x) == 0
,永远不会,你会直接进入
return True
另外,如果你
import string
您可以使用string.ascii_uppercase
和string.ascii_lowercase
。
答案 1 :(得分:4)
空字符串不会触发for循环中的任何代码,因为for ch in ''
本质上是一个无操作(没有任何内容可以迭代),因此is_alpha
返回True
为空字符串。你应该添加像
if not x:
return False
到你的功能的开头。
(另请注意,您的break
语句是不必要的,因为return False
将退出该功能。