我可以使用三元运算符在单行中写入FOR循环和IF条件吗?

2024-10-05 11:10:00 发布

您现在位置:Python中文网/ 问答频道 /正文

import string

def solution(s):
    ans="flase"
    l=[i for i in s]
    for i in s:
        if(i.isalnum()):
           ans="true"
           break
    return ans

s="harnath"
print(solution(s))

如果任何字符是isalnum()或False,我想返回True


Tags: inimporttrueforstringreturnifdef
1条回答
网友
1楼 · 发布于 2024-10-05 11:10:00

是的,您可以使用三元运算符在一行中重写此代码:

>>> s="harnath"
>>> result = "true" if any(letter.isalnum() for letter in s) else "flase"
>>> print(result)
true

但是正如在评论中提到的,返回“true”或“flase”(带有输入错误)作为字符串值可能是个坏主意。您可能希望返回正确的布尔值:

>>> s="harnath"
>>> result = any(letter.isalnum() for letter in s)
>>> print(result)
True

在这种情况下,不需要使用三元运算符。any()函数的结果已经是布尔值

相关问题 更多 >

    热门问题