关于015讲中条件表达式的疑问
1. 请问是否条件表达式只能执行单一指令?if num%2==0:
num1=int(num/2)
print(num,'/2 = ',num1,sep='')
num=num1
else:
num1=int(num*3+1)
print(num,'*3+1 = ',num1,sep='')
num=num1
这种代码是否可以转为条件表达式?
2.课堂视频中,条件表达式我看到多有简写,比如:
small=a if a<b else b
事实上如果不简写还会报错
small = a if a<b else small=b
SyntaxError: cannot assign to conditional expression
但是另一些指令,比如print就不会出现简写。
请问条件表达式的简写规则都有哪些? 有时候不是100条语句捏成一个语句就好,这样做的代价必然是可读性降低 个人理解
print可以简写主要是因为print是一个函数,它是有返回值的
而 print(a) if a<b else print(b) 的意思是如果a小于b则执行print(a)并且将print函数的返回值变成表达是的值
其实就是说这个条件表达式本质上就是一个值,它一定要变成一个值,而 small = a 这样的语句是没有返回值的
因为它就是单纯的语句,于是报错了
a = 1
b = 2
def A():
small = a
def B():
small = b
A() if a < b else B()
这样是可以的,(函数里可以执行多条语句)
总之条件表达式就是一个值,大概就这样吧 smog 发表于 2021-5-29 15:22
个人理解
print可以简写主要是因为print是一个函数,它是有返回值的
而 print(a) if a
small=a的简写没有报错
全写报错了 fc5igm 发表于 2021-5-29 16:35
small=a的简写没有报错
全写报错了
应该看成
small = (a if a<b else b) smog 发表于 2021-5-29 19:10
应该看成
small = (a if a
懂了,谢谢
页:
[1]