非常简单,可能对某人而言。有没有办法在一行代码中说出来?
if word.startswith('^') or word.startswith('@'):
truth = True
else:
truth = False
答案 0 :(得分:10)
我认为这将是最短的一个:
truth = word.startswith(('^','@'))
从文档(查看最后一行):
startswith(...)
S.startswith(prefix[, start[, end]]) -> bool
Return True if S starts with the specified prefix, False otherwise.
With optional start, test S beginning at that position.
With optional end, stop comparing S at that position.
prefix can also be a tuple of strings to try.
答案 1 :(得分:8)
布尔表达式(word.startswith('^') or word.startswith('@')
)返回一个布尔值,然后可以将其赋值给变量,所以:
truth = (word.startswith('^') or word.startswith('@'))
完全有效。
答案 2 :(得分:3)
尝试:
truth = word.startswith('^') or word.startswith('@')
答案 3 :(得分:1)
truth = word and word[0] in '^@'
这将非常快速地完成工作(不涉及方法调用)但仅限于一个字节的前缀,如果truth
为{{word
,则会将word
设置为''
的值1}},None
,0
等等。它会/应该在代码审查中被抛弃,而不是最小的严格。