一个简单的问题。首先,我注意到在Python中,我可以通过更改以下简短语句使事情变得更简洁:
if some_condition:
do_something()
对此:
if some_condition: do_something()
当然,只有当if语句中的代码只包含一行时,这种更改才有效。你知道吗
但是,如果有多个嵌套的“construct”(我指的是if-else、for、while或try-except语句),那么就会出现语法错误。例如,我无法更改:
if some_condition:
if other_condition:
do_something()
对此:
if some_condition: if other_condition: do_something()
甚至这个:
if some_condition: if other_condition:
do_something()
但这确实有效:
if some_condition:
if other_condition: do_something()
我的猜测是,这样做的原因是在一行上有两个结构会产生某种歧义。我想知道是否有什么办法,我仍然可以把两个语句在一行,但它的工作。例如,可能类似于:
if some_condition: (if other_condition: do_something())
当然,这是行不通的。不过,希望它能让我更清楚地知道我到底想做什么。除了“你不应该这样做”之外,任何想法都会被感激的
在我得到你们所有的纯粹主义者蜂拥而至,鼓吹这不是Pythonic或者别的什么之前,是的,我知道这不是用Python编写代码的最佳方式。把它当作一个研究问题。我只想知道我要找的东西是否可行。你知道吗
在某些情况下,您可以:
如果a==7,这与print(a)类似 else(3如果b==4)#如果a!=7,但b=4 否则0#都是假的 但它令人困惑,通常是一个坏主意,违反了python的禅。你知道吗
在一行上放多个冒号是不可能的。你知道吗
不管怎样,PEP8建议始终在冒号后面加新行。在大多数情况下,最好遵循这个准则。你知道吗
正如@suvenpandey所指出的,
if
语句可以使用嵌套的三元运算符嵌套在一行中,但请不要在一行中使用多个。在这一点上,代码是极其丑陋和不可读的。你知道吗只要在要执行的字符串中提供正确的换行符和制表符组合,就可以使用exec函数在一行上组合嵌套的构造。你知道吗
相关问题 更多 >
编程相关推荐