目录
1.开发环境
1.1 计算机组成
1.2 python
1.2.1 python下载
1.官网下载
1.2.2 解释器
1.解释器的作用:运行文件
2. 种类:
1. CPython, C语音开发的解释器 [官方]
2. JPython,是运行在Java平台上的Python解释器
3. IPython, 基于CPython之上的一个交互式解释器
4. PyPy, 是另一个Python解释器
5. IronPython, 是运行在微软.Net平台上的Python解释器
3. 下载地址:Welcome to Python.org
1.2.3 集成开发环境pycharm
官网:PyCharm: the Python IDE for data science and web development (jetbrains.com)
1. 作用:智能提示、语法高亮、代码跳转、调试代码、解释器、第三方库
详细:pycharm 常用功能总结_pycharmflask app.py中各函数的功能-CSDN博客
2.介绍与安装:Pycharm介绍与安装-CSDN博客
3.界面介绍:PyCharm 界面介绍_pycharm界面-CSDN博客
1.2.4 基础语法
1.注释:
解释器不执行注释的文本
# print("hello world!") -> 单行注释 (Ctrl+/)
"""
print("hello world!")
print("hello world!")
print("hello world!") -> 多行注释
"""
2.变量:
2.1 标识:
True Flase None
if elif else assert
while for in
def from import class
with open as
return yield pass break raise continue
lambda def del
global nonlocal
try except finally
and or not
help type
range enumerate
assert:python中assert函数的定义及用法_python中assert的用法-CSDN博客
yield:python中yield的用法详解——最简单,最清晰的解释_yield python-CSDN博客
raise: Python raise用法(超级详细,看了无师自通)-CSDN博客
del:python中的del用法_pythondel-CSDN博客
gobal与nonlocal:Python中关键字global与nonlocal的区别_python中global和nonlocal区别-CSDN博客
finally:python中的finally用法_python finally用法-CSDN博客
enumerate:
python enumerate()函数 用法_enumerate(x):-CSDN博客
2.2 变量说明:
2.2.1 数据类型:
数值:int (整数型)、float(小数型)
布尔:True Flase
字符串:str
空值:None
list(列表)、tuple(元组)、set(集合)、dict(字典)
2.3 格式化转换
格式符号 | 转换 |
---|---|
%s | 字符串 |
%d | 有符号的十进制整数 |
%f | 浮点数 |
%c | 字符 |
%u | 无符号的十进制整数 |
%o | 八进制整数 |
%x或%ox | 十六进制整数 |
%X或%OX | 十六进制整数 |
%e或%E | 科学计数法 |
%g | %f和%e的简写 |
... | ... |
示例:
print("%d,%s,鲤鱼利于鲤鱼"%(111, "鱼鱼鱼"))
运行结果:
111,鱼鱼鱼,鲤鱼利于鲤鱼
2.4 转义字符:
\n :换行
\r :回车
运行代码示例:
\t :制表符 ,相当于一个tab键
2.5 内置函数
函数 | 说明 |
---|---|
input() | 输入 |
print() | 输出 |
int() | 转换成整数 |
str() | 转换成字符串 |
float() | 转换成小数 |
tuple() | 转换成元组 |
list() | 转换成列表 |
set() | 转换成集合 |
dict() | 转换成字典 |
repx() | 转换成表达式字符串 |
complex(real,[,imag]) | 创建复数,real实部,imag虚部 |
eval(str) | 计算在字符串中有效的表达式,返回一对象 |
chr() | 将整数转换成Unicode字符 |
ord() | 将字符转换成ASCII整数值 |
hex() | 整数转换十六进制字符串 |
... | ... |
2.6 运算符
1.分类:
分类 | 说明 |
---|---|
算数运算符 | + - * / // ** % () |
赋值运算符 | = |
复合赋值运算符 | += -= *= /= 等 |
比较运算符 | < > >= <= == != |
逻辑运算符 | and or not |
详细:Python的运算符_python中的运算符-CSDN博客
运算符优先级(从大到小):
1.算数运算符:()高于 ** 高于* / // % 高于 + -
2.赋值运算符:=
3.复合赋值运算符:运算符右侧运算 高于 复合运算
4. 比较运算:左至右
3.if语句
语法:if...elif...else
三元运算符:a if a >b else b
示例:
a = 1
if a:
print("第一个")
elif (-3 < a < 2) or (10 <= a < 20):
print("中间")
else:
print("第三个")
#三元运算符 推导式
b = a if a > 0 else 0
print(b)
#运算结果:
第一个
1
4.while循环
语法:while 或 while...else
a = 1
while (a <5):
a+=1
print(a,end="")
print("\n结束")
a = 1
while (a <5):
a+=1
print(a,end="")
else:
print("else")
print("\n结束")
#运算结果
2345
结束
2345else
结束
扩展:
i = 0
a = []
b= []
while True:
i+=1
if 10 <= i < 15:
continue
a.append(i)
if 15 <= i < 20:
pass
b.append(i)
if 95 < i:
break
else:
print("else1")
print("else2")
print("a:",a)
print("b:",b)
#运行结果
else2
a: []
b: [15, 16, 17, 18, 19]
5.for循环
语法:for...in或 for... in...else
for i in range(5):
if i == 1:
continue
print(i,end="")
print("结束")
for i in range(5):
if i == 1:
continue
print(i,end="")
else:
print("else1")
print("结束")
#推导式
b = {i:i**2 for i in range(5)}
a = [ [0 for j in range(10)] for i in range(10)]
print(b,"\n")
print(str(a).replace("], ", "],\n"))
#运行结果
0234结束
0234else1
结束
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
6.字符串
语法:# 注释 或 """ 注释"""
6.1 切片
a = "12345678910111213"
b = a[0:3]
print("b:",b)
c = a[0:10:2]
print("c:",c)
d = a[-9:-1:2]
print("d:",d)
e = a[10:1:-1]
print("e:",e)
#运行结果
b: 123
c: 13579
d: 9012
e: 019876543
6.2 常用操作方法
函数 | 说明 |
---|---|
find(self,x,_start,_end) | 查找返下标,否则返-1 |
index(self,x,_start,_end) | 查找返下标,否则报错 |
rfind() | 同find(),但查找方向为右往左 |
rindex() | 同index(),但查找方向为右往左 |
count(self,x,_start,_end) | 返回子串x在字符串出现的次数 |
replace(self,_old,_new,_count) | 替换 |
capitalize(self) | 第一个字符转换成大写 |
title(self) | 每个单词首字母转换成大写 |
lower(self) | 大写转小写 |
upper(self) | 小写转大写 |
lstrip(self,_chars) | 删除左侧空白字符 |
rstrip(self,_chars) | 删除右侧空白字符 |
strip(self,_chars) | 删除两侧空白字符 |
ljust(self,_width,_fillchar) | 返回左对齐,长度_width右填充_fillchar的新字符串 |
rjust() | 同ljust(),但右对齐 |
center(self,_width,_fillchar) | 返回居中对齐,长度_width左右填充_fillchar的新字符串 |
startswith(self,x,_start,_end) | 检查是否以子串x开头,是返回True,否则返回False |
endswith() | 同startswith(),但检查结尾 |
isalpha(self) | 如果有字符且都是字母则True,否则False |
isdigit(self) | 如果只包含数字则True,否则Flase |
isalnum(self) | 如果有字符且都是字母数字则True,否则Flase |
isspace(self) | 如果只有空格则True,否则Flase |
... | ... |
7.列表与元组
7.1 列表
7.1.1 切片
a = [1,2,3,4,5,6,7,8,9,10,11,12,13]
b = a[0:3]
print("b:",b)
c = a[0:10:2]
print("c:",c)
d = a[-9:-1:2]
print("d:",d)
e = a[10:1:-1]
print("e:",e)
#运行结果
b: [1, 2, 3]
c: [1, 3, 5, 7, 9]
d: [5, 7, 9, 11]
e: [11, 10, 9, 8, 7, 6, 5, 4, 3]
7.1.2 函数
函数 | 说明 |
---|---|
index(self,x,_start,_end) | 返回指定数据x所在的第一个下标 |
count(self,x) | 返回指定数据x出现的次数 |
len(self) | 返回指定数据的列表个数 |
append(self,x) | 列表追加新元素x,可以是列表或集合 |
extend(self,x) | 接受列表x作为参数,该列表中每个元素添加进原有的列表中 |
insert(self,_index,x) | 指定下标_index位置新增数据x,该下标及下标后数据往后移动 |
pop(self,_index) | 删除指定下标_index数据,并返回该数据 |
remove(self,x) | 移除第一个匹配的数据x |
clear(self) | 清空列表 |
reverse(self) | 自带内置方法,数据反转 |
reversed(self) | 自带的类方法,对序列值的反向迭代器 返回反向迭代器 |
sort(self,key,reverse) | 排序,reverse默认升序(false),key为函数 |
copy(self) | 复制数据,浅拷贝,深拷贝用(copy.deepcopy()) |
... | ... |
append与extend函数:python list中append()与extend()用法-CSDN博客
7.3 in 使用
in: 判断是否存在,返回布尔值
语法:in 或 not in
a = [1,2,3,"hello","h"]
if "he" in a:
is_a1 = True
else:
is_a1 = False
if "1" not in a:
is_a2 = True
else:
is_a2 = False
if "h" in a:
is_a3 = True
else:
is_a3 = False
print("a1:",is_a1)
print("a2:",is_a2)
print("a3:",is_a3)
#运行结果
a1: False
a2: True
a3: True
7.4 del 使用
链接:python中del函数的用法总结_python del-CSDN博客
7.4.1 用法:
使用del 语句,删除到变量到对象的引用和变量名称本身
del语句作用在变量上,而不是作用在数据对象上
7.4.2 语法:del 目标
a = [1,2,3,4]
b = a
del a
print("b:",b)
a = [1,2,3,4]
del a[1:3]
print("a:",a)
#运行结果
b: [1, 2, 3, 4]
a: [1, 4]
7.2 元组
元组用法:python:元组【全用法】_python元组-CSDN博客
扩展:
a = (10,)
if a == 10:
print("a")
print("a:",a,type(a))
b = (10)
if b == 10:
print("b")
print("b:",b,type(b))
a = (1,2,3,4)
c = a[1:3]
print("c:",c)
print("查找:",a.index(1))
a = (1,2,3,[1,2,3],5)
a[3][1] = "self"
print(a)
try:
a[1] = "he"
except:
print("报错!不能修改")
#运行结果
a: (10,) <class 'tuple'>
b
b: 10 <class 'int'>
c: (2, 3)
查找: 0
(1, 2, 3, [1, 'self', 3], 5)
报错!不能修改
8.字典和集合
8.1 字典
8.1.1 概念
字典里的数据是以键值对的形式存在,字典内没有顺序,即不支持下标,查找方法即按照对应键查找即可
8.1.2 常见操作
1.增、改、删、查
a = {"a":1,"b":2}
#增
a["c"] = 3
print("增:",a)
#改
a["a"] = 2
print("改:",a)
#删
del a["c"]
#clear()也可以
print("删:",a)
#查
a1 = a["a"]
a2 = a.get("a")
print("a1:",a1)
print("a2:",a2)
#运行结果
增: {'a': 1, 'b': 2, 'c': 3}
改: {'a': 2, 'b': 2, 'c': 3}
删: {'a': 2, 'b': 2}
a1: 2
a2: 2
2.遍历
dict1 = {"name":"zhangshan","age":None,"gender":1}
for vle in dict1.values():
print("vle:",vle)
print()
for key1 in dict1.keys():
print("key1:",key1)
print()
for item1 in dict1.items():
print("item1:",item1)
#运行结果
vle: zhangshan
vle: None
vle: 1
key1: name
key1: age
key1: gender
item1: ('name', 'zhangshan')
item1: ('age', None)
item1: ('gender', 1)
8.2. 集合
8.1.2 概念
集合(set):存储元素不重复、无序数据类型,只支持成员操作赋、for循环迭代、枚举。
8.1.3 常见操作
1. 增、删、查
a = {}
b = set([1,2,3,4,5,1,1,1])
print("a:",a)
print("b:",b)
print()
#增
try:
a.add(1)
print("add1:", a)
except:
print("a.add报错,‘ dict’对象没有属性‘ add’")
b.add(1)
print("add2:",b)
b.update([6,2]) #追加序列
print("update:",b)
#删
b.remove(1) #删除集合中指定数据,不存在会报错
print("remove:",b)
b.discard(1) #删除集合中指定数据,不存在不会报错
print("discard:",b)
b.pop() #随机删除集合中的一个数据,并返回数据
print("pop:",b)
#运行结果
a: {}
b: {1, 2, 3, 4, 5}
a.add报错,‘ dict’对象没有属性‘ add’
add2: {1, 2, 3, 4, 5}
update: {1, 2, 3, 4, 5, 6}
remove: {2, 3, 4, 5, 6}
discard: {2, 3, 4, 5, 6}
pop: {3, 4, 5, 6}
#查
a = {1,2,3,4,5}
print(1 in a)
print(6 not in a)
#运行结果
True
True
9.运算符(容器)
运算符 | 支持的容器类型 |
---|---|
+ | 字符串、列表、元组 |
* | 字符串、列表、元组 |
in | 字符串、列表、元组、字典 |
not in | 字符串、列表、元组、字典 |
a = "1234"
b = "2222"
c = a+b
d = a*2
e = a in b
print("c:",c)
print("d:",d)
print("e:",e)
#运行结果
c: 12342222
d: 12341234
e: False
10.函数
1.函数
函数基础:python函数基础_python怎么算总分-CSDN博客
语法:def 函数名(参数): ...内容...
def abc(a,b):
return 1+1+a+b
def running(a,b=1):
"""
函数说明文档
:param a:
:param b:
:return:
"""
c = 2 #局部变量
__d = 3 #私有变量
while True:
if a == 1:
a += 1
continue
elif c-__d == -b:
c = abc(c,1)
yield 1
elif c -a == 3:
return 3
else:
running(a,__d)
if __name__ == '__main__':
n = 1 #全局变量
aaa = running(n,1)
print(next(aaa))
try:
print(next(aaa))
except:
print("没有值")
#运行结果
1
没有值
函数提高:Python中的函数(二)--提高篇_编写无参函数f1(),要求嵌套无参函数f2(),分别实现输出打印字符串"我是中国人!"和-CSDN博客
2.lambda函数
语法:lambda 参数列表 :表达式
a = 1
aa = lambda a:1+a
print(aa(a))
#运行结果
2
3.内置函数
print(abs(-1)) #绝对值
print(round(1.3),round(1.9)) #四舍五入
"""
map(func,lst),将lst中每个元素传入func函数中组成新的列表
"""
def func(a):
return a*2
print(map(func,[1,2,3,4])
"""
reduce(func,lst),其中func必须有两个参数。每次func计算的结果继续和序列的下一个元素做累积计算
"""
import functools
def func(a,b):
return a+b
print(functools.reduce(func,[1,2,3,4,5]))
"""
filter(func,lst)用于过滤序列,func函数用于判断,返回一个对象
"""
def func(n):
return n % 2 == 1:
print(list(filter(func,[1,2,3,4,5,6])))
def def1(a,b,f):
return f(a) + f(b)
a = def1(-1,-1,abs)
print(a)
#运行结果
1
1 2
[2,4,6,8,10]
15
[1, 3, 5]
2
11.文件操作
文件操作:python 文件操作,最全的一个(转)_python文件操作-CSDN博客
语法:
打开文件: open() 或者with open() as f
模式:
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
详细:Python文件操作详解_python 文件操作-CSDN博客
函数:
f.read(size):读取文件,size表示读取的数量
f.readline():读取文件的一行,当使用for循环时,会自动调用本函数
f.readlines():以列表的形式读取文件,一行为一个元素
f.write(): 文件写入
f.seek(_offset,_whence): 用来移动文件指针,参数:偏移量,起始位置(0:开头,1:当前,2:结尾)
os.listdir() 获取当前目录列表
os.getcwd() 获取当前目录
os.rename() 重命名
f.close() 关闭文件