python函数和常用模块(一),Day3

  • set集合
  • 函数
  • 三元运算
  • lambda表达式
  • 内置函数1
  • 文件操作

set集合

创建

1
2
se = {"123", "456"# 直接创建一个集合
se = set(list# 将列表转化成集合

功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
s = set()  # 创建一个集合
s.add(123# 添加一个元素
s.clear()  # 清除元素,清空
s1 = {11,22,33}
s2 = {22,33,44}
s3 = s1.difference(s2)  # s1中存在,s2中不存在 赋值给新的变量s3
s3 = s1.symmetric_difference(s2)  # s1存在s2中不存的 和 s2中存在s1中不存的 赋值给新的变量s3
s1.difference_update(s2)  # s1中存在,s2中不存在 更新到s1
s1.symmetric_difference_update(s2)  # s1存在s2中不存的和s2中存在s1中不存的更新到s1
s1.discard(11# 移除指定元素,不存在不报错
s1.remove(11# 移除指定元素,不存会报错
s1.pop()  # 移除某个元素,并返回这个元素
s1.intersection(s2)  # 取两个的交集 赋值给新的变量s3
s1.intersection_update(s2 )  # 取两个的交集,更新给s1
s1.isdisjoint(s2)  # 判断两个集合有没有交集
s1.issubset(s2)  # 是否是子序列
s1.issuperset(s2)  # 是否是父序列
s3 =  s1.union(s2)  # 并集
s1.update()  # 更新,接受一个可以迭代的对象,可以是list,元组,字符串

函数

创建函数/定义函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
创建函数/函数定义
 
def关键字,创建函数
函数名
()
函数体
返回值
定义函数,函数体不执行,只有调用函数的时候,函数体才执行
在函数中 一旦执行了 return 函数立即终止
默认的函数return值为 None
 
函数的参数
 
形参
实参
形参上可以分为
 
普通参数
默认参数
指定参数
动态参数
万能参数*ages, **kwarges f(*ages, **kwarges)
 
*  默认将传入的参数,全部放置在元组中f(\*args)   f1(*[11,22,33,44]) 会将列表所有的元素赋值进去
** 默认将传入的参数,全部放置在字典中f(\*\*args)  f1(**{"k1":"v1", "k2":"v2"}) 会将字典的元素赋值进去
str.format() # 格式化输出
 
函数的要点
 
py是顺序执行的,并且函数可以重复定义函数相同名称的函数。调用时会执行最后一个被定义的函数。
函数的参数在传递的时候,到底是传一份引用,还是值. (传递的是引用)
全局变量
全局变量,所有的作用域都可读,函数外定义的变量 *特殊*字典列表,可以修改,不可以重新赋值
 
函数里默认定义的变量是私有的
 
全局变量和私有变量同时存在时,默认优先使用局部私有变量
 
global 变量,能将局部的私有变量定义/表示为全局变量,在作用域里给全局变量*重新赋值*,需要使用global
 
默认规则,定义全局变量全部大写

三元运算

1
2
3
name = "alxe" if 1 == 1 else "sb"
# 如果 1 == 1成立 那么 name = "alxe"
# 否则 name = 'sb'

lambda表达式

1
f2 = lambda a1, a2 = 9: a1 + a2 +100

内置函数1

1
2
3
4
5
6
7
8
9
10
11
12
13
# , None,  "", [], {}, ()是False
abs()  # 绝对值
all()  # 所有为真,才为真
any()  # 任何一个为真,就为真
ascii()  # 自动执行__repr__方法
bin()  # 十进制转二进制
oct()  # 十进制转八进制
hex()  # 十进制转十六进制
bool()  # 布尔值
bytes()  # 字符串转换字节类型
bytearray()  #
str()  # 转换字符串
open()  # 打开文件

补充

1
2
3
4
5
6
7
8
9
10
utf-8编码,一个汉字是三个字节
gbk编码,一个汉字是两个字节
字符串转换字节类型
bytes(只要转换的字符串, 按照什么编码 )
    s = "中国"
    n = bytes(s, encoding="utf-8")
    print(n)
     
字节转换成字符串
str(bytes(s, encoding="utf-8"), enconding="utf-8")

文件操作

打开文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
f = open('db', a) # 打开文件
    打开文件的模式
    r 只读
    w 只写
    x 如果当文件存在,就报错,不存在,创建并写内容 3.x新添加
    a 追加
    "+"表示可以同时读写某个文件
    r+
    w+
    x+
    a+
     
    f.seek() 主动的把指针调整到某个位置(字节位置)
    f.tall() 获取当前指针的位置
    在写的时候会覆盖原本的内容
     
    r+b
    w+b
    x+b
    a+b

操作文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
read()  # 无参数读全部;有参数,b,按字节,无b按字符
    tell()  # 获取当前指针位置(字节)
    seek()  # 指针跳转指定位置(字节)
    write()  # 写数据,b 自己,无b,字符
    close()  # 关闭
    fileno()  # 文件描述符
    flush()  # 强刷
    readable()  # 检查是否可读
    seekable()  # 是否可以移动指针
    readline()  # 仅读取一行
    writeabke()  #  是否可写
    truncate()  # 截断数据,指针位置后的清空
     
    循环每一行
    for line in f
        print(line)

用过源码查看功能

关闭文件

1
f.close()

  

posted @   王先森-0418  阅读(180)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示