基本概念
判断一个变量是不是字符串,用isinstance()函数来判断
a='i love python'
print(isinstance(a,str))
#isinstance()函数也可以判断其它类型的
b=90
print(isinstance(b,int))
#True
#True
字符串用 ‘’ 或 “” 来包裹。
索引
正向索引:
从0开始,依次向后
反向索引:
从-1开始,依次向前
str1='i love python'
print(str[0])
print(str[-1])
#i
#n
需要注意:
1.正向索引第一个数字是0,而反向索引第一个数字是-1
2.索引的结果是一个只读的值,不能通过改变索引对应值的方法来修改字符串,否则会报错
str1='i love python'
str1[0]='h'
print(str1)
#TypeError: 'str' object does not support item assignment
在py中,修改字符串的方法是通过字符串拼接来实现的。比如要修改第三个字符,要先取出前两个字符和后两个字符,然后再将这些字符与修改后的字符拼接起来,再赋值给原来的变量。
切片
对字符串进行切片后返回的仍是字符串类型。
str[m:n]返回[m,n]的字符串,(含左不含右)m必须小于n,m,n也可以是负数str[-3,-1](含左不含右)
其具体操作与列表相似
拼接
将数个短的字符串拼接成一个长的字符串,方法主要有:
1. +号连接
2. %号连接
3. join()函数,可以将一个列表拼接成一个字符串
4.format()函数
5.格式化字符串
# +号连接
str1='py'
str2='thon'
str3=str1+str2
print(str3)
bar="\u2589"
print("4/10:[" +bar*4+"---"*6+"]")
#4/10:[▉▉▉▉------------------]
# %号连接
str1='py'
str3='%sthon'%str1
print(str3)
#join()函数
a=','.join(['hello','world','python'])
print(a)
#hello,world,python
特殊字符和转义字符
常用的转义字符
\newline | 反斜杠加换行全部被忽略 |
\\ | 反斜杠(\) |
\' | 单引号(') |
\'' | 双引号(") |
\n | 换行符 |
\r | 回车符 |
\t | 水平制表符(TAB) |
\ooo | 表示一个八进制码位的字符,\141表示字母a |
\xhh | 表示一个十六进制码位的字符,\x61表示字母a |
sql="""
select id,name,accesslevel\
drom user\
where nME=@P1 AND password=@p2
"""
print(sql)
#select id,name,accessleveldrom userwhere nME=@P1 AND
password=@p2 输出结果位一整行,忽略了换行和斜杠
#---------------------------------------------
print("\'")
print('\"')
print("i'm fine,thank you")
#'
#"
#i'm fine,thank you
原始字符串和格式化字符串
原始字符串:就是指在字符串前加先导符 “ r ”/“ R ”之后,字符串的内容都不会被转义。
astr=r"c:\desktop\python\homework.py"
print(astr)
#c:\desktop\python\homework.py
格式化字符串:
调用format()函数
astr="{0:>4}:{1:.2f}".format('价格',10)
print(astr)
# 价格:10.00
0对应第一个参数,1对应第二个参数
格式化规则的书写方法如下:
[对齐方式][符号显示规则][#][0][填充宽度][千分位分隔符][.<小数精度>][显示类型]
astr="{0:+>20}".format('价格',20)
print(astr)
#++++++++++++++++++价格
默认情况下,填充文本是空格符,可以不写
对齐方式里,<表示左对齐,>表示右对齐,^表示居中对齐,建有的方向就是对齐方向
字符串的编码
可以使用ord()函数将asc码可显示的字符转换成其对应的数字,也可以使用chr()函数进行反向转换。
>>>chr(97)
#'a'
>>>ard('a')
#97
若要一次性转换很多的字符,要用到字节串字面量,字节串字面量只能保存asc码表中存在的字符以及十六进制码,书写时,需要在字符串前加字母b/B
string=b'i love python'
print(type(string))
print(string[0])
#<class 'bytes'>
#105
字符串的常用操作
类型转换函数:int() long() float() list(),tuple() 等等
表达式转换函数:eval()
price=90
amount=5
a=eval("price*amount")
print(a)
#450
长度计算函数:len()
大小写转换函数:lower(),upper()对非英文字母不起作用
查询函数:find(带查询的字符串,查询的开始位置,查询的结束位置)
字符串分解函数:split(分隔符,切割次数)
print('python#c#c++#java#c'.split('#',2))
#['python', 'c', 'c++#java#c']
切割次数是处理前两个分隔符,分成三段。