Python
2021-11-08 14:46:48 1 举报
AI智能生成
Python学习脉络,请收藏,持续更新
作者其他创作
大纲/内容
入门与概念
参考资料
Python菜鸟教程
简介与安装
Conda
升级python版本
升级导致jupyter用不了
conda remove ipykernel
conda install ipykernel
应用与工具使用
Pycharm
一些概念
mutable and immutable
避免导入包时运行程序
if __name__ == "__main__":
main()
main()
基本数据类型
整数型
int
long
浮点型
float
复数型
complex
布尔型
bool
类型转换
int()
str()
float()
运算符
算术运算符
+
-
*
**
/
//
%
赋值运算符
=
+=
-=
*=
/=
%=
**=
//=
(比较)关系运算符
>
>=
<
<=
==
!=
逻辑运算符
and
or
not
位运算符
按位取反(~)
按位与(&)
按位或(|)
异或(^)
右移(>>)
左移(<<)
成员运算符
in
当在指定的序列中找到值时返回 True,否则返回 False
not in
当在指定的序列中没有找到值时返回 True,否则返回 False
身份运算符
is
is not
三目运算符
格式
条件为真时的结果 if 判段的条件 else 条件为假时的结果
举例
print(x if(x>y) else y)
基础语句
分支语句
if <statement>:
elif <statement>:
else:
elif <statement>:
else:
没有switch
循环语句
while <statement>:
else:
else:
for <> in <>:
else:
else:
异常语句
try:
except <名字>, <数据>: (捕捉异常,也可以不加后面的异常-捕捉所有异常)
else: (没有异常发生)
except <名字>, <数据>: (捕捉异常,也可以不加后面的异常-捕捉所有异常)
else: (没有异常发生)
控制语句
continue
break
空语句
pass
函数
def function_name(arg1, agr2, ...):
statements
return value
statements
return value
常用函数
len()
len(str)
len(list)
range()
range(start, stop[, step])
面向对象
类(Class)与对象(Object/Instance)
基本概念
属性(Properties/Attributes)
行为(Behaviors/Methods)
基本类
继承(Inheritance)
多态
封装
常用函数与库
目录与文件
os
walk
目录方法
改变工作目录
os.chdir("/home/newdir")
显示当前工作目录
os.getcwd()
创建新的目录
os.mkdir("test")
删除目录
os.rmdir( "/tmp/test" )
目录的完全合规的名称必须被给出,否则会在当前目录下搜索该目录。
文件方法
删除文件
os.remove("test2.txt")
重命名文件
os.rename(current_file_name, new_file_name)
系统
sys
sys.argv
0
文件名
sys.exit()
exit(0)
正常退出
exit(1)
异常退出
数组运算
numpy
统计计算
scipy
机器学习
scikit-learn
输入输出
命令行IO
input()
a = input("Please input your name")
文本文件IO
打开文件
f = open(file_name [, access_mode][, buffering])
a+
追加读写,不存在就创建
a
打开一个文件用于追加。
如果该文件已存在,文件指针将会放在文件的结尾。
如果该文件不存在,创建新文件进行写入。
如果该文件已存在,文件指针将会放在文件的结尾。
如果该文件不存在,创建新文件进行写入。
w+
开头读写,不存在就创建
w
如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。
如果该文件不存在,创建新文件。
如果该文件不存在,创建新文件。
r
只读
x
写模式,新建一个文件,已存在会报错
+
打开一个文件进行更新
关闭文件
f.close()
刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入
如果没有使用,不会写入文件
读取文件
s = f.read([count])
count:要从已打开文件中读取的字节计数,或者读取全文
s = f.readline()
读取一行,没有数据了返回空字符串
lines = f.readlines()
返回一个字符串列表
写入文件
f.write(str)
文件定位
CSV文件IO
需要导入csv模块
import csv
打开模式
w
创建或者覆盖已经有的文件
x
创建文件,如果已经存在抛出错误
r
只读
a
追加,不存在就创建
csv文件不能改变只能覆盖或者追加
读写
写入
写入列表
import csv
headers = ['class','name','sex','height','year']
rows = [
[1,'xiaoming','male',168,23],
[1,'xiaohong','female',162,22],
[2,'xiaozhang','female',163,21],
[2,'xiaoli','male',158,21]
]
with open('test.csv','w')as f:
f_csv = csv.writer(f)
f_csv.writerow(headers)
f_csv.writerows(rows)
headers = ['class','name','sex','height','year']
rows = [
[1,'xiaoming','male',168,23],
[1,'xiaohong','female',162,22],
[2,'xiaozhang','female',163,21],
[2,'xiaoli','male',158,21]
]
with open('test.csv','w')as f:
f_csv = csv.writer(f)
f_csv.writerow(headers)
f_csv.writerows(rows)
写入字典
import csv
headers = ['class','name','sex','height','year']
rows = [
{'class':1,'name':'xiaoming','sex':'male','height':168,'year':23},
{'class':1,'name':'xiaohong','sex':'female','height':162,'year':22},
{'class':2,'name':'xiaozhang','sex':'female','height':163,'year':21},
{'class':2,'name':'xiaoli','sex':'male','height':158,'year':21},
]
with open('test2.csv','w',newline='')as f:
f_csv = csv.DictWriter(f,headers)
f_csv.writeheader()
f_csv.writerows(rows)
headers = ['class','name','sex','height','year']
rows = [
{'class':1,'name':'xiaoming','sex':'male','height':168,'year':23},
{'class':1,'name':'xiaohong','sex':'female','height':162,'year':22},
{'class':2,'name':'xiaozhang','sex':'female','height':163,'year':21},
{'class':2,'name':'xiaoli','sex':'male','height':158,'year':21},
]
with open('test2.csv','w',newline='')as f:
f_csv = csv.DictWriter(f,headers)
f_csv.writeheader()
f_csv.writerows(rows)
读取
import csv
with open('test.csv')as f:
f_csv = csv.reader(f)
for row in f_csv:
print(row)
with open('test.csv')as f:
f_csv = csv.reader(f)
for row in f_csv:
print(row)
正则匹配
re
re.match(pattern, string, flags=0)
数学库
math
三角函数
math.pi
math.e
math.log(x,a)
math.sqrt(x)
math.log10()
math.floor()
math.round()
x = Math.round(20.49); //20
x = Math.round(20.5); //21
x = Math.round(-20.5); //-20
x = Math.round(-20.51); //-21
x = Math.round(20.5); //21
x = Math.round(-20.5); //-20
x = Math.round(-20.51); //-21
随机库
random
参考资料
python random 官方文档
random.random()
生成一个0到1的随机浮点数:0<= n < 1.0
random.uniform(a,b)
如果a > b,则生成的随机数n: b <= n <= a。如果 a <b, 则 a <= n <= b。
random.randint(a, b)
生成一个指定范围内的整数。生成的随机数n: a <= n <= b
random.randrange([start], stop[, step])
从指定范围内,按指定基数递增的集合中获取一个随机数。不包括stop
random.choice(sequence)
从序列中获取一个随机元素
list, tuple, 字符串都属于sequence
random.choices(population, weights=None, *, cum_weights=None, k=1)
random.shuffle(x[, random])
import random
p = ['A' , 'B', 'C', 'D', 'E' ]
random.shuffle(p)
print (p)
p = ['A' , 'B', 'C', 'D', 'E' ]
random.shuffle(p)
print (p)
会打乱p的元素顺序
数据结构
String
基本概念
定义
单行字符串
'
"
多行字符串
\n
"""
字符串表示
防止转义
r
特点
Immutable
转义字符
\
\'
\"
\\
常用操作
拼接
+
其他类型使用str()
重复
*
常用方法
strip()
strip()
默认去除两边white-space
lstrip()
rstrip()
split()
大小写
str.lower()
str.upper()
判断
格式化输出
参考资料
保留数字几位小数可以用Python format 格式化函数解决
两种方法
%方法
format方法
不带编号
print('{} {}'.format('hello','world'))
带数字
print('{1} {1} {0}'.format('hello','world'))
带关键字
print('{a} {tom} {a}'.format(tom='hello',a='world'))
浮点数输出
小数点输出
%f
%.3f,保留3位小数位
指数/科学计数法输出
%e
%.3e,保留3位小数位,使用科学计数法
小数与科学计数法输出
%g
%.3g,保留3位有效数字,使用小数或科学计数法
字符串输出
基本输出
%s
右对齐
%10s
左对齐
%-10s
整数输出
%d
List - 列表
基本概念
定义
l = [value1, value2]
实例
our_list = [1, "Orange", [3, 4, 5], 6, 7, 8, "blue", 1.4]
特点
可以储存不同类型的数据
可变
常用方法
list.append(obj)
在列表末尾添加新的对象
list.count(obj)
统计某个元素在列表中出现的次数
list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值
list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj)
将对象插入列表
list.pop([index=-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj)
移除列表中某个值的第一个匹配项
list.reverse()
反向列表中元素
list.sort(cmp=None, key=None, reverse=False)
对原列表进行排序,默认升序
常用操作
拼接
+
重复
*
['Hi!'] * 4
删除
del
del li[i]
最大值
max(list)
最小值
min(list)
转换
list(seq)
Dictionary - 字典
基本概念
定义
d = {key1 : value1, key2 : value2 }
实例
dict2 = { 'abc': 123, 98.6: 37 }
特点
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
如果用字典里没有的键访问数据,会输出错误KeyError
可变
常用操作
添加/更新
dict['School'] = "RUNOOB"
删除
del
del dict[key]
常用方法
dict.clear()
删除字典内所有元素
dict.copy()
返回一个字典的浅复制
dict.fromkeys(seq[, val])
创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
dict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值
dict.has_key(key)
如果键在字典dict里返回true,否则返回false
dict.items()
以列表返回可遍历的(键, 值) 元组数组
dict.keys()
以列表返回一个字典所有的键
dict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
dict.update(dict2)
把字典dict2的键/值对更新到dict里
dict.values()
以列表返回字典中的所有值
pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem()
返回并删除字典中的最后一对键和值。
遍历
for k in dic:
print(k, “occured”, dic[k], "times")
print(k, “occured”, dic[k], "times")
排序
参考资料
Python 按键(key)或值(value)对字典进行排序
Tuple - 元组
基本概念
定义
t = (value1, value2, value3)
实例
tup1 = ('physics', 'chemistry', 1997, 2000)
特点
可以储存不同类型的数据
不可变,修改元组数据非法
常用操作
连接两个元组
tup3 = tup1 + tup2
删除整个元组
del tup
复制
('Hi!',) * 4
最大值
max(tup)
最小值
min(tup)
转换
list(tup)
0 条评论
下一页