Python For循环中的if语句-逻辑错误
有人能帮我找出为什么Instachat:Stick\u out\u舌头\u winking\u eye:'和'Docs To Go'的代码没有返回False吗™ 免费办公套房'?它们包含Unicode大于127的字符(分别为emoji和TM),因此从技术上讲,这两个字符都应该返回False 我不明白为什么else条款在这里不起作用Python For循环中的if语句-逻辑错误,python,for-loop,if-statement,logic,Python,For Loop,If Statement,Logic,有人能帮我找出为什么Instachat:Stick\u out\u舌头\u winking\u eye:'和'Docs To Go'的代码没有返回False吗™ 免费办公套房'?它们包含Unicode大于127的字符(分别为emoji和TM),因此从技术上讲,这两个字符都应该返回False 我不明白为什么else条款在这里不起作用 # My Code (logic doesn't seem to work) def is_english(string): for character
# My Code (logic doesn't seem to work)
def is_english(string):
for character in string:
if ord(character) > 127:
return False
else:
return True
print(is_english(‘Instagram’))
print(is_english(‘爱奇艺PPS -《欢乐颂2》电视剧热播’))
print(is_english(‘Docs To Go™ Free Office Suite’))
print(is_english(‘Instachat :stuck_out_tongue_winking_eye:’))
#Solution Code (works but I don't understand why)
def is_english(string):
for character in string:
if ord(character) > 127:
return False
return True
以下应该是我的代码的预期输出:
真的
假的
假的
假的
然而,实际产出是:
真的
假的
真的
True因为您需要更改字母代码范围(例如,像next):
因为您需要更改字母代码范围(例如,如“下一步”):
以下功能:
def is_english(string):
for character in string:
if ord(character) > 127:
return False
else:
return True
由于仅基于字符串中的第一个字符
返回结果(无论是True
还是False
),因此无法按预期工作。您必须将return True
语句移到for
循环之外,就像您提供的第二种方法一样:
def is_english(string):
for character in string:
if ord(character) > 127:
return False
return True
通过这种方式,您可以根据给定条件检查每个字符
,直到发现其中一个字符
s为非英语字符,或者直到检查完所有字符
s为止。如果两者都不是非英语,则可以返回以下函数:
def is_english(string):
for character in string:
if ord(character) > 127:
return False
else:
return True
由于仅基于字符串中的第一个字符
返回结果(无论是True
还是False
),因此无法按预期工作。您必须将return True
语句移到for
循环之外,就像您提供的第二种方法一样:
def is_english(string):
for character in string:
if ord(character) > 127:
return False
return True
通过这种方式,您可以根据给定条件检查每个字符
,直到发现其中一个字符
s为非英语字符,或者直到检查完所有字符
s为止。如果两者都不是非英语的,那么您可以返回True
如果我理解了您的问题,您必须这样尝试:
# The Code
def is_english(string):
for character in string:
if ord(character) > 127:
return False #if character is major than 127
else:
return True #if character is minor than 127
print(is_english('Instagram'))
print(is_english('爱奇艺PPS -《欢乐颂2》电视剧热播'))
print(is_english('Docs To Go™ Free Office Suite'))
print(is_english('Instachat :stuck_out_tongue_winking_eye:'))
输出为:True False True
缩进不正确,那么代码就无法工作
我希望这能有所帮助。如果我理解了你的问题,你必须这样做:
# The Code
def is_english(string):
for character in string:
if ord(character) > 127:
return False #if character is major than 127
else:
return True #if character is minor than 127
print(is_english('Instagram'))
print(is_english('爱奇艺PPS -《欢乐颂2》电视剧热播'))
print(is_english('Docs To Go™ Free Office Suite'))
print(is_english('Instachat :stuck_out_tongue_winking_eye:'))
输出为:True False True
缩进不正确,那么代码就无法工作
我希望这能有所帮助。您的代码只检查第一个字母并返回trye/false。您的代码只检查第一个字母并返回trye/false。您似乎有一些缩进错误。您在循环的第一次迭代后返回,而从不查看字符串的其余部分。您似乎有一些缩进错误缩进错误。在循环的第一次迭代后返回,并且从不查看字符串的其余部分。是!你说得对。非常感谢你,杰萨莫尔!!非常感谢是的!你说得对。非常感谢你,杰萨莫尔!!非常感谢