Python-函数记录lambda/ord/chr/input/map/zip/reduce/format

文章目录

  • if __name__ = '__main__':
  • lambda
  • ord()和chr()
  • input()和raw_input()
  • map()
  • zip()
  • reduce()
  • format()

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()

  • 语法:基本语法是用{}和:代替%
    Python-函数记录lambda/ord/chr/input/map/zip/reduce/format_第1张图片
  • 格式说明
^, <, > 分别是居中、左对齐、右对齐,后面带宽度

: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充

+ 表示在正数前显示 +,负数前显示 -;  (空格)表示在正数前加空格

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)))

Python-函数记录lambda/ord/chr/input/map/zip/reduce/format_第2张图片

参考文章:
https://www.runoob.com/PYTHON/att-string-format.html

2020.06.25 create

你可能感兴趣的:(Python语言)