一、Python介绍
python创始人为:吉多·范罗苏姆(龟叔)。
1989年开发python
龟叔: 2005——2012年就职谷歌
2013——至今就职Dropbox
python崇尚优美、清晰、简单
语言分为编译型语言和解释型语言
编译型:把程序全部编译成二进制之后进行运行,速度快
解释型:在执行程序时,一条一条解释成二进制,速度慢
python是解释型动态强类型定义语言
python优点:优雅 明确 简单
开发效率高
高级语言 可移植性 可扩展性 可嵌入性
python缺点:速度慢 代码不能加密 线程不能利用多CPU
二、基本编码:
ascii 65——90是A-Z
97——122是a-z
256
8bit代表1字节一个字符
unicode 16bit代表2字节一个字符 32bit代表品4字节一个字符
utf-8 英文8bit一个字节一个字符
欧洲 16bit两个字节一个字符
亚洲 24bit三个字节一个字符
gbk 英文 8bit一字节一字符
中文 16bit两字节一字符
8bit 1bytes
1024bytes 1kb
1024kb 1mb
1024mb 1gb
1024gb 1tb
三、python必会知识:
python2中文件开头要写如下抬头,告知用utf-8编码格式进行操作
-*- coding: utf-8 -*-
变量的定义方法:字母数字下划线的任意组合,不能以数字开头,
具有可描述性,不能是python中的关键字
不能是中文,不能是拼音,不能太长
常量的定义方法:全大写,python中没有常量
交互:
input接收的全是str
name = input('请输入姓名:')
print(name)
int型
32位机器: -2**31 - 2**31-1 -2147483648~2147483647
64位机器: -2**63 - 2**63-1 -9223372036854775808~9223372036854775807
long型
python3中不再有long型,只有int
str
单引号 双引号 三引号都行 除了
msg = '''
123
456
789
'''
print(msg)
字符串只能进行相乘相加运算
a = '1'
print(a*3)
print(a+a)
布尔值
print(3>5)
print(5<6)
格式化输出
%s %d
算术运算:
+ - * / % **
//返回商的整数部分
比较运算:
== != <> > < >= <=
赋值运算
= += -= *= /= %= **= //=
逻辑运算
and or not
例子:
a = 4
b = 5
print(a and b)
print(a or b)
()>not>and>or
print(3>4 or 4<3 and 1==1)
print(1 < 2 and 3 < 4 or 1>2 )
print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1)
print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)
print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)
print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)
print(8 or 4)
print(0 and 3)
print(0 or 4 and 3 or 7 or 9 and 6)
诀窍:
x or y , x为真,值就是x,x为假,值是y;
x and y, x为真,值是y,x为假,值是x。
条件语句
if
if else
if elif
if elif else
while True or False
条件终止语句:
break 结束循环 执行循环体后面的语句
continue 结束本次循环,继续执行下次循环
while else 中途被break打断不执行else 否则执行else
四、基本数据类型:
数字 字符串 列表 元组 字典 集合
字符串操作方法
capitalize 首字母大写
center 居中
upper 全大写
lower 全小写
swapcase 大小写反转
title() 非字母隔开的每个单词首字母大写
startswith 判断以什么开头
endswith 判断以什么结尾
index 通过元素找索引 返回报错
find 通过元素找索引 返回-1
strip 去除前后端的空格换行制表符
split 以什么分割 默认空格分割
join 列表转字符串 list -----> str 使用方式:'分隔符'.join(list)
replace 替代 replace('old','new')
len计算字符串长度
count计算字符串中某个字符出现的次数count('xxx')
格式化输出(三种方式)(例子):
msg = '我叫{},今年{},爱好{}'.format('123', '456', '789')
msg2 = '我叫{0},今年{1},爱好{2},姓名{0}'.format('123', '456', '789')
msg3 = '我叫{name},今年{age},爱好{hobby}'.format(name='123', age='456', hobby='789')
str.isalnum() 字符串由字母数字组成
str.isalpha() 字符串由字母组成
str.isdigit() 字符串由数字组成
元组
只读列表 只能查询不能修改
列表list操作方法
增
insert('索引','增加元素')
append(元素) 最后增
extend(元素) 迭代增加
删
pop(索引) 按照位置删除
del list[:] 按照位置删除 可切片删除
remove(元素) 按照元素删除
clear() 清空列表
改
list[索引] 索引改
list[:] 切片改 迭代改
查
list[:]切片查
for循环查
list其他操作:
len个数
count('元素') 计算元素在列表中出现个数
index(元素) 计算元素第一个出现在列表的索引位置
sort从小到大
sort(reverse = True)从大到小
reverse 列表反向存放
dict字典操作方法
字典的key 可哈希不可变 比如:数字 字符串 元组
增
setdefault 有键无值值为none 存在键值对不会更改和覆盖
删
del 删除
del dict[键] 根据键删除键值对
pop(key)
popitem() 随机删除 py3中默认删掉最后一个 返回值为元组
clear 清空字典
改
update 两个字典更新 有则覆盖无则添加
查
dict[键] 根据键查
get(键,'默认返回值可改')
其他操作
dic = {1:'2',2:'3'}
item = dic.items()
print(item,type(item))
keys = dic.keys()
print(keys,type(keys))
values = dic.values()
print(values,type(values))
字典循环
for key in dic:
print(key)
for item in dic.items():
print(item)
for k,v in dic.items():
print(k,v)
for循环
用户按照顺序循环可迭代对象(list、字典等都是可迭代对象)的内容
enumerate枚举
li = ['Neal','Jack','Alex',]
for i in enumerate(li):
print(i)
for index,name in enumerate(li,1):
print(index,name)
range 指定范围,生成指定数字
range(int可以增加步长)
集合
无序不重发,元素可哈希(不可变),集合本身不可哈希(可变)
特点:去重 关系测试
去重例子: l = [1,1,2,2,3,3]
print(set(l))
最终结果为:[1,2,3]
增
.add 普通增加
update 迭代着增加
删
remove(元素) 删除一个元素
pop 随机删除
clear 清空集合
del 删除
其他操作
& intersection 交集
| union 并集
- difference 差集
^ symmetric_difference 反交集
< issubset 子集
> issuperset 超集
frozenset 冻结 把集合变为不可变类型
深浅copy
浅copy:第一层变,第二层级更内层指向同一内存地址,变就变 切片是浅copy
deepcopy深copy:全部指向不同的内存地址,互相独立
五、python文件操作
第一种方式(必须要关闭文件f.close)
f = open('文件路径',encoding='utf-8',mode='模式,默认读(r)模式')
f.read() 通过文件句柄操作文件
f.close 关闭文件
第二种方式(无需太过关注是否要关闭文件)
with open('文件路径',encoding='utf-8',mode='模式,默认读(r)模式') as f:
f.read() 通过文件句柄操作文件
文件编码
文件打开方式的编码格式如果不指定,
默认是用当前操作系统环境下的编码方式去打开文件
windows------gbk
linux-------utf-8
文件打开模式
r 只读模式
w 只写模式
a 追加写模式
rb、wb、ab b模式是字节操作方式
r+ 读写
w+ 写读
a+ 写读
r+b 读写
w+b 写读
a+b 写读
电脑文件内容的修改原理
打开原文件
创建新文件
把原文件内容修改之后的内容写入新文件
把原文件删除
把新文件重命名为原文件的名字