str

  1. # 字符从定义 使用单引号或双引号 没有区别
  2. # 单引号中能包含双引号
  3. # 双引号中能包含单引号
  4. name1 = 'zhangsan'
  5. name2 = "lishi"
  6. # 多行字符串 使用三个单引号或三个双引号
  7. msg = """
  8. name:zhangsan
  9. age:22
  10. """

strip

移除字符串只有两边空白(空格,制表符,换行符)
lstrip: 去除左边的空白
rstrip: 去除右边的空白

  1. username = " \t root \t\n"
  2. username = username.strip() # username = "root"

Python基础四 - 图1

split

将字符串按指定符号分割成列表,默认使用空格分割

  1. names = "zhangsan;lishi;wangwu"
  2. names.split(";") # ["zhangsan", "lishi", "wangwu"]
  3. st = "hello world"
  4. st.split() # ["hello", "world"]

index

查找子字符串在字符串中的第一个位置

  1. >>> st = "hello world"
  2. >>> st.index('h')
  3. 0
  4. >>> st.index('l')
  5. 2

isdigit

判断字符串是否是数字

  1. >>> '123'.isdigit()
  2. True
  3. >>>'123b'.isdigit()
  4. False

count

统计字符串中子字符串的个数

  1. >>> s = "abcdeabseagce"
  2. >>> s.count('ab')
  3. 2

find

查找字符串中子字符串第一次出现的位置
rfind :从右边开始查找

  1. >>> s = "abcdeabseagce"
  2. >>> s.find('e')
  3. 4
  4. >>> s.rfind('e')
  5. 12

lower

大写转小写

upper

小写转大写

replace

字符串反转

format

格式化字符串
format
format_map

  1. >>> "hello {0}, {1}".format('jin', 'hehe')
  2. 'hello jin, hehe'
  3. >>> "hello {name}, {info}".format(name='jin', info='hehe')
  4. 'hello jin, hehe'
  5. >>> "hello {name}, {info}".format_map({'name':'jin', 'info':'hehe'})
  6. 'hello jin, hehe'

len()

获取字符串长度

  1. st = "hello world"
  2. len(st) # 11

切片

  1. str[起始位置:结束位置:步长]
  2. 起始位置:包括当前的这位
  3. 结束位置:不包括当前这位
  4. 步长:间隔数,负数 从右往左
  1. >>> names = "zhangsan;lishi;wangwu"
  2. >>> names[:8] # 等同 names[0:8]
  3. 'zhangsan'
  4. >>> names[9:14]
  5. 'lishi'
  6. >>> name[-6:]
  7. 'wangwu'
  8. >>> names[::2]
  9. 'zaga;ih;agu'
  10. >>> names[13:8:-1]
  11. '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编码
声明编码

  1. # -*- coding: <encoding> -*-

编码转换

  1. # 将gbk转成utf-8
  2. name = "中国"
  3. # 1. 先将gbk 转成 Unicode
  4. un_name = name.decode('gbk')
  5. # 2. 再将Unicode 转成 utf-8
  6. utf8_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 二进制模式 - - -

自动关闭文件

  1. with open(filepath) as f:
  2. # ... 具体文件操作
  3. # with 代码块结束自动关闭文件