我认为在Python中没有办法将if语句和else语句放在一行上,对吗?

我认为在Python中没有办法将if语句和else语句放在一行上,对吗?,python,if-statement,Python,If Statement,我认为在Python中不能将if语句和相应的else语句放在一行上,这对吗 注意: 这不是两种说法。这是一个语句,它可以接受两个表达式之一的值 我想做一些像 if condition a=value1 else b=value2 我认为这需要Python中的完整if-else,对吗?像 if condition: a=value1 else: b=value2 注意如上所述(这是什么是语句和什么是表达式的定义所固有的,每个程序员都应该熟悉),因为我分配了两个不同的变量,上述

我认为在Python中不能将if语句和相应的else语句放在一行上,这对吗

注意:

这不是两种说法。这是一个语句,它可以接受两个表达式之一的值

我想做一些像

if condition a=value1 else b=value2
我认为这需要Python中的完整if-else,对吗?像

if condition:
    a=value1
else:
    b=value2

注意如上所述(这是什么是语句和什么是表达式的定义所固有的,每个程序员都应该熟悉),因为我分配了两个不同的变量,上述情况与

if condition:
    a=value1
else:
    a=value2
我当然可以简单地使用条件表达式

a = value1 if condition else value2
因此,我的问题不是重复的

我想会更好

但你可以做到

globals()["a" if condition else "b"] = value
eval("a=value1" if condition else "b=value2") 
哪一个会完全满足你的要求(尽管一般不赞成这样做)

如果你真的想变得粗俗,你可以这样做

globals()["a" if condition else "b"] = value
eval("a=value1" if condition else "b=value2") 
但我永远不会建议你真的做那样的事

老实说,我很难想到任何你真正想要的有效用例

if condition:
  a = value1
else:
  b = value2
我想会更好

但你可以做到

globals()["a" if condition else "b"] = value
eval("a=value1" if condition else "b=value2") 
哪一个会完全满足你的要求(尽管一般不赞成这样做)

如果你真的想变得粗俗,你可以这样做

globals()["a" if condition else "b"] = value
eval("a=value1" if condition else "b=value2") 
但我永远不会建议你真的做那样的事

老实说,我很难想到任何你真正想要的有效用例

if condition:
  a = value1
else:
  b = value2

实际上并不推荐,但您也可以使用元组解包:

a,b = (value1 if condition else a), (value2 if not condition else b)

实际上并不推荐,但您也可以使用元组解包:

a,b = (value1 if condition else a), (value2 if not condition else b)

Python要求您将if和else放在不同的行上,因为如果不这样做,代码将很难阅读,并且很容易编写令人不快的不可读代码

使用此功能,您的代码实际上不太可能变得更好


而是考虑使用一个函数来给代码提供一个更有意义的方面,通过返回元组,您可以同时更改

a
b

Python要求您将if和else放在不同的行上,因为如果不这样做,代码将很难阅读,并且很容易编写不愉快的不可读代码

使用此功能,您的代码实际上不太可能变得更好



而是考虑使用一个函数来给代码提供一个更有意义的方面,通过返回一个元组,你可以同时改变代码< > 和 B

出于兴趣,你为什么要这么做?几十条像这样的简短陈述,每一行都比四行好看!如果你有几十个相关但不同的变量,我认为你的代码需要重构。“美丽的代码”,在我看来,不包括单行代码本身。链接的问题不是重复的。出于兴趣,为什么要这样做?漂亮的代码。几十条像这样的简短陈述,每一行都比四行好看!如果你有几十个相关但不同的变量,我认为你的代码需要重构。“美丽的代码”,在我看来,不包括单行代码本身。链接的问题不是重复的。谢谢!:)但这仍然不是两个独立的语句,如果我希望值也是有条件的呢?对不起,我举了一个过于简单的例子。谢谢!:)但这仍然不是两个独立的语句,如果我希望值也是有条件的呢?很抱歉,我给出了一个过于简单的示例。或者更短的示例:
a,b=value1,b如果条件不是a,则为value2
谢谢!)我认为这可能会让人困惑。@Louise如果你不想让人困惑,至少在使用Python时,把这些语句放在单独的行中。Python对空格敏感的原因是:为了提高可读性。或者更短:
a,b=value1,b如果条件为a,则为value2
谢谢!)我认为这可能会让人困惑。@Louise如果你不想让人困惑,至少在使用Python时,把这些语句放在单独的行中。Python对空格敏感的原因是:为了提高可读性。这根本不是答案。。。这是因为赋值不会产生返回值。。。(同样的原因你不能做
(打印“黄色”)if-condition-else(打印“5555)”
)@JoranBeasley:No。OP是指通常的控制流
if:
和'else:`结构而不是三元
a if x else b
操作符。哦,我明白了。。。我想我没有明白。。。我以为他只是在谈论如果/否则,每个选项都有一个任务branch@JoranBeasley你为什么用“他”?对不起习惯的力量。。。通常我说这根本不是答案。。。这是因为赋值不会产生返回值。。。(同样的原因你不能做
(打印“黄色”)if-condition-else(打印“5555)”
)@JoranBeasley:No。OP是指通常的控制流
if:
和'else:`结构而不是三元
a if x else b
操作符。哦,我明白了。。。我想我没有明白。。。我以为他只是在谈论如果/否则,每个选项都有一个任务branch@JoranBeasley你为什么用“他”?对不起习惯的力量。。。通常我说OP