我正在使用 python 3.6。我想输入一个字符串什么的,在一行中通过if语句判断。 这可能是一个简单的问题,但我无法解决这个问题。我知道如何不用一行:
words = input()
if words == 'a':
print(words)
else:
print('Not a')
但是,我不能把它放在一行中。我想做的是这样的:
print(input() if input() == 'a' else 'Not a')
这是行不通的。第一输入和第二输入不同。是否可以保留第一次输入的结果并在一行中检查其条件? 谢谢!
请您参考如下方法:
你可以使用单例生成器/列表技巧来避免调用一个函数两次,但仍然重用它的结果:
print(next(x if x == 'a' else 'Not a' for x in [input()]))
当你这样做的时候,你也可以缩短三元结构 x if y else z 结构变得更加神秘 :-)
print(next(('Not a', x)[x == 'a'] for x in [input()]))
但更少的行本身不是目的。您拥有的五行内容完全有效且可读。
