python语法糖
‘壹’ 这个是哪里出错了 python的列表推导式
题主你好,
你的问题出在不了解列表推导的语法.
先说一下你写的代码问题出在哪, 因为列表推导是一种语法糖, 语法糖这东西我的理解就是代码精简式的写法, 你可以简单的理解为正常的写法可能要10行, 用语法糖可能1行就搞定了. 优点是可以减少代码量, 缺点也显而易见,就是相对于常规写法一开始学起来理解要困难一些.
列表推导写法: n = [ j if j*5==10 ]
把你的这个1行的列表推导转化为常规写法要3行:
上面代码就形成了一个完整的闭环了.
所以学习列表推导很关键的一点是题主能否在常规代码与列表推导之间进行转换, 如果可以的话,题主写完列表推导后可以将其转化为常规代码去看, 如果常规代码没问题, 则列表推导自然也就是对的.
-----
扩展阅读:
网页链接该链接中有一些简单的例子,里面既给出了列表推导的写法也给出了相对应的常规写法,题主可以研究一下这二者是怎么转换的, 不难.
=====
希望可以帮到题主, 欢迎追问.
‘贰’ python 中 @ 是什么意思
修饰符,比如说
class A:
@staticmethod
def m(self):
pass
就相当于
class A:
def m(self):
pass
m = staticmethod(m)
其实就是一调用一个函数参数为下行的变量,并且替换它
(2)python语法糖扩展阅读:
函数修饰符
@用做函数的修饰符,可以在模块或者类的定义层内对函数进行修饰,出现在函数定义的前一行,不允许和函数定义在同一行。
一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的同名函数或其他可调用的东西。
在Python的函数中偶尔会看到函数定义的上一行有@functionName的修饰,当解释器读到@这样的修饰符的时候会优先解除@后的内容,直接就把@的下一行的函数或者类作为@后边函数的参数,然后将返回值赋给下一个修饰的函数对象。