'''为了减少代码行数''''''雏形'''1、获取用户输入的用户名 如果是curry就打印欢迎 否则打印抱歉
username =input('username>>>:').strip()if username =='curry':print('欢迎')else:print('抱歉')'''三元表达式:仅限于二选一的情况并不建议嵌套使用'''2、编写一个函数 比较两个数的大小 返回较大的那个
defmy_max(a,b):if a > b:return a
else:return b
return a if a > b else b
"""
三元表达式语法结构
值1 if 条件 else 值2
如果if后面的条件成立 则使用if前面的值
如果if后面的条件不成立 则使用else后面的值
"""print('哈哈'if0else'嘿嘿')# 嘿嘿print('霍霍'if1else'哼哼')# 霍霍
username =input('username>>>:').strip()if username =='curry':print('欢迎')else:print('抱歉')print('欢迎')if username =='curry'elseprint('抱歉')
res =123if10>5else(222if0else(666if1==2else666))
ps:在python中代码不是越精简越好 在精简的过程中还需要保证代码的可读性
各种生成式
1、列表生成式
name_list =['curry','kevin','oscar','jerry','tony']# 给上述列表中所有的数据值增加上_NB的后缀# 1、定义一个新的列表
new_list =[]# 2、循环列表中所有的数据值for name in name_list:# 3、拼接_NB后缀
new_name = name +'_NB'# 4、追加到新列表中
new_list.append(new_name)print(new_list)"""一行代码解决: 列表生成式"""
new_list =[name +'_NB'for name in name_list]# 先执行for循环 然后将一个个的数据值交给for循环前面处理print(new_list)
支持if判断 先执行for循环 然后将一个个数据值交给if判断 结果是True
则最后交给for循环前面处理
new_list =[name +'_NB'for name in name_list if name !='curry']# ['kevin_NB', 'oscar_NB', 'jerry_NB', 'tony_NB']print(new_list)
列表生成式中只能出现for和if 不能出现While、else2、字典生成式
new_dirct ={i:'curry'for i inrange(10)if i ==6}print(new_dirct)# {6: 'curry'}3、集合生成式
new_set ={i for i inrange(10)if i ==6}print(new_set)# {6}"""
new_tuple = (i for i in range(10))
print(new_tuple) <generator object <genexpr> at 0x000001E62B8ED740>
元组没有所谓的生成式 它是迭代器(生成器)
"""
匿名函数
匿名函数就是没有函数名的函数
语法结构
lambda 形参:返回值
案列:
(lambda x: x +1) 直接调用
res =lambda x:x +1 命名调用
print(red(123))
应用场景
匿名函数通常都需要配合其他函数一起使用 用于减少代码
匿名集合内置函数使用
max()# 求最大值
l1 =[123,2321,556,3332,23,644,335,356,3,67,345,67,333,55,12,34,566,343243]
res =max(l1)print(res)# 343243
dic ={'curry':12,'jason':23,'oscar':2132,'zjp':23213213}defindex(k):return dic.get(k)# res = max(dic,key=lambda k: dic.get(K))
res =max(dic, key=index)print(res)# zjpprint('A'>'a')"""
A-Z 65-90
a-z 97-122
"""
重要内置函数
min() 最小值
map() 映射
1、map()
l1 =[10,20,30,40,50,60]# 需求:将列表中所有的数据值自增20# 方式1:for循环# 方式2:列表生成式# 方式3:map函数
res =map(lambda x: x +20, l1)print(res)# <map object at 0x000002324415F0D0>print(list(res))defindex(a):return a +20
res =map(index,l1)print(list(res))2、filter()
l1 =['curry','kevin','oscar','tony']# 需求:移除数据值里面的curry# 方式1、for循环# 方式2、列表生成式# 方式3、filter()
res =filter(lambda a: a !='curry',l1)print(res)# <filter object at 0x0000025A885B5B50>print(list(res))# ['kevin', 'oscar', 'tony']defindex(a):return a !='curry'
res =filter(index,l1)print(list(res))3、reduce()
l1 =[1,2,3]# 需求:求列表中所有数据值得和# 方式1:for循环# 方式2:sum()
res =sum(l1)print(res)# 6# 方式3:reduce() 将很多单体 变成一个整体from functools importreduce
res =reduce(lambda x,y: x + y, l1,100)
res =reduce(lambda x,y: x + y, l1,100)print(res)4、zjp()
n1 =[1,2,3]
n2 =['curry','kevin','oscar']
res =zip(n1,n2)print(res)# <zip object at 0x0000018A3237F480>print(list(res))
n1 =[1,2,3,4]
n2 =[5,6,7,8]
n3 ='curr'
res =zip(n1,n2,n3)print(list(res))# [(1, 'curry'), (2, 'kevin'), (3, 'oscar')]
n1 =[1,2,3,4,5,6,7,8]
n2 =[5,6,7,8]
n3 ='curr'
res =zip(n1,n2,n3)print(list(res))# [(1, 5, 'c'), (2, 6, 'u'), (3, 7, 'r'), (4, 8, 'r')]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了