总结 3,22

今日内容概要

三元表达式
有了三元表达式我们就可以大大的缩见代码量  并且会相当的简介美观易懂
也可以说是python对于控制流程的简写形式

# 如果用户名是jason则打印管理员 否则打印DSB
# username = input('username>>>:').strip()
# if username == 'jason':
#     print('上技师')
# else:
#     print(6666)
来我们看一下代码的简写
username = input('username>>>:').strip()
res = '上技师' if username == 'jason' else 666
print(res)
这串简写的代码我们做一下简单说一下   两个值因为 if  else  所以是两个值    如果if条件成立 就会输出  if前的值  如果不是会输出  666就是 else的值

补充:针对if分支结构 也有简化版本(了解即可)
子代码块都只有简单的一行情况下 也可以这样来写
zqh =int(input('>>>>'))
if zqh == int(666):print(zqh)
else:print('上技师')
简写
zqh=int(input('>>>>>'))
res = 6 if zqh ==666 else 7
print(res)   

各种生成式

列表的生成式
列表生成式的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是0个或多个for或者if语句。列表表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以iffor语句为上下文的表达式运行完成之后产生。
给每个人叫个技师:就是给每个人名后后面加一个技师
list=['zqh','jason','kevin','tony']
new_list=[]     1 创建空列表
for i in list :   2之后for循环
    res = i+'上技师'   3字符串末尾拼接
    new_list.append(res)  4添加到新列表之中
print(new_list)    5 打印
这个加技师的代码我们简写一下
list=['zqh','jason','kevin','tony']
res =[i +'_上技师'for i in list]
print(res)
列表生成式中值允许出现forif 不能出现else 因为会产生歧义(forif都能结合else)
res =[i +'_上技师'for i in list if i == 'zqh']  i 等于zqh
res = [i +'_上技师'for  i in list if i != 'zqh']  i 不等于zqh
print(res)

字典生成式

将两个列表制成一个字典  
list =['name','age','password']
user_list= ['zah',18,15249609629]
new_dict={}  1 定义一个空字典
for i in range(len(list)):  2  for 循环拿到两个列表之中的对应元素
    new_dict[list[i]]=user_list[i]   3.索引取值即可
print(new_dict)  4 打印
简写 
 字典生成式
res = {list[i]:user_list[i]for  i in range(len(list))}
print(res)
集合生成式
reang取值范围  type 判断是什么类型

res = {i for i in range(10)}
print(res, type(res))
res = {i for i in range(10) if i != 2}
print(res, type(res))

匿名函数

在Python中,不通过def来声明函数名字,而是通过lambda关键字来定义的函数称为匿名函数。

lambda函数能接收任何数量(可以是0个)的参数,但只能返回一个表达式的值,lambda函数是一个函数对象,直接赋值给一个变量,这个变量就成了一个函数对象。
语法:lambda 参数:表达式
先写lambda关键字,然后依次写匿名函数的参数,多个参数中间用逗号连接,然后是一个冒号,冒号后面写返回的表达式。
使用lambda函数可以省去函数的定义,不需要声明一个函数然后使用,而可以在写函数的同时直接使用函数。
使用场景:
1.需要将一个函数对象作为参数来传递时,可以直接定义一个lambda函数(作为函数的参数或返回值)
2.要处理的业务符合lambda函数的情况(任意多个参数和一个返回值),并且只有一个地方会使用这个函数,不会在其他地方重用,可以使用lambda函数
3.与一些Python的内置函数配合使用,提高代码的可读性

max 统计最大值
l1 = [11,32,41,22,13,66,54,78,96,34,54,99,35]
print(max(l1))   max直接获取你里面的最大元素值
  这里使用max取最大的值是会得到zark  这个 k ,因为ascii码 A~Z:65-90
    a~z:97-122  转成数字比较  所以会取到ASCII码对应数字最大的那个字母
info = {'Aason':9999999'Jacob':123,'zark':1000, 'berk':33}
print(max(info))
得到 zark
info = {
    'Aason':9999999,
    'Jacob':123,
    'zark':1000,
    'berk':33
}

 key对应的函数返回什么 max就以什么做比较的依据 比较的是v 返回的是k    key相当于是可以更改比较规则的参数
def index(k):
     return info[k]
# print(max(info))
print(max(info,key=index))
代码可以简写 因为函数功能很单一
print(max(info, key=lambda key:info[key]))

常见重要内置函数

    1 abs()
print(abs(-123))
print(abs(123))
#加abs就是括号里边添入的数字是不考虑正负号的
l1=[0,12,22,88,True]
print(all(l1))
print(any(l1))
2 all  数据集中必须所有的值是True返回的结果才是True    any 数据集中只要有一个是True  返回的结果也是
3用来产生对应的进制数
 bin()
 oct()
 hex()
print(bin(100))
print(oct(100))
print(hex(100))

 4 bytes()   #用来类型转换
 zqh='你好'
 print(zqh.encode('utf8'))
 print(bytes(zqh,'utf8'))
#这是编码
zqh='你好'
bm = bytes(zqh,'utf8')
print(bm)
# 这是解码
wyx= str(bm,'utf8')
print(wyx)
 5  # callable()
# 变量名不能加括号调用变
# 函数名可以加括号调用
 6 dir()
print(dir(886))
print(dir('zqh'))
#返回数据类型可以调用的内置方法   或者是查看对象内部可调用的属性
7. divmod()   可以使用在网站的分页制作上
print(divmod(121,12))   打印出来的结果第一个数字是整数第二个是余数  
print(divmod(520,52))
def num (total_num,page_num):
    a,b,=divmod(total_num,page_num)
    if b:
        a+=1
    print('需要%s页'%a)
num(1200,30)
8 enumerate()   枚举
name_list=['jason','zqh','tony']
# for name in name_list:
#     print(name)
# for i , j in enumerate(name_list):
#     print(i,j,)    这里的i类似于是计数 默认从0开始、
for i,j in enumerate(name_list,start=2):
     print(i,j)     start 是 控制起始位置  
9 .chr()、ord()  字符与数字的对应转换
# print(chr(65))  # A  根据数字转字符  依据ASCII码
# print(ord('A'))  # 65  根据字符转数字  依据ASCII码
 10.eval() exec()  识别字符串中的python代码  使用频率很低
 print('print("有点饿了")')
 eval('print("有点饿了111")')
 exec('print("有点饿了222")')
res = """
for i in range(10):
    print(i)
"""
# eval(res)  只能识别简单逻辑的python代码
# exec(res)  能够识别具有与一定逻辑的python代码

posted @   文质彬彬赵其辉  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示