因为 Python 的语法糖,代码简洁优美,越来越喜欢 Python 了。
人生苦短,请用 Python
- 四则运算不会溢出
- 乘方,排列组合数内置且不会溢出
- 支持
x,y = y,x
等简单操作 - 分号可用来分割,实现一行多句
- 函数返回值可以是元组,列表,甚至是函数
- lambda 表达式
- 列表生成式 , 三元操作符:
[x//2 if x%2 == 0 else x for x in range(10)]
in, enumerate
在for
循环中使用- 列表,元组反向标号从
-1
开始数,不用担心越界- 字符串的
split
和join
方法,eval
计算器。
- 字符串的
map
将一批数据同时用一个函数处理zip
把列表或元组打包argv
直接可用,不用再管argc
- 函数可变参数
*args
(保存元组),**kwargs
(保存字典) yield
和yield from
做生成器reduce
函数计算列表内全部乘积等(需要from functools import reduce
)。- exec 函数 执行 Python 文件中的代码。
- 用 list 当函数参数实现传引用(指针)的功能
- 装饰器
- 带
*
赋值:a,*b,c = [1,3,4,5,6,3,6]
raise ValueError('error type...')
处理异常,哈哈- Python 交互界面中:
_
返回的是最近一次的值 - 任意类有
__init__
和__repr__
方法(不解释了,顾名思义) - 运算符重载,运算符重载 2
非语法糖: 生成器表达式中, in 子句在声明时执行, 而条件子句则是在运行时执行
装饰器示例
1 | def log(func): |
看
log(funB(12))
就知道了!因为 log 是 return 的是函数 wrapper ,然后 12 就作为 arg 传入了。
类中装饰器: 自带 @properity @staticmethod @classmethod
To be Continue
我始终相信极简的代码,优美的代码才是正确的编程姿势。
Python 的坑 : 动态语言火葬场岂是浪得虚名
- 列表快速复制是浅复制
- 注意传列表等同转指针
- 深复制和浅复制 一定要细心
- list 自带的 copy 是浅 copy