python学习笔记-数据类型-字符串一些常用方法<2>

<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 就行了。

19.png

<h3>2.字符串类型 </h3>
<h4>2.1字符串的创建:</h4>

  1. 成对出现 单引号‘’ 双引号“” 三引号 ''' '''(多行可用三引号)
  2. 字符串是不可变的

<h4>2.2字符串取值、切片:</h4>
str ="hello python"

  1. 反向索引 -1 最后一个值 str[11] ==str[-1]
  2. 包前不包后 从0开始数
    a. [:] 全部字符
    b. [:3] 前面到2
    c. [2:] 2到最后
    d. [1:5:2] [开始:结束:隔多少取值] [start,end,step]
  3. 由于python字符串是不可改变的,所以不可能为字符串里的单个字符赋值或者切片

<h4>2.3 字符串运算:</h4>

  1. len(str) 字符串的长度
  2. * 重复 a*2 aa
  3. in not in 返回 True False


    10.png

    11.png

<h4>2.4 部分字符串操作方法<一>:</h4>

  1. str.count('l') 计出现的次数
  2. str.startswith('n') 是否以什么结尾
  3. str.endswith(h'') 是否以什么开始
  4. str.find('k') 从左到右第一次出现的位置 如果不在返回 -1
  5. str.rfind('l') 从右到左第一次出现的位置 如果不在返回 -1
  6. str.index('h') 返回字符串中出现x的最左端的索引值,如果不存则抛出ValueError异常
  7. str.rindex('o') 和index()类似,但是从右往左搜素

返回的是索引值
0 1 2 3
h e l l


12.png

<h4>2.5 部分字符串操作方法<二>:</h4>

  1. str.isalpha() 是否全是字母 返回bool类型
  2. str.isdigit() 是否全是数字
  3. str.islower() 是否全是小写
  4. str.isupper() 是否全是大写
int()   str()  类型可以互相转换
13.png

<h4>2.6 部分字符串操作方法<三>:</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>

14.png

<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>

14.png


<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>

15.png

16.png

<h3>4.字符串格式化</h3>

  1. %s 格式化字符串
  2. %c 格式化ASCII字符
  3. %d 格式化整数
  4. %f 格式化小数
  5. %(+/-)m.nf 格式化定点数,当m大于格式化位数时才起作用显示m位,n是显示的小数的位数
  6.   (+/-)表示左右对齐方式
    
  7. %o 格式化无符号八进制
  8. %x 格式化无符号十六进制
  9. %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 换页


111.png

如果要正常的输出特殊的转义字符 使用 r
<pre>

print r'abc\nde'
abc\nde
</pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容