查看关键字、函数、帮助信息
查看所有内置关键字:
import keyword
keyword.kwlist
查看内置函数下的内容(函数、方法、类、变量等),其中,以双下划线为首尾的为私有方法
>>> dir(str)
查看某方法的具体用法
>>> help(str.title)
2.1 注释
常用于调试。单行:#;多行:3个单/双引号括起来。
# 2.2 变量
命名规则
以字母(包括中日字符等)、下划线开头,由字母、下划线、数字组成,区分大小写
注意:不能用内置的关键字,会报错;不能用内置的函数名,会覆盖原函数
查看变量类型 type()
输出变量 print()
完整参数:print(a,b,…, sep = ‘|’, end = ‘’, file = ‘’)
多个变量用逗号分隔
sep:分隔符,默认值是空格
end:末位,默认为换行符\n
file:输出位置,默认为屏幕输出,也可指定文件,如f = open(‘123.txt’,‘w’)
# 2.3 数值类型
整型 Int 支持None值,允许为数值增加下划线作为分隔符,不影响值本身
浮点型 float 带小数点的值 带小数点的科学计数即使等于整数,也算float
例:5.12e2表示5.12*10²,等于512,
type(5.12e2)
>>><class 'float'>
复数:底部用j/J表示,例:a = 3 + 2j
复杂计算:import cmath——内置模块,可用于计算平方根等
# 2.4 字符串
标示
用一对单/双引号括起来,如果字符串含单/双引号,需要特殊处理:用不同的引号;用反斜线\对引号进行转义
拼接
- 挨着写直接输出,例:a = ‘a’ ‘b’
- 用拼接运算符+,例:a = ‘a’ + ‘b’
数值转字符串
- 内置的类型:str()
- 函数:repr()
区别:当内容本来就是字符串时,repr()依然转换,而str()不会
>>> a = 'a'
>>> str(a)
'a'
>>> repr(a)
"'a'"
input()
向用户生成提示——获取用户输入——存储为字符串
长字符串
三个单/双引号括起来;用【\】对换行符进行转义
原始字符串
格式:【r’字符串】
不会把【\】当成特殊字符,常用于输入文件地址
局限性:
- 要用【\】处理引号,输出时【\】也会输出
- 末尾不能是【\】——会把末位的引号转义
解决方法:拼接字符串
字符集
计算机并不能保存字符串,只能保存每个字符的编号。字符与编号的对照表称为字符集
发展
ASCII:256个编号,1字节,包含英文字符 + 数字 + 标点
Unicode:65535个编号,2字节,包含世界上所有书面语的字符
UTF-8属于Unicode字符集,各国也编有自己的字符集
应用
由字符串创建字节串对象的三种方法
- 对ASCII字符串,直接在前面加【b】
- python内置的bytes()方法
- 字符串的encode()方法
>>> b'abc'
>>> bytes('abc', encoding = 'utf-8') #此方法的encoding不可省略
>>> 'abc'.encode('utf-8')
结果都是:b'abc'
decode():将字节串解码成字符串
>>> b'abc'.decode()
'abc'
输出字节对应的编码
>>> b'abc'[0]
97
2.5 深入使用字符串
转义字符
退格符\b、换行符\n、回车符\r、制表符\t
字符串格式化
由三个部分构成:
- 包含占位符%s的格式化字符串
- 分隔符%
- 变量或表达式
- 有多个变量时,要用圆括号括起来,且占位符的数量要与变量的数量一致
例:
>>> a = 10
>>> "price = %s" % a
'price = 10'
常见的占位符(百分号+字母)
带符号的十进制整数:d,i
十进制的浮点数:f,F
repr():r
str():s
通过占位符设置变量输出时的格式
- 最小宽度:默认在变量左方/右方补空格,也可设置补0(仅对数值有效)
- 对齐方式:默认右对齐,也可设置左对齐
- 符号(仅对数值有效):默认不带符号,也可设置带符号
- 字符串输出时不补0,也不会带符号
三种设置可同时存在,例:【%-06i】
【%】为参数化符号,【i】表示变量为带符号的十进制整数
格式设置:【-】——左对齐,【0】——达不到最小宽度时,补0;【6】——最小宽度为6
在最小宽度后用【.】分隔,可设置浮点数的小数位数【%6.3f】或字符串的字符数【%6.3f】
>>> a = 10
>>> "price = %-06.1s" % a
'price = 1 '
2.5.3 索引 [ ]
左起:0,1,…
右起:-1,-2,…
提取单个字符:str[a]
提取多个字符:str[a:b],省略a或者b,可以截取到开头或结尾
in 判断字符串是否在另一字符串中
>>> 'a' in 'abc'
True
len() 获取字符串长度
min(),max() 提取最大、最小字符——判断依据为字符集中的编码顺序
2.5.4 大小写
str.title() 每个单词的首字母大写
str.lower() 全小写
str.upper() 全大写
2.5.5 删除空白
strip(),lstrip(),rstrip()依次为删除两侧空白、删除左侧空白、删除右侧空白
删除指定字符——当参数不为空时,不再删除空白,改为删除参数内的字符
注意:是删除参数内的每个字符,不是字符串
>>> 'i like dog'.strip('igo')
' like d'
2.5.6 查找与替换
查找:startswith(),endswith(),find()找不到返回【-1】;index()找不到引发ValueError错误
替换:replace(),maketrans()
replace(’原字符串‘, ‘目标字符串’, 替换次数),若省略次数参数,则替换全部字符串
maketrans(’原字符串‘, ‘目标字符串’) :创建翻译映射表(把字符串转化成编码并配对成字典)
>>> str.maketrans('ab','cd')
{97: 99, 98: 100}
2.5.7 分割与连接
分割split():可设置分割符(默认为空格)、分割次数(默认为分割所有)。输出结果为列表
>>> 'a / b / c d'.split('/',1)
['a ', ' b / c d']
连接join():可设置连接符号。参数是列表,输出字符串
>>> a = ['1','2']
>>> '&'.join(a)
'1&2'
连接运算符【*】
>>> 'ab'*3
'ababab'
2.6 运算符
赋值运算符【=】
弱类型语言python的变量有两个特点:无需声明即可使用——可直接赋值;数据类型随时可变
可连续赋值:a = b = c = 2
算术运算符
+ | - | * | / | // | ** | % |
---|---|---|---|---|---|---|
加 | 减 | 乘 | 除 | 整除 | 乘方 | 求余数 |
【+】和【*】也可用作字符串连接符
【-】也可用作求负运算符
【%】支持浮点数(存在精度丢失问题)——逻辑:被除数 - 除数的整数倍
运算逻辑:(-2.9) * (-2) = 5.8,5.2 - 5.8 = -0.6,由于精度丢失,只能获得近似值
>>> 5.2 % -2.9
-0.5999999999999996
【**】也可用于求开方
>>> 27**(1/3)
3.0
2.6.3 位运算符
涉及计算机底层存储(0与1),学用于底层开发,此处只介绍基本符号
& | | | ^ | ~ | << | >> |
---|---|---|---|---|---|
按位与 | 按位或 | 按位异或 | 按位取反 | 左位移 | 右位移 |
2.6.4 扩展后的赋值运算符
算术运算符 + 赋值运算符:【+=】【-=】【*=】【/=】【//=】【%=】【**=】
位运算符 + 赋值运算符:【&=】,【|=】,【^=】,【<<=】,【>>=】
2.6.5 索引运算符 [ ]
参数设置:单个字符、索引范围、索引范围 + 步长(相隔n个字符)
>>> a = 'abcdefg'
>>> a[1]
'b'
>>> a[1:6]
'bcdef'
>>> a[1:6:2]
'bdf'
2.6.6 比较运算符
【>】【<】【>=】【<=】【==】【!=】【is】,返回结果为bool类型:True(1),False(0)
【==】:比较两个变量的值是否相等
【is】:通过id()函数,比较两个对象的内存地址——同一块内存在同一时刻只能放一个对象
2.6.7 逻辑运算符
操作对象和返回值都是bool类型。对组合逻辑,可用圆括号保证运算顺序,并提高可读性
and:两个对象,两Ture为True,否则为False
or:两个对象,两False为False,否则为True
not:一个对象,not True为False,not False为True
2.6.8 三目运算符
【True结果】 if 【表达式】 else 【False结果】
True或False结果中均可包含多条语句,用【,】分隔,用圆括号括起来,输出结果为元组
>>> 'a' if 5<3 else 'b'
'b'
>>> ('a','b') if 5<3 else ('c','d')
('c', 'd')
此语句支持嵌套:A结果 if 表达式1 else ( B结果 if 表达式2 else C结果 )
2.6.9 in与not in
用于判断字符串是否包含特定子字符串,序列是否包含特定子序列
2.6.10 运算符的结合性、优先级
结合性:大多从左向右结合
特殊地:单目运算符(仅一个变量)、三目运算符、赋值运算符从右向左结合
优先级:不用考虑,用圆括号控制,不要将表达式写得过于复杂即可