str
# 字符从定义 使用单引号或双引号 没有区别# 单引号中能包含双引号# 双引号中能包含单引号name1 = 'zhangsan'name2 = "lishi"# 多行字符串 使用三个单引号或三个双引号msg = """name:zhangsanage:22"""
strip
移除字符串只有两边空白(空格,制表符,换行符)
lstrip: 去除左边的空白
rstrip: 去除右边的空白
username = " \t root \t\n"username = username.strip() # username = "root"

split
将字符串按指定符号分割成列表,默认使用空格分割
names = "zhangsan;lishi;wangwu"names.split(";") # ["zhangsan", "lishi", "wangwu"]st = "hello world"st.split() # ["hello", "world"]
index
查找子字符串在字符串中的第一个位置
>>> st = "hello world">>> st.index('h')0>>> st.index('l')2
isdigit
判断字符串是否是数字
>>> '123'.isdigit()True>>>'123b'.isdigit()False
count
统计字符串中子字符串的个数
>>> s = "abcdeabseagce">>> s.count('ab')2
find
查找字符串中子字符串第一次出现的位置
rfind :从右边开始查找
>>> s = "abcdeabseagce">>> s.find('e')4>>> s.rfind('e')12
lower
大写转小写
upper
小写转大写
replace
字符串反转
format
格式化字符串
format
format_map
>>> "hello {0}, {1}".format('jin', 'hehe')'hello jin, hehe'>>> "hello {name}, {info}".format(name='jin', info='hehe')'hello jin, hehe'>>> "hello {name}, {info}".format_map({'name':'jin', 'info':'hehe'})'hello jin, hehe'
len()
获取字符串长度
st = "hello world"len(st) # 11
切片
str[起始位置:结束位置:步长]起始位置:包括当前的这位结束位置:不包括当前这位步长:间隔数,负数 从右往左
>>> names = "zhangsan;lishi;wangwu">>> names[:8] # 等同 names[0:8]'zhangsan'>>> names[9:14]'lishi'>>> name[-6:]'wangwu'>>> names[::2]'zaga;ih;agu'>>> names[13:8:-1]'ihsil' # lishi 倒过来
其他方法
| 方法 | 说明 |
|---|---|
| capitalize | 首字母大写 |
| casefold | 大写转小写 |
| center | 将字符居中,不够部分中指定字符补充 |
| ljust | 左对齐不够用指定字符串补充 |
| rjust | 右对齐不够用指定字符串补充 |
| endwith | 以什么结尾 |
| expandtabs | 设置tab空格长度 |
| isalnum | 是否是字母或数字 |
| isalpha | 是否是字母 |
| isidentifier | 是否是合法的关键字(变量名) |
| islower | 是否是小写 |
| isupper | 是否是大写 |
| isdecimal | 是否是正整数 |
| isnumeric | 判断是否是数字(中文数字、罗马数字等) |
| isspace | 是否是空格 |
| istitle | 是否是英文标题(首字母大写) |
| swapcase | 大小写互换 |
| translate | 字符翻译 |
| zfill | 补零 |
bytes 字节类型
- 在python2中str类型即为bytes类型(py2中bytes类型),Unicode为独立的Unicode类型
- 在python3中str类型为Unicode类型(py2中Unicode类型),bytes为独立的bytes类型
字符编码
python2
python2中如果不声明编码则默认是ASCII编码
声明编码
# -*- coding: <encoding> -*-
编码转换
# 将gbk转成utf-8name = "中国"# 1. 先将gbk 转成 Unicodeun_name = name.decode('gbk')# 2. 再将Unicode 转成 utf-8utf8_name = un_name.encode('utf-8')
python3
- python3中默认编码为Unicode
- py3中encode为转换成指定编码的types
文件操作
文件操作方法
| 方法名 | 功能 | 备注 |
|---|---|---|
| open() | 打开文件 | |
| close() | 关闭文件 | |
| read(n) | 读取整个文件内容 | n:读取指定字符(字节)内容 |
| readline() | 读取一行 | |
| readlines() | 读取所有行,返回list | |
| write() | 将内容写入文件 | |
| flush() | 刷新缓冲区,将缓冲区中内容写入文件 | |
| seek(n,m) | 将文件指针移动到指定位置n(字节) | m:0 默认 光标从开始位置开始;(只能是b模式下)2 指针从末尾开始 |
| tell() | 返回文件指针位置 | |
| writable() | 判断文件是否有写权限 | |
| readable() | 判断文件是否有读权限 |
模式
| 模式 | 说明 | 打开 | 读位置 | 写位置 |
|---|---|---|---|---|
| r | 读模式 | 文件不存在报错 | 指针位置开始读(默认开头) | - |
| w | 写模式 | 文件不存在新建,文件存在覆盖 | - | 开头写 |
| a | 追加模式 | 文件不存在新建,文件存在打开 | - | 追加写(末尾) |
| r+ | 读写模式 | 文件不存在报错 | 指针位置(默认开头) | 指针位置(默认开头) |
| w+ | 读写模式 | 文件不存在新建,文件存在覆盖 | 指针位置(默认开头) | 指针位置(默认开头) |
| a+ | 读写模式 | 文件不存在新建,文件存在打开 | 指针位置(默认末尾) | 在末尾添加 |
| b | 二进制模式 | - | - | - |
自动关闭文件
with open(filepath) as f:# ... 具体文件操作# with 代码块结束自动关闭文件
