面向过程编程:
核心是'过程'二字,过程 指的是一种解决问题的步骤,即先干什么再敢什么
基于该编程思想编写程序,就好比在设计一条工厂流水线,一种机械式的思维方式
-优点:将复杂的问题流程化,进而简单化
-缺点:若修改当前程序设计的某一部分,会导致其他部分同时需要修改
牵一发而动全身,可扩展性差
三元表达式:可以将if...else...分支编成一行。
语法: 条件成立,返回左边的值 if 判断条件 else 条件不成立返回右边的值 #通过if...else语法 def max2(num1,num2): if num1>num2: return num1 else: return num2 res = max2(10,20) print(res) #三元表达式 num1 = 10 num2 = 20 def max2(num1,num2): res = num1 if num1 > num2 else num2 return res res = max2(num1,num2) print(res) # 需求: 让用户输入用户名,输入的用户如果不是tank,为其后缀添加_DSB username = input('请输入用户名:').strip() new_username = username if username == 'tank' else username + '_DSB' print(new_username)
列表生成式:可以一行实现生成列表
语法: list = [取出的每一个值添加到当前列表中、任意值 for 可迭代对象中取出的每一个值 in 可迭代对象 # for的右边是循环次数,并且可以取出可迭代对象中每一个值 # for的左边可以为当前列表添加值 list = [值 for 可迭代对象中取出的每一个值 in 可迭代对象] list = [值 for 可迭代对象中取出的每一个值 in 可迭代对象 if 判断]
# 需求:将list中的值,依次取出,添加到l1中 list = [1,2,3,4] l1 = [] for i in list: l1.append(i) print(l1) # 普通方式 new_list = [] for i in range (1,101): new_list.append(i) print(new_list) #列表生成器 list = [ i for i in range(1,5)] print(list) >>>[1,2,3,4] list = [ 1 for i in range(1,5)] print(list) >>>[1,1,1,1] list = [ 'baohan' for i in range(1,5)] print(list) >>>['baohan','baohan','baohan','baohan'] #需求:将name_list列表中的每一个人后缀都添加_dsb name_list = ['jason', '饼哥', 'sean', 'egon'] new_name_list = [name + '_dsb' for name in name_list] print(new_name_list)
生成器表达式(生成器生成式):
- 列表生成式: 若数据量小时采用 [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)) print(g) # <generator object <genexpr> at 0x00000203262318E0> g1 = list(g) print(g1)