gpt4 book ai didi

python - 字符串是否有英文字符——一段Python代码

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:33 29 4
gpt4 key购买 nike

请查看为什么这两段代码会产生不同的结果。目标是如果输入字符串包含任何非英语字符,则返回 True 或 False。

代码 1:

def char_find(string):
for char in string:
if (ord(char) >= 0) and ord(char) <= 127:
return True
else:
return False

result1 = char_find('爱奇艺PPS -《欢乐颂2》电视剧热播')
result2 = char_find('Docs To Go™ Free Office Suite')
result3 = char_find('Instachat 😜')
print(result1, result2, result3)

这会产生结果 False, True, True

代码 2:

def is_english(string):
for char in string:
if ord(char) > 127:
return False
return True

resultX = is_english('爱奇艺PPS -《欢乐颂2》电视剧热播')
resultY = is_english('Docs To Go™ Free Office Suite')
resultZ = is_english('Instachat 😜')
print(resultX, resultY, resultZ)

这会产生结果 False, False, False

我不明白为什么第一段代码会产生不正确的结果。

最佳答案

在代码 1 中,如果找到英文字符,则返回 True,否则返回 False,但在代码 2 中,如果找到英文字符,则返回 False你发现一个非英文字符。只有当所有字符都是英文时,这才会返回 True

要注意的关键点是,一旦遇到 return,您就会退出函数,并使用与 return 一起传递的值。

您可以使用 string 模块和生成器上的 all 以更 python 的方式执行此操作:

def is_english(s):
return all(char.lower() in string.ascii_lowercase for char in s)

如果所有字符都是英文字符,则返回 True,否则返回 False

关于python - 字符串是否有英文字符——一段Python代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57238049/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com