python基础- 面向过程编程, 三元表达式, 列表生成式, 生成式生成式, 匿名函数
面向过程编程
面向过程编程是一门编程思想。
面向 过程 编程:
核心是 '过程' 二字,过程 指的是一种解决问题的步骤,即先干什么再干什么
基于该编程思想编写程序,就好比在设计一条工厂流水线,一种机械式的思维方式。
-
优点:
- 将复杂的问题流程化,进而简单化
-
缺点:
-若修改当前程序设计的某一部分,会导致他部分同时需要修改, 扩展性差。
三元表达式
三元表达式:
可以将if...else...分支变成一行。
- 语法:
- 条件成立返回左边的值 if 判断条件 else 条件不成立返回右边的值
def func(x, y):
res = x if x >y else y
return res
列表生成式
- 可以一行实现生成列表。
- 语法:
-
list = [取出的每一个值、任意值 for 可迭代对象中取出的每一个值 in 可迭代对象]
-
for的右边是循环次数,并且可以取出可迭代对象中每一个值
-
for的左边可以为当前列表添加值
list = [值 for 可迭代对象中取出的每一个值 in 可迭代对象] -
list = [值 for 可迭代对象中取出的每一个值 in 可迭代对象 if 判断]
示例
-
list1 = [f'1{line}' for line in range(1, 101)]
print(list1)
生成器表达式(生成器生成式):
-
列表生成式: 若数据量小时采用
[line for line in range(1, 6)] ---> [1, 2, 3, 4, 5]-
优点:
可以依赖于索引取值,取值方便 -
缺点:
浪费资源
-
-
生成器生成式: 若数据量过大时采用
() ---> 返回生成器
(line for line in range(1, 6)) ---> g生成器(1, 2, 3, 4, 5)- 优点:
节省资源 - 缺点:
取值不方便
- 优点:
# 生成一个有1000个值的生成器
g = (line for line in range(1, 1000001))
# <generator object <genexpr> at 0x00000203262318E0>
print(g)
# 列表生成式实现
list1 = [line for line in range(1, 1000001)]
print(list1)
匿名函数:
无名字的函数
-
左边是参数, 右边是返回值
-
lambda :
-
PS: 原因,因为没有名字,函数的调用 函数名 ()
匿名函数需要一次性使用。 -
注意: 匿名函数单独使用毫无意义,它必须配合 “内置函数” 一起使用的才有意义。
有名函数:
有名字的函数
'''