if name = ‘main’:
- 直接调用:就是main函数,条件为真
- import后再调用:不是main,是模块名,条件为假
在直接运行这个模块的时候:
if __name__ == '__main__' 之下的代码块将被运行
在这个模块形式被导入其他模块时:
if __name__ == '__main__' 之下的代码块不会被运行
重点参考这两篇文章:
https://blog.csdn.net/xiaoxik/article/details/78749361
https://www.cnblogs.com/chenhuabin/p/10118199.html
lambda
- 匿名函数lambda:是指一类无需定义标识符的函数或子程序
- lambda函数不能包含命令
- 包含的表达式不能超过一个
/* 1. 传入多个参数的lambda函数 */
def sum(x, y):
return x + y
lambda函数实现:
func = lambda x,y: x + y
print(func(4,6))
/* 2. 传入一个参数的lambda函数 */
func = lamnbda x: x*x
print(func(3))
/* 3. 传入多个参数的lambda函数 */
func = lambda x,y,z:(x + 8) * y - z
print(func(5, 6, 8))
ord()和chr()
- 两个函数为配对函数
- ord()函数:将字符转换为对应的ASCII数值,返回对应的十进制整数
输入:字符
输出:ASCII数值(十进制)
- chr()函数:将一个数字range(256)即0~255的数字转换为一个ASCII字符
输入:十进制或者十六进制数字
输出:ASCII字符
ord('a')
-> 97
ord('b')
-> 98
print(chr(0x30),chr(97))
-> 0 a
input()和raw_input()
- 在 Python3.x 中 raw_input( ) 和 input( ) 进行了整合,去除了 raw_input( ),仅保留了 input( ) 函数
- 其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型
map()
- 可处理多个可迭代对象
map(function, iterable,...)
- 例子
/* 1. lambda函数求乘方 */
list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))
-> [1, 4, 9, 16, 25]
/* 2. 姓名首字母大写 */
def format_name(s):
s1 = s[0:1].upper() + s[1:].lower()
return s1
print(list(map(format_name, ['alice', 'bOB', 'cLarK'])))
-> ['Alice', 'Bob', 'Clark']
zip()
- zip()语法:将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象
zip(iterable1, iterable2,...)
iterable - 一个或多个可迭代对象(字串,列表,元组,字典)
返回值:python3中返回的是元组组成的对象,如果要得到列表,可用list进行转换
a = [1, 2, 3]
b = [4, 5, 6]
c = [4, 5, 6, 7, 8]
zipped = zip(a, b)
print(list(zipped))
print(list(zip(a, c))) # 元素个数与最短的列表一致
print(list(zip(*zipped))) # 与zip相反,*zipped可理解为解压
->
[(1, 4), (2, 5), (3, 6)]
[(1, 4), (2, 5), (3, 6)]
[(1, 2, 3), (4, 5, 6)]
reduce()
- 语法:
reduce(function, iterable[, initializer])
function: 函数,有两个参数
iterable: 可迭代对象
initializer: 可选,初始参数
- 说明:
python内置函数
接受的参数和map类似,一个函数function,一个列表list,但是reduce()传入的函数function必须接收两个参数
reduce()函数对list的每个元素反复调用函数function,并返回最终结果值
- 例子:
/* 1. 列表所有元素求和 */
def func(x, y):
return x + y
reduce(func, [1, 3, 5, 7, 9])
->
先及算头两个元素:func(1, 3) = 4
再把结果和第三个元素计算:func(4, 5) = 9
第四个、第五个,返回结果:25
// 以上和python内置函数sum()结果一致,实现功能相同
/* 2. 带初值的reduce()函数使用 */
def func(x, y):
return x + y
reduce(func, [1, 3, 5, 7, 9], 100)
->
第三个可选参数作为计算初始值,结果为125
format()
- 语法:基本语法是用{}和:代替%
- 格式说明:
^, <, > 分别是居中、左对齐、右对齐,后面带宽度
: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充
+ 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格
b/d/o/x 分别是二进制、十进制、八进制、十六进制。
- 例子
关键字参数:
/* 输出字符串,输出菱形图案 */
for raw in range(4):
print('{:^7s}'.format('*' * (2 * raw + 1)))
for raw in range(3):
print("{:^7s}".format('*' * (5 - 2 * raw)))
参考文章:
https://www.runoob.com/PYTHON/att-string-format.html
2020.06.25 create