字符串 string
-
字符串操作
-
字符串的内容几乎可以包含任何字符,英文字符也行,中文字符也行。
-
字符串既可用单引号括起来,也可用双引号括起来
-
假如字符串内容中包含了单引号,则可以使用双引号将字符串括起来
-
语法内涵双引号,用单引号括,内涵单引号,用双引号括,否则语法错误
-
如果内包含单引号,双引号 使用反斜线 \ 在要转义引号前使用
-
-
拼接字符串
-
长字符串可以使用三引号括起来
-
字符串紧挨在一起,python会自动拼接,如果使用逗号会变成两个字符串,但是不能真正用于拼接字符串。
-
+ 号来拼接字符串运算符
-
整数转换字符串:str()是python内置类型 repr()是函数,如果拼接整数跟字符串需要先把整数转换成字符串 str()或repr()
-
repr()另一种功能:输出会以python表达式形式来表示值 交互式模式下python会自动使用repr()函数处理该变量或表达式。
-
-
允许使用 \ 来转义长字符串来换行,转义之后不会影响输出 对于个别算法也可以转行
-
原始字符串 r :由于 \ 在python中特殊的,比如路径python会把看作 \ 来处理,可以在字符串前面加入r,python就不会把反斜线当成特殊字符。 或使用 \
-
原始字符串包含的引号,同样需要转义
-
-
-
-
字符串的内容几乎可以包含任何字符,英文字符也行,中文字符也行。
-
字符串既可用单引号括起来,也可用双引号括起来
-
假如字符串内容中包含了单引号,则可以使用双引号将字符串括起来
-
语法内涵双引号,用单引号括,内涵单引号,用双引号括,否则语法错误
-
如果内包含单引号,双引号 使用反斜线 \ 在要转义引号前使用
-
-
input()函数
-
用户输入 input()
-
input()获取用户输入 input函数返回的总是字符串
-
python2 用raw_input()来获取用户输入
-
-
-
-
byets转换
-
bytes类型及用法
- bytes 类型,用于代表字节串,字节串(bytes)由多个字节组成,以字节为单位进行操作。不可变序列
-
通过b前缀指定hello是bytes类型的值
-
调用bytes方法将字符串转成bytes对象 encoding = 'utf-8’指定编码格式
-
利用encode字符编码直接把字符串转成bytes对象
-
利用decode字符编码直接把bytes对象转成str对象
-
-
python转义字符及用法
-
\b 退格符,\n 换行符,\r 回车符,\t 制表符," 双引号,’ 单引号,\ 反斜线
-
\n 换行
-
\t 制表符 (一个\t相等于空格)
-
-
-
拼接字符串
-
长字符串可以使用三引号括起来
-
字符串紧挨在一起,python会自动拼接,如果使用逗号会变成两个字符串,但是不能真正用于拼接字符串。
-
+ 号来拼接字符串运算符
-
-
整数转换字符串
-
str()是python内置类型 repr()是函数,如果拼接整数跟字符串需要先把整数转换成字符串 str()或repr()
-
repr()另一种功能:输出会以python表达式形式来表示值 交互式模式下python会自动使用repr()函数处理该变量或表达式。
-
允许使用 \ 来转义长字符串来换行,转义之后不会影响输出 对于个别算法也可以转行
-
原始字符串 r :由于 \ 在python中特殊的,比如路径python会把看作 \ 来处理,可以在字符串前面加入r,python就不会把反斜线当成特殊字符。 或使用 \
-
原始字符串包含的引号,同样需要转义
-
-
-
python格式化字符串 %s
-
%s 逻辑:首先格式化字符串(相当于字符串模板),该格式化字符串中包含一个“%s”占位符,它会被第三部分的变量或表达式的值代替;第二部分固定使用“%”作为分隔符,称为转换说明符。
-
作用:作用相当于一个占位符,它会被后面的变量或表达式的值代替。“%s”指定将变量或值使用 str() 函数转换为字符串。
-
如果格式化字符串中包含多个“%s”占位符,应该提供与值对应的多个变量,并使用圆括号将这些变量括起来。
-
-
转换说明符:
-
在分隔符%后面可以指定字符串最小宽度为整型数
-
默认情况,转换出来的字符串总是右对齐的,不够宽度时左边补充空格
- -:指定左对齐。
- +:表示数值总要带着符号(正数带“+”,负数带“-”)。
- 0:表示不补充空格,而是补充 0。
- 可以同时存在
-
符号:
- d, i:转换为带符号的十进制形式的整数
- o:转换为带符号的八进制形式的整数
- x:转换为带符号的十六进制形式的整数
- X:转换为带符号的十六进制形式的整数
- e:转化为科学计数法表示的浮点数(e 小写)
- E:转化为科学计数法表示的浮点数(E 大写)
- f,F:转化为十进制形式的浮点数
- g:智能选择使用 f 或 e 格式
- G:智能选择使用 F 或 E 格式
- C:转换为单字符(只接受整数或单字符字符串)
- r:使用 repr() 将变量或表达式转换为字符串
- s:使用 str() 将变量或表达式转换为字符串
-
演示:
-
- + 0
-
指定小数点后的数字位数:如果转换的是字符串,Python 允许指定转换后的字符串的最大字符数。这个标志被称为精度值10
-
-
-
-
python截取字符串(索引)
-
索引单个字符:
-
Python 字符串直接在方括号([])中使用索引即可获取对应的字符,字符串中第一个字符的索引为 0、第二个字符的索引为 1
-
倒着获取索引:最后一个字符的索引为 -1,倒数第二个字符的索引为 -2······依此类推。
-
-
-
截取范围内的字符:包括开头不包括结尾
-
使用范围来获取字符串的中间“一段”(被称为子串)
-
如果索引带-1 -1位置不会被取出,可以写作([起始位置:])
-
允许省略起始索引或结束索引。如果省略起始索引,相当于从字符串开始处开始截取;如果省略结束索引,相当于截取到字符串的结束处
-
倒着取范围从的大数到小数([-6:-3])
-
-
-
-
全局内置的 min() 和 max() 函数获取字符串中最小字符和最大字符。
-
检测字符串中占内存的字节。
-
-
获取字符串的长度,则可调用 Python 内置的 len() 函数。
-
可以指定范围检测
-
-
Python字符串大小写转换(3种)函数及用法
-
字符串由内建的 str 类代表
-
帮助查看教程:
-
dir():列出指定类或模块包含的全部内容(包括函数、方法、类、变量等),以“”开头、“”结尾的方法被约定成私有方法,不希望被外部直接调用
-
help():查看某个函数或方法的帮助文档。查看方法:help(str.lower)
-
在 str 类中与大小写常用方法:
-
title():将每个单词的首字母改为大写。
-
lower():将整个字符串改为小写。
-
upper():将整个字符串改为大写
-
-
-
-
Python去除字符串中空格(删除指定字符)的3种方法
-
str常用的方法来删除空白:
-
strip():删除字符串前后的空白。
-
lstrip():删除字符串前面(左边)的空白。
-
rstrip():删除字符串后面(右边)的空白。
-
-
删除字符串前后指定宇符:(警告如果两边有空格无法删掉字符,首先要去除空)
-
-
Python字符串操作(查找,替换,分割和连接)方法及其使用
-
判断:
-
startswith():判断字符串是否以指定子串开头,包含返回True,不包含返回False。
-
endswith():判断字符串是否以指定子串结尾,包含返回True,不包含返回False。
-
-
查询:
-
find():查找指定子串在字符串中出现的位置,如果查找的指定字串有多个返回第一个位置。如果没有找到指定子串,则返回 -1。 也可以在参数指定位置 s.find(‘n’,3)
-
index():查找指定子串在字符串中出现的位置,如果没有找到指定子串,则引发 ValueError 错误。
-
-
替换:
-
replace():使用指定子串替换字符串中的目标子串。可以指定替换几个该字串。
-
translate():使用指定的翻译映射表(所有字符编码)对字符串执行替换。
-
Python 为由类提供了一个 maketrans() 方法,通过该方法可以非常方便地创建翻译映射表。
-
-
-
分割:
-
str 的 split() 和 join() 方法互为逆操作。split() 方法用于将字符串分割成多个短语,而 join() 方法则用于将多个短语连接成字符串。
-
split():将字符串按指定分割符分割成多个短语。
-
根据空格来分割(可指定分割几个)
-
根据.点来分割(可指定分割几个)
-
-
-
连接:
-
str 的 split() 和 join() 方法互为逆操作。split() 方法用于将字符串分割成多个短语,而 join() 方法则用于将多个短语连接成字符串。
-
join():将多个短语连接成字符串。(前提是必须配合split来使用)
-
-
-
Python 身份运算符
-
is 和 not is 运算符可以判断两个对象是否相同
-
Python 成员运算符
-
in 运算符判断是否包含某个子串,包含返回True,不包含返回False not in不在 包含返回False,不包含返回True
-
Python isdigit() 方法检测字符串是否只由数字组成。
-
判断字符串是否包含元素
-
not in 判断字符串不包含该元素
-
-
Python赋值运算符
-
赋值运算符用于为变量或常量指定值,Python 使用“=”作为赋值运算符。通常,使用赋值运算符将表达式的值赋给另一个变量。
-
也可使用赋值运算利将一个变量的值赋给另一个变量
-
Python 的赋值表达式是有值的,赋值表达式的值就是被赋的值,因此 Python 支持连续赋值
-
赋值运算符还可用于将表达式的值赋给变量。
-
Python 的赋值运算符也支持同时对多个变量赋多个值。赋值运算符还可与其他运算符结合
-
程序把多个值赋给一个变量时,Python 会自动将多个值封装成元组。这种功能被称为序列封包。
-
程序允许将序列(元组或列表等)直接赋值给多个变量,此时序列的各元素会被依次赋值给每个变量(要求序列的元素个数和变量个数相等)。这种功能被称为序列解包。
-
同时把n个数据赋值给一个变量,是元组类型,叫做序列封包。
-
再创建多个跟n相对应的变量,并打印会看见程序自动把n个数据分配给相对应的变量叫序列解包。
-
元组:
-
列表:
-
-
可以实现交换变量的值:
-
在序列解包时可以解出部分变量,剩下的依然使用列表保存变量。
-
Python 允许在左边被赋值的变量之前添加“*”,那么该变量就代表一个列表,可以保存多个集合元素。
-
-
-
-
-
Python算数运算符
- 扩展后的赋值运算符:
- +=:对于x += y,即对应于x = x + y。
- -=:对于x -= y,即对应于x = x - y。
- *=:对于x *= y,即对应于x = x * y。
- /=:对于x /= y,即对应于x = x / y。
- //=:对于x //= y,即对应于x = x // y。
- %=:对于x %= y,即对应于 x = x % y。
- **=:对于x = y,即对应于x=xy。
- &=:对于x&=y,即对应于x = x & y。
- |=:对于x |= y,即对应于x = x | y。
- ^=:对于x ^= y,即对应于x = x ^ y 。
- <<=:对于x <<= y,即对应于x = x << y。
- >>=:对于x >>= y,即对应于x = x >> y。
- 扩展后的赋值运算符:
-
Python算术运算符
-
Python 支持所有的基本算术运算符,这些算术运算符用于执行基本的数学运算,如加、减、乘、除和求余等
-
+:加法运算符
- 两个数相加
- 拼接字符串(连接运算符)
-
-:减法运算符
-
两个数相减
-
变量可以求负 可以负负得正
-
-
*:乘法运算符
-
两个数相乘
-
同时可以复制多个字符串连接起来
-
-
/ 或 //:除法运算符
- “/”表示普通除法,使用它除出来的结果与平常数学计算的结果是相同的(即除不尽时,会产生小数部分)
- “//”表示整除,使用它除出来的结果只有整数部分,小数部分将会被舍弃
- 0可以做除数,但是0不可以被整出否则报错:ZeroDivisionError
-
%:求余运算符
- 不要求求余运算符的两个操作数都是整数,支持对浮点数求余。
- 求余运算的结果不一定总是整数,它是使用第一个操作数来除以第二个操作数,得到一个整除的结果后剩下的值就是余数
- 求余运算的第二个操作数不能是 0,否则程序会报出 ZeroDivisionError 错误。
-
**:乘方运算符
- “”作为乘方运算符,这是一个使用非常方便的运算符。由于开方其实是乘方的逆运算,因此实际上使用“”也可进行开方运算
-
-
Python位运算符
- Python 支持的位运算符:
- &:按位与。
- |:按位或。
- ^:按位异或。
- ~:按位取反。
- <<:左位移运算符。
- >>:右位移运算符。
- Python 支持的位运算符:
-
Python bool类型
-
真(对),Python 使用 True 来代表,假(错),Python 使用 False 来代表。
-
比较运算符用于判断两个值(这两个值既可以是变量,也可以是常量,还可以是表达式)之间的大小,比较运算的结果是 bool 值(True 代表真,False 代表假)。
- 常量就是 程序运行中 不可以改变的量(数据)
- 变量就是 程序运行中 可以改变的量(数据)
- 运算符和运算对象组成的,单独的一个运算对象(常量/变量)也可以叫做表达式
-
实际上 True 也可被当成整数 1 使用,False 也可被当成整数 0 使用。也就是说,True、False 两个值完全可以参与各种算术运算。
-
-
Python 比较运算符(关系运算符)
-
Python 支持的比较运算符
-
>:大于,如果运算符前面的值大于后面的值,则返回 True;否则返回 False。
-
>=:大于或等于,如果运算符前面的值大于或等于后面的值,则返回 True;否则返回 False。
-
<:小于,如果运算符前面的值小于后面的值,则返回 True;否则返回 False。
-
<=:小于或等于,如果运算符前面的值小于或等于后面的值,则返回 True;否则返回 False。
-
==:等于,如果运算符前面的值等于后面的值,则返回 True;否则返回 False。
-
!=:不等于,如果运算符前面的值不等于后面的值,则返回 True;否则返回 False。
-
is:判断两个变量所引用的对象是否相同,如果相同则返回 True。 is 要求两个变量引用同一个对象
-
引用同一个对象
-
-
is not:判断两个变量所引用的对象是否不相同,如果不相同则返回 True。
-
-
通过 id() 函数计算两个对象时返回相同的地址。
-
-
Python逻辑运算符
-
and:与,前后两个操作数必须都是 True 才返回 True;否则返回 False。
-
or:或,只要两个操作数中有一个是 True,就可以运回 True;否则返回 False;
- 为了保证逻辑运算的顺序,且有括号和没括号的输出结果是一样的,建议使用圆括号来提高程序的可读性。
-
not:非,只需要一个操作数,如果操作数为 True,则返回 False;如果操作数为 False,则返回 True。
-
-
Python三目运算符(三元运算符)
-
三目运算符的 if 语句的语法格式:
-
True_statements if expression else False_statements
-
三目运算符的规则是:先对逻辑表达式 expression 求值,如果逻辑表达式返回 True,则执行并返回 True_statements 的值;如果逻辑表达式返回 False,则执行并返回 False_statements 的值
-
两种方式:
-
正规方式:
-
控制台输出提示信息可以:a = 5 b = 3 c = 6 d = 5
-
-
-
Python 允许在三目运算符的 True_statements 或 False_statements 中放置多条语句。
-
多条语句以英文逗号隔开:每条语句都会执行,程序返回多条语句的返回值组成的元组。
-
多条语句以英文分号隔开:每条语句都会执行,程序只返回第一条语句的返回值。
-
True_statements 为 print(“条件”),‘a大于b’,这两条语句都会执行,程序将会返回这两条语句的返回值组成的元组。
-
True_statements 包含两条语句,但程序只会返回第一条语句 print(”crazyit”) 的返回值,该语句同样返回 None,因此相当于 str 的返回值为 None。
-
由于 print() 函数没有返回值,相当于它的返回值是 None a = 5 b = 3 c = 6 d = 5
-
将语句中的逗号改为分号,将逗号之后的语句改为赋值语句。a = 5 b = 3 c = 6 d = 5
-
-
-
三目运算符支持嵌套,通过嵌套三目运算符,可以执行更复杂的判断
-
首先执行 a > c 成立print(‘a 大于等于 c’) 不成立执行else 因为嵌套下一层 执行下一层如果下一层if跟上一层else同时成立 直接打印print(‘a 小于等于 c’) 不成立执行elseprint(‘a 等于 c’)
-
第一层else 跟下一层if 不成立时:
-
第一层else 跟下一层if 同时成立时:
-
-
-
-
-
Python运算符优先级一览表
-
所有的数学运算都是从左向右运算。
-
单目运算符、赋值运算符和三目运算符是从右向左运算的。
-
乘法和加法是两个可结合的运算符,这两个运算符左右两边的操作数可以互换位置而不会影响结果。
-
运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。注意:使用“()”就可以改变程序的执行顺序,尽量使用“()”来控制表达式的执行顺序。
-
三目运算符支持嵌套,通过嵌套三目运算符,可以执行更复杂的判断
-
首先执行 a > c 成立print(‘a 大于等于 c’) 不成立执行else 因为嵌套下一层 执行下一层如果下一层if跟上一层else同时成立 直接打印print(‘a 小于等于 c’) 不成立执行elseprint(‘a 等于 c’)
-
第一层else 跟下一层if 不成立时:
[外链图片转存中…(img-yVshf873-1565610625201)]
-
第一层else 跟下一层if 同时成立时:
[外链图片转存中…(img-wOLraBkf-1565610625201)]
-
-
-
-
-
Python运算符优先级一览表
-
所有的数学运算都是从左向右运算。
-
单目运算符、赋值运算符和三目运算符是从右向左运算的。
-
乘法和加法是两个可结合的运算符,这两个运算符左右两边的操作数可以互换位置而不会影响结果。
-
运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。注意:使用“()”就可以改变程序的执行顺序,尽量使用“()”来控制表达式的执行顺序。
-