<h3>1.编码</h3>
1. 机器看懂 str
2. 人看懂 unicode
3. decode 解码
4. encode 编码
5. 在python2中有两种内置的类型的字符串,一种是保存字节的str字符串,一种是保存unicode字符的unicode字符串。
6. Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。
7. 解决方法:在文件开头加入 # -- coding: UTF-8 -- 或者 #coding=utf-8 就行了。
<h3>2.字符串类型 </h3>
<h4>2.1字符串的创建:</h4>
- 成对出现 单引号‘’ 双引号“” 三引号 ''' '''(多行可用三引号)
- 字符串是不可变的
<h4>2.2字符串取值、切片:</h4>
str ="hello python"
- 反向索引 -1 最后一个值 str[11] ==str[-1]
- 包前不包后 从0开始数
a. [:] 全部字符
b. [:3] 前面到2
c. [2:] 2到最后
d. [1:5:2] [开始:结束:隔多少取值] [start,end,step] - 由于python字符串是不可改变的,所以不可能为字符串里的单个字符赋值或者切片
<h4>2.3 字符串运算:</h4>
- len(str) 字符串的长度
- * 重复 a*2 aa
-
in not in 返回 True False
<h4>2.4 部分字符串操作方法<一>:</h4>
- str.count('l') 计出现的次数
- str.startswith('n') 是否以什么结尾
- str.endswith(h'') 是否以什么开始
- str.find('k') 从左到右第一次出现的位置 如果不在返回 -1
- str.rfind('l') 从右到左第一次出现的位置 如果不在返回 -1
- str.index('h') 返回字符串中出现x的最左端的索引值,如果不存则抛出ValueError异常
- str.rindex('o') 和index()类似,但是从右往左搜素
返回的是索引值
0 1 2 3
h e l l
<h4>2.5 部分字符串操作方法<二>:</h4>
- str.isalpha() 是否全是字母 返回bool类型
- str.isdigit() 是否全是数字
- str.islower() 是否全是小写
- str.isupper() 是否全是大写
int() str() 类型可以互相转换
<h4>2.6 部分字符串操作方法<三>:</h4>
字符串是不可变对象,需要重新赋值的话需要加赋值语句 a=a.upper()
- str.lower() 将字符串转为小写
- str.upper() 将字符串转为大写
- s.title() 每个首字母大写
- a.capitalize() 字符串第一个字母大写
- s.replace(old,new,个数) 可以多换多 字符串替换 a.replace('l','x',1) 只替换一个
- s.split() 返回一系列用空格分割的字符串列表
- s.split(a,b) a,b为可选参数,a是将要分割的字符串,b是说明最多要分割几个
<pre>
a.capitalize()
'Hello python'
a.title()
'Hello Python'
</pre>
<h3>3.字符串拼接</h3>
<pre>
a='hello'
b='python'
c='!'
d=' '
</pre>
<h5>3.1 + 用加号 a+b+c</h5>
<h5>3.2 %s 格式化字符串 将%s 当成占位符</h5>
'%s %s %s' %(a,b,c) (注:s前面可以加对象名,后面以字典的方式填入)
<pre>
'my name is %s' % 'shuang'
'my name is shuang'
'%s %s %s' %(a,b,c)
'hello python !'
</pre>
字典的话:
<pre>
'%(x)s %(y)s %(z)s' %({'x':a,'y':b,'z':c})
'hello python !'
</pre>
<h5>3.3 .join() ,注意括号里是要连接的可以是列表,元组</h5>
'' .join([a,b,c]) (注:''里面是链接后面各个字符串的字符)
<pre>
''.join([a,b,c])
'hellopython!'
' '.join([a,b,c])
'hello python !'
</pre>
<h5>3.4 .format()</h5>
'{}{}{}'.format(a,b,c) (注:{}里面可以填入与后面相对应的符号)
<pre>
'{}{}{}'.format(a,b,c)
'hellopython!'
'{} {} {}'.format(a,b,c)
'hello python !'
'{} {} {}'.format(a,c,b)
:</h4>
字符串是不可变对象,需要重新赋值的话需要加赋值语句 a=a.upper()
1. str.lower() 将字符串转为小写
2. str.upper() 将字符串转为大写
3. s.title() 每个首字母大写
4. a.capitalize() 字符串第一个字母大写
5. s.replace(old,new,个数) 可以多换多 字符串替换 a.replace('l','x',1) 只替换一个
6. s.split() 返回一系列用空格分割的字符串列表
7. s.split(a,b) a,b为可选参数,a是将要分割的字符串,b是说明最多要分割几个
<pre>
>>> a.capitalize()
'Hello python'
>>> a.title()
'Hello Python'
</pre>
<h3>3.字符串拼接</h3>
<pre>
>>> a='hello'
>>> b='python'
>>> c='!'
>>> d=' '
</pre>
<h5>3.1 + 用加号 a+b+c</h5>
<h5>3.2 %s 格式化字符串 将%s 当成占位符</h5>
'%s %s %s' %(a,b,c) (注:s前面可以加对象名,后面以字典的方式填入)
<pre>
>>> 'my name is %s' % 'shuang'
'my name is shuang'
>>> '%s %s %s' %(a,b,c)
'hello python !'
</pre>
字典的话:
<pre>
>>> '%(x)s %(y)s %(z)s' %({'x':a,'y':b,'z':c})
'hello python !'
</pre>
<h5>3.3 .join() ,注意括号里是要连接的可以是列表,元组</h5>
'' .join([a,b,c]) (注:''里面是链接后面各个字符串的字符)
<pre>
>>> ''.join([a,b,c])
'hellopython!'
>>> ' '.join([a,b,c])
'hello python !'
</pre>
<h5>3.4 .format()</h5>
'{}{}{}'.format(a,b,c) (注:{}里面可以填入与后面相对应的符号)
<pre>
>>>'{}{}{}'.format(a,b,c)
'hellopython!'
>>> '{} {} {}'.format(a,b,c)
'hello python !'
>>> '{} {} {}'.format(a,c,b)
'hello ! python'
'{1}{2}{0}'.format(a,c,b)
'!pythonhello'
'{n1} {n2} {n3}'.format(n1=a,n3=c,n2=b)
'hello python !'
</pre>
<h3>4.字符串格式化</h3>
- %s 格式化字符串
- %c 格式化ASCII字符
- %d 格式化整数
- %f 格式化小数
- %(+/-)m.nf 格式化定点数,当m大于格式化位数时才起作用显示m位,n是显示的小数的位数
(+/-)表示左右对齐方式
- %o 格式化无符号八进制
- %x 格式化无符号十六进制
- %e 用科学计数法格式化定点数
rod('a') 查看小写字母a的assii码值
<h3>5.字符串的转义</h3>
需要使用python 中的特殊字符时需要转义才能输出,转义标识符 ' \ '
例 :a = ' I'm a student .'
第一种方法:a = ' I'm a student .'
第二种方法:a = " I'm a student ."
注:''不能放在字符的末尾
python中的字符串转义符:
\ 转义字符 \反斜杠 '单引号 "双引号 \n换行 \ 续行
\a 提示音 \b退格键 \r 回车键 \t 横向制表符 Tab键 \f 换页
如果要正常的输出特殊的转义字符 使用 r
<pre>
print r'abc\nde'
abc\nde
</pre>