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

时间:2019-02-28 06:51:13

标签: 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(),否则我想返回True

1 个答案:

答案 0 :(得分:0)

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

>>> 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()函数的结果已经是布尔值