如何在python中的行中键入if-elsif

如何在python中的行中键入if-elsif,python,if-statement,Python,If Statement,我想得到代码的最小行数 但是,我需要一个条件,其中I**2>num使用elif发送消息,否则可以工作,但代码在获取平方根时出错 (哥特) num=int(输入('num:');[print(f'Raiz({num})={i}'),如果i**2==num,则为范围(1,num)内的i打印] 例如,您可以将if-else放在打印功能中: num = int(input('num: ')); [print(f'Raiz({num}) = {i}' if i ** 2 > num else 'no

我想得到代码的最小行数

但是,我需要一个条件,其中I**2>num使用elif发送消息,否则可以工作,但代码在获取平方根时出错

(哥特)

num=int(输入('num:');[print(f'Raiz({num})={i}'),如果i**2==num,则为范围(1,num)内的i打印]

例如,您可以将
if-else
放在
打印
功能中:

num = int(input('num: ')); [print(f'Raiz({num}) = {i}' if i ** 2 > num else 'not') for i in range(1, num)]
如果elif else,您也可以使用

num = int(input('num: ')); [print(f'Raiz({num}) = {i}' if i ** 2 == num else 'lower' if i ** 2 < num else 'higher') for i in range(1, num)]
num=int(输入('num:');[print(f'Raiz({num})={i}如果i**2==num else'lower'如果i**2

但我真的看不出有什么理由这样做,除非你在玩代码高尔夫。

不要使用列表补偿来产生副作用(在这种情况下打印)。如果您确实需要结果列表,请使用它。也可以用
将两行放在1中高度不可读。这么说来,您需要执行
[打印(…)if x else打印(…)for i in l]
。您正在使用的构造用于过滤listI used list comp,因为这是一种使代码更小的方法,而不是使用
也算作换行符。如果使用
与以正常形式编写几乎相同。较小的代码并不总是更好的代码。。。可读性应始终计数在上面的代码中,变量num是个例外,但它是外线的一部分,以便提供更好的外观或单行。@Almo可能是因为内存太少,必须保存这些
'\n'
…呵呵,我不是在打高尔夫球呵呵,我只是想更深入一些,我知道这是没有必要的,但没有什么比测试您降低代码的能力更好的了,他甚至有时会失败。@hx7f您想要的输出不是很清楚。