python基础
- 规范:
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
-
字符串操作
-
分割:s.split()将s按照空格(包括多个空格,制表符\t,换行符\n等)分割,并返回所有分割得到的字符串列表。
-
连接:与分割相反,s.join(str_sequence)的作用是以s为连接符将字符串序列str_sequence中的元素连接起来,并返回连接后得到的新字符串。
-
替换:s.replace(part1, part2)将字符串s中指定的部分part1替换成想要的部分part2,并返回新的字符串。
-
统计:s.count(sub) 返回子字符串在字符串中出现的次数
-
去除多余空格
- s.strip()返回一个将s两端的多余空格除去的新字符串。
- s.lstrip()返回一个将s开头的多余空格除去的新字符串。
- s.rstrip()返回一个将s结尾的多余空格除去的新字符串。
-
大小写转换
- s.upper()方法返回一个将s中的字母全部大写的新字符串。
- s.lower()方法返回一个将s中的字母全部小写的新字符串。
-
强制转换为字符串: str(ob)
-
格式化字符串:
- Python用字符串的format()方法来格式化字符串。
- 也可以使用旧式的 % 方法进行格式化
s = "some numbers:" x = 1.34 y = 2 # 用百分号隔开,括号括起来 t = "%s %f, %d" % (s, x, y)
-
引号的区别
单引号和双引号的区别:
单引号内可以包含双引号
双引号内可以包含单引号三引号字符串:
可以包含单引号和双引号
三引号字符串中的换行会自动转换为换行符 \n
-
-
循环控制语句
- 遍历循环: for <循环变量> in <遍历结构>:
- 无限循环:while <条件>:
- 循环保留字: break和continue
- 死循环是指循环条件一直成立的循环,通常用break语句来终止循环
-
组合数据类型
-
序列类型(索引和切片)
- 序列类型是一维元素向量,元素之间存在先后关系,通过序号访问。
- 序列类型支持成员关系操作符(in)、长度计算函数(len())、分片([]),元素本身也可以是序列类型。
- 列表用中括号[]表示,也可以通过list()函数将元组或字符串转化成列表。 列表是一个可以修改数据项的序列类型。
- 元组tuple()是包含0个或多个数据项的不可变序列类型。元组生成后是固定的,其中任何数据项不能替换或删除。
list类型不能直接做元素数值加减运算,方法之一是借助 numpy库
-
集合类型:集合 set 是一种无序的序列。集合中放入的元素不可变、唯一。基本功能包括关系测试和消除重复元素 。
- 方法:s.add(a)用来向集合添加单个元素。
- s.update(seq)用来向集合添加多个元素。
- s.remove(ob)移除单个元素。
- pop方法弹出元素由于集合没有顺序,不能像列表一样按照位置弹出元素,所以pop 方法删除并返回集合中任意一个元素,如果集合中没有元素会报错。
- discard 方法作用与 remove 一样,但是当元素在集合中不存在的时候不会报错。
- a.union(b) 或者操作 a | b 实现并集。
- a.intersection(b) 或者操作 a & b 实现交集。
- a.difference(b) 或者操作 a - b 实现差集。
- a.symmetric_difference(b) 或者操作 a ^ b 实现(异或操作符)对称差。
- 要判断 b 是不是 a 的子集,可以用 b.issubset(a) 方法,或者更简单的用操作 b <= a
-
映射类型:字典dict()或{“”:“”,“”:“”}。Python中不能用支持用数字索引按顺序查看字典中的值,而且数字本身也有可能成为键值,这样会引起混淆。字符串、整型、元组作为键值。不能充当键的类型浮点数,列表list,字典dict,集合set
- 方法:
d.get(key, default = None)
返回字典中键 key 对应的值,如果没有这个键,返回 default 指定的值(默认是 None )。 d.pop(key, default = None)
删除并返回字典中键 key 对应的值,如果没有这个键,返回 default 指定的值(默认是 None )。d.update(newd)
将字典newd中的内容更新到d中去。d.keys()
返回一个由所有键组成的列表;d.values()
返回一个由所有值组成的列表;d.items()
返回一个由所有键值对元组组成的列表。
- 方法:
-
-
推导式
- 推导式是可以从一个数据序列构建另一个新的数据序列的结构体。
- 列表(list)推导式
squares = [x ** 2 for x in values if x <= 10]
[(x,y) for x in range(1, 4) for y in range(1, 4)]
- 集合(set)推导式&字典(dict)推导式它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。
快速交换key和value:mcase_frequency = {v: k for k, v in mcase.items()}
seasons = ['Spring', 'Summer', 'Fall', 'Winter'] list(enumerate(seasons)) #输出:[(0, 'spring'), (1, 'summer'), (2, 'fall'), (3, 'winter')] # 九九乘法表 print('\n'.join(['\t'.join(['%d * %d = %d'%(y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)])) # 字典中age键,按照条件赋新值 bob = {'pay': 3000, 'job': 'dev', 'age': 42, 'name': 'bob smith'} sue = {'pay': 4000, 'job': 'hdw', 'age': 45, 'name': 'sue jones'} people = [bob, sue] result=[rec['age'] + 100 if rec['age'] >= 45 else rec['age'] for rec in people] print(result) # 输出[42, 145] strings = ['import','is','with','if','file','exception'] d = {x: len(x) for x in strings} # 输出{'import': 6, 'is': 2, 'with': 4, 'if': 2, 'file': 4, 'exception': 9}
-
文件读写
- 文件读写步骤
打开文件 open
读文件 read/readlines
写文件 write
关闭文件 close - Python提供了更安全的方法,当 with 块的内容结束后,Python会自动调用它的close 方法,确保读写的安全。
- 文件和目录操作:os库
-
查看、创建、删除目录
- os.remove(path)或os.unlink(path):删除指定路径的文件。路径可以是全名,也可以是当前工作目录下的路径。
- os.removedirs:删除文件,并删除中间路径中的空文件夹
- os.listdir(path):返回给定目录下的所有文件夹和文件名,不包括’.‘和’…'以及子文件夹下的目录。
- os.mkdir(name):产生新文件夹
- os.makedirs(name):产生新文件夹,如果中间路径的文件夹不存在,则创建文件夹
-
路径分隔split 和路径合并 join
- os.path.split(path):拆分一个路径为(head, tail)两部分
- os.path.join(a, *p):使用系统的路径分隔符,将各个部分合成一个路径
- os.path.splitext()可以直接让你得到文件扩展名,很多时候非常方便:
要列出所有的.ipynb文件,也只需一行代码:
[x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1] == '.ipynb']
-
测试,其他
- 返回绝对路径
- 是否是文件
- 是否是目录
-
- 文件读写步骤
-
JSON文件和CSV文件
- JSON 的基础结构有两种:键值对 (name/value pairs) 和数组 (array)。示例:
{ "name": "echo", "age": 24, "coding skills": ["python", "matlab", "java", "c", "c++", "ruby", "scala"], "ages for school": { "primary school": 6, "middle school": 9, "high school": 15, "university": 18 }, "hobby": ["sports", "reading"], "married": false }
- json模块的功能
- dumps:把其他对象或格式转换为json格式
- loads:把json转换成其他格式,
- dump:把json数据写入到文件中
- load:将文件的内容转换成为json数据
- csv(Comma-Separated Values),也叫逗号分割值
- csv.reader(csvfile [, dialect=‘Excel’] [, fmtparam])
参数表:
- csvfile: 文件(file)对象(需要先打开文件)
- dialect :可选,编码风格,默认为excel方式,也就是逗号(,)分隔
- fmtparam: 可选,格式化参数,用来覆盖之前dialect对象指定的编码风格。
- csv文件写入:csv.writer(csvfile, dialect=‘excel’, **fmtparams)
- csv.reader(csvfile [, dialect=‘Excel’] [, fmtparam])
-
面向对象编程
面向对象的三大特性是指:封装、继承和多态。