三元表达式
'''
三元表达式:
值1 if 条件 else 值2
如果条件成立使用值1,不成立使用值2
三元表达式只用于二选一的情况,最好不要嵌套使用
'''
1. 求两个数中的较大数
2.如果用户名是jason打印 你好 否则打印 滚蛋
a = 8
b = 9
count = a if a>b else b
print(count)
name = 'jason'
input_name = input('请输入用户名:')
data = '你好' if input_name == name else '滚蛋'
print(data)
name = 'jason'
if name == 'tom': print(name)
else: print('hhhhhh')
生成式
name_list = ['jason', 'kevin', 'tony', 'oscar', 'jerry']
常规写法:
name_list = ['jason', 'kevin', 'tony', 'oscar', 'jerry']
list = []
for i in name_list:
i = i + '_name'
list.append(i)
name_list = list
print(name_list)
name_list = [i + '_name' for i in name_list]
print(name_list)
>>> ['jason_name', 'kevin_name', 'tony_name', 'oscar_name', 'jerry_name']
name_list = [i + '_name' for i in name_list if i == 'jason']
>>> ['jason_name']
'''列表生成式中允许出现for和if,但是不能出现else 因为会产生歧义(for和if都能与else结合)'''
l1 = ['name','age','pwd']
l2 = ['jason', 18, 123]
常规写法
dic = {}
for i in range(len(l1)):
dic[l1[i]] = l2[i]
print(dic)
>>>{'name': 'jason', 'age': 18, 'pwd': 123}
字典生成式
dic = {l1[i]:l2[i] for i in range(len(l1))}
加上if判断
dic = {l1[i]:l2[i] for i in range(len(l1)) if l2[i] == 'jason'}
print(dic)
>>>{'name': 'jason'}
s = {i for i in range(10)}
print(s,type(s))
>>>{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} <class 'set'>
匿名函数
'''匿名函数的就是没有函数名的函数,匿名函数需要结合其他函数一起调用'''
lambda 形参:返回值
匿名函数与max()
l1 = [11,32,41,22,13,66,54,78,96,34,54,99,35]
print(max(l1))
>>>99
-----------------------
info = {
'Aason':9999999,
'Jacob':123,
'zark':1000,
'berk':33
}
print(max(info))
>>>zark
'''
需要注意 max()比较最大值,可以看成是通过for循环一次比较每一个元素,但是字典for循环出来的是键,字符串大小的比较,是通过首个字符ascii码的大小来进行判断的
'''
info = {
'Aason':9999999,
'Jacob':123,
'zark':1000,
'berk':33
}
print(max(info,key = lambda a:info[a]))
>>>Aason
'''max内置函数有两个参数,第一个是取值容器,第二个参数是一个函数,这个函数用来接收取出来的值'''
内置函数
常见的重要内置函数
将列表中每个元素的值加10
方法一:列表生成式
方法二:map方法
l1 = [11, 22, 33, 44, 55]
1.
l1 = [i+10 for i in l1]
print(l1)
2.
res = map(lambda i:i+10,l1)
print(res)
print(list(res))
>>><map object at 0x000001EAFFBF9588>
>>>[21, 32, 43, 54, 65]
zip的作用是可以整合多个数据集,整合的结果是一个迭代器
l1 = [11, 22, 33, 44]
l2 = ['jason','kevin','tony','oscar']
l3 = [1,2,3,4]
res = zip(l1,l2,l3)
print(list(res))
>>>[(11, 'jason', 1), (22, 'kevin', 2), (33, 'tony', 3), (44, 'oscar', 4)]
'''如果数据集的长短不同,则依据短的进行整合'''
l1 = [11, 22, 44]
l2 = ['jason','kevin','tony','oscar']
l3 = [1,2]
res = zip(l1,l2,l3)
print(list(res))
>>>[(11, 'jason', 1), (22, 'kevin', 2)]
方法一:使用列表生成器
方法二:使用filter内置方法
l1 = [11, 22, 33, 44, 55, 66]
1.
l1 = [i for i in l1 if i>30]
2.
l1 = filter(lambda x:x>30,l1)
print(list(l1))
'''以前是内置函数,现在是functools模块下的子函数'''
列表中的所有元素和自增100
from functools import reduce
l1 = [11, 22, 33, 44, 55, 66]
res = reduce(lambda x,y:x+y,l1,100)
print(res)
需要了解的内置函数
abs(-123)
l1 = [0, 0, 1, 0, True]
all(l1)
any(l1)
bin()
oct()
hex()
s = 'hello world!'
print(bytes(s,'utf8'))
'''
可以使用 str与bytes进行类型转换,来代替encoding与decoding进行编码与解码
'''
name = 'jason'
def index:pass
print(callable(name))
print(callable(index))
print(chr(65))
print(ord('A'))
print(dir('s'))
print(divmod(250,25))
分页函数
def get_page_num(total_num,page_num):
more,others = divmod(total_num, page_num)
if others:
more += 1
print('需要%s页'%more)
get_page_num(500,20)
>>>需要25页
方法一:常规方法
方法二:enumerate
name_list = ['jason', 'kevin', 'oscar', 'tony']
1.for name in name_list:
print(name)
2.for i,j in enumerate(name_list,start=1):
print(i,j)
>>>1 jason
>>>2 kevin
>>>3 oscar
>>>4 tony
res = """
for i in range(10):
print(i)
"""
eval(res)
exec(res)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人