Python语法
0.Pycharm文件模板
# _*_ coding : UTF-8 _*_
# @Time : ${DATE} ${TIME}
# @Author : LinFeng
# @File : ${NAME}
# @Project : ${PROJECT_NAME}
1.注释
单行 #
多行 ''' '''
2.变量
2.1 变量类型
-
number
- int(
long) - float(
double) - complex
- int(
-
boolean
- True
- False
-
string(
char) -
list(列表) 数组?
[]
-
tuple(元组)
()
-
dict(字典) 结构体?
{key:value}
2.2 查看变量类型
type()
2.3 命名规范
大小驼峰+下划线命名法
2.4 类型转换
- int()
- float()
- bool()
- str()
3.运算符
3.1 运算符类型
加减乘除 +-*/
整数除 //
取余 %
指数 **
多变量赋值 d,e,f = 1,2,3
逻辑运算符 and与(&&)or或(||)
4.输入输出
4.1 输出
%s 字符串
%d 整数
格式化输出
print('我的名字是%s,我的年龄是%d' % (name,age))
4.2 输入
vaule = input('请输入xxx:')
5.流程控制
5.1 if
不要漏:
if value > 18:
print('xxxx')
elif value >30:
print("aaaaa")
else:
print('ddd')
5.2 for
for i in range(5) # 0-4
for i in range(5,10) # 左闭右开,5-9
for i in range(5,10,3) # (起始,结束,步长)
6.字符串操作
- 获取长度:
len
- 查找:
find
- 判断:
startswith,endswith
- 出现次数:
count
- 替换内容:
replace
- 切割字符串:
split
- 修改大小写:
upper,lower
- 去空格:
strip
- 拼接:
join
7.列表操作
7.1 添加
append(object)
追加insert(index, object)
插入(注意index值为插入值的下标)extend
(Iterable迭代)似乎没什么用?
7.2 修改
通过下标[]=
7.3 查找
- in
if food in foodList:
print("ssss")
else :
print("3333")
- not in
if food not in foodList:
print("ssss")
else :
print("3333")
7.4 删除
- del 根据下标来删除
del a_list[3]
- pop() 删除最后一个元素
a_list.pop()
- remove() 根据值删除
a_list.remove("ffff")
8.元组操作
- 元组元素不可以被修改!!!!
- 只有一个元素的元组需要在唯一的元素后面写,
9.切片
-
语法
注意!!!仍然是左闭右开区间
- [起始:结束]
- [起始:结束:步长]
- [起始:]
- [:结束]
10.字典操作
10.1 定义&访问
person = {'name':'李治','score':100000000000000}
# 访问
print(person['name'])
print(person['score'])
#######################
# print(person.score) 寄,达咩
#######################
## but
print(person.get('score')) #ojbk
#######################
# 关于报错
print(person['sex']) # keyerror
print(person.get('sex')) # None
10.2 修改
person['name'] = '法外狂徒'
10.3 添加
同修改,如果存在就修改,不存在就添加
person['name'] = '法外狂徒'
person['sex'] = 'We do not kown'
10.4 删除
- del
del person['name'] # 删除key
del person # 删除字典对象
- clear
person.clear() # 清空对象key,保留字典结构
10.5 遍历
# 1.遍历key
for key in person.keys():
print(key)
# 2.遍历value
for value in person.values():
print(value)
# 3.遍历key&&value
for key,value in person.items():
print(key,value)
# 4.遍历项,每个项实际上是元组
for item in person.items():
print(item)
11.函数
# 语法
def <函数名>(参数表):
print("李治牛逼!!!!!!")
print("李治我大哥!!!!!!")
return <值>
################################
# 传参
def sum(a,b)
# 1.位置传参
sum(11,55)
# 2.关键字传参
sum(b=11,a=55)
12.文件
12.1 打开&关闭
####### 打开 #######
fp = open('text.txt','w)
####### 写 #######
fp.write('hello\n'*3)
####### 读 #######
# 读一字节
content = fp.read()
# 读一行
content = fp.readline()
# 读完,以行分界组成列表
content = fp。readlines()
####### 关闭 #######
fp.close()
-
文件路径
-
绝对路径
-
相对路径
text.txt
当前文件夹./text.txt
当前文件夹../text.txt
上一级文件夹demo/text.txt
demo文件夹
-
-
打开模式
模式 可做操作 若文件不存在 是否覆盖文件原来内容 r 只读 报错 —— r+ 可读、可写 报错 是 w 只写 创建 是 w+ 可读、可写 创建 是 a 只写 创建 否,追加写 a+ 可读、可写 创建 否,追加写
12.2 序列化与反序列化
-
定义
-
序列化:对象->字节序列
-
反序列化:字节序列->对象
使用JSON模块实现
-
-
序列化
import json
fp = open('text.txt','w')
name_list = ['zs','lz']
# dumps()
names = json.dumps(name_list)
fp.write(names)
# dump()
json.dump(name_list,fp)
fp.close()
反序列化
import json
fp = open('text.txt','r')
# loads()
content = fp.read()
result = json.loads(content)
# load()
result = json.load(fp)
不加s的都🐂
13.异常
try:
fp = oprn('text.txt','r')
fp.read()
except FileNotFoundError:
print('世界毁灭了!!!!!!')