一、三元表达式
三元表达式:
1.当x大的时候返回x,当y大的时候返回y
2.当某个条件成立做一件事,不成立做另一件事
三元表达式固定表达式:
- 值(1) if 条件 else 值(2)
条件成立 值(1)
条件不成立 值(2)
2.三元表达式只推荐两种选择的情况下(是或非)
例子1:
用普通的方法比较两个值的大小:6行代码
def my_max(x, y): if x > y: return print(x) else: return print(y) my_max(10, 20)
例子1(三元表达式):关键代码1行
x = 1 y = 2 res = x if x > y else y # 如果if后面的条件成立返回if前面的值,否则返回后面的值 print(res)
例子2:收费免费
is_free = input('请输入是否免费(y/n)>>>:') is_free = '免费' if is_free == 'y' else '收费' print(is_free)
二、算法——二分法
算法:解决问题的高效率的方法
1.找元素是否在一个列表中
普通方法 for i in k :
k = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in k: if num == i: print("找到了:%s" % i)
2.二分法:
1.容器中的数字必须有大小顺序
2.依次和中间的数进行比较大小,小于取左,大于取右
排序: sort()升序,sort(reverse=Ture)降序,reverse()反转,逆序排列
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] l.sort() # 重新升序排序 def get_num(l, num): # 取列表中间数索引位置 num_middle = len(l) // 2 # 这个数不在列表中,切到后面就是空列表,空列表就直接返回 if not l: return print("列表中找不到", num) print(l) # 打印每次切片后的列表 # 判断大小 if num > l[num_middle]: # 切片右半部 right_num = l[num_middle + 1:] get_num(right_num, num) elif num < l[num_middle]: # 切去左半部 left_num = l[:num_middle] get_num(left_num, num) else: print("列表中找到了", num) get_num(l, 9)
三、列表生成式
m = ['jeff','jiamin','nick','xiaomin]
给列表添加后缀:_sb
普通方法:for 循环遍历打印append方法添加
列表生成式:['%s_sb'%name for name in m]
例子1:列表元素添加后缀
第一种:普通for循环方法 m = ['jeff','jiamin','nick','xiaoming'] m1 = [] for name in m: m1.append('%s_sb'%name) print(m1)
第二种:列表生成式方法
m = ['jeff','jiamin','nick','xiaoming'] res = ['%s_sb'%name for name in m] print(res)
例子2:从列表中帅选带有_sb的元素
k = ['jeff_sb', 'jiamin_sb', 'nick_sb', 'xiaoming_sb','xiaowang_NB'] res = [name for name in k if name.endswith("_sb")] #endswith:字符串结束位置检测 print(res)
四、字典生成式
需求:把两个列表变成一个字典
m1 = ['name', 'password', 'age', 'gender']
m2 = ['jeff', '123', '18', '男']
1.普通for循环方法 m1 = ['name', 'password', 'age', 'gender'] m2 = ['jeff', '123', '18', '男'] d = {} for i, j in enumerate(m1): # enumerate方法查看元素的索引和值,默认0开始 print(i, j) # 查看m1的索引和值,m1索引=i,m1的值=j d[j] = m2[i] print(d)
2.字典生成式:
d = {i: j for i, j in enumerate(m2)} print(d)
加 if 判断:去除 j=123
d = {i: j for i, j in enumerate(m2) if j != '123'} print(d)
五、集合生成式
例子:0-9并去除4
res = {i for i in range(10) if i != 4} print(res)