字符串
python 的字符串被划归为不可变序列这一类别,意味着这些字符串所包含的字符存在从左至右的位置顺序,并且他们不可以在原处修改.
 字符串常量
单引号  'spam'
双引号  "spam"
三引号   '''...spam...'''   ""...spam...""
转义字符 "s\tp\na\om"
Raw字符串:r"c:\new\test.spam"

单双引号字符串是一样的
在python字符串中,单引号和双引号字符使可以互换的.

用转义序列代表特殊字符

\\        反斜杠(\)
\'        单引号(')
\"        双引号(")
\a        响铃
\b        倒退
\f        换页
\n        换行
\r        返回
\t        水平制表符
\v        垂直制表符
\N{id}        unicode数据库ID
\uhhhh        unicode 16为十六进制数
\Uhhhh        unicode 32位十六禁止数
\xhh        十六进制
\ooo        八进制
\0        Null
\other        不转义

raw 字符串抑制转义

例如:myfile = open('c:\new\test.dat','w')

这里的\t会被制表符所代替,导致错误
这正式使用raw字符串所要解决的问题,如果字母r出现在字符串的第一个引号的前面,它将会关闭转义机制,这个结果就是python会将反斜杠作为常量来保持,因此为了避免
这种文件名的错误,记得在字符串前面增加r
myfile = open(r'c\new\test.dat','w')
还有一种办法,因为两个反斜杠是一个反斜杠的转义序列,可以如下
myfile = open('c:\\new\\test.dat','w')

实际应用中的字符串
基本操作:
python
>>>len("abc")
3
>>>'abc'+'def'    字符串合并
'abcdef'
>>>'ni!'*4    字符串重复
'ni!ni!ni!ni!'

>>>myjob = "hacker"
>>>for c in myjob:
    print(c,end='');
h a c k e r
>>>'k' in myjob
true
>>>'z' in myjob
false
>>>'spam' in 'abcdspamdef'
true
字符串的索引和分片
索引:s[i] 获取特定偏移的元素
--- 第一个元素的偏移为0
--- 负偏移索引意味着从最后或者右边反向开始计数
---s[0] 获取了第一个元素
---s[-2] 获取了倒数第二个元素
分片:s[i:j] 提取对应的部分作为一个序列
---上边界并不包含在内
---分片的边界默认为0和序列的长度,如果没有给出的话,
---s[1:3]获取了从偏移为1的元素,知道但不包括偏移为3的元素
---s[1:] 获取了从偏移为1知道末尾之间的元素
---s[:3]获取了从偏移为0知道但是不包括偏移为3之间的元素
---s[:-1]获取了从偏移为0知道但是不包括最后一个元素之间的元素
---s[:]获取了从偏移0到末尾之间的元素

扩展分片:第三个限制值 步长

s[i:j:k] 从i到j 每隔k个元素取一次

>>>s = "abcdefghmm"
>>>s[1:10:2]
'acegm'
>>>s[::2]
'acegm'
也可以使用负数作为步长
>>>s = "hello"
>>>s[::-1]
'olleh'
通过一个负数步长,,两个边界的意义实际上进行了翻转

分片s[5:1:-1] 的翻转顺序获取从2到5的元素
>>>s = "abcdefg"
>>>s[5:1:-1]
'fdec'

字符串转换工具
在python中不能够让数字和字符串相加,即使字符串看起来像是数字也不可以,
>>>'42'+1
出错

int函数可以讲字符串转换成数字,
str函数可以将数字转换成字符串
float 函数可以讲字符串转换成数字

字符串代码转换
同样是转换,单个字符可以通过将其传给内置的ord函数转换其对应的ascll码,这个函数实际上返回的是这个字符在内存中对应的字符的二进制.chr函数会执行相反的操作,获取ascll码将其转换成对应的字符
>>> ord('s')
115
>>>chr(115)
's'

int('1101',2)
13
bin(13)
'0b1101'

修改字符串

//合并
s = s+'spam'
>>>s
'spamspam!'
>>>s = s[:4]+'burger'+s[-1]
>>>s
'spamburger!'

//替换
>>>s = 'splot'
>>>s = s.replace('pl','pamal',1) 这里的1表示只替换一次
>>>s
'spamalot'

//格式化
>>>'that is %d %s bird!'% (1,'dead')
that is 1 dead bird

>>>'that is {0} {1} bird!'.format(1,'dead')
that is 1 dead bird

//寻找
>>>s = "abcedef"
>>>where = s.find('ce')
>>>where
3

//list
>>>s = ['spam']
>>>l = list(s)
>>>l
['s','p','a','m']

//讲一个list变为字符串
>>>s = ''.join(l)
>>>s
'spam'

//拼多个字符串
>>>'spam'.join(['eggs','sausage','ham'])
'eggsspamsausagespamhamspam'

字符串的文本解析
>>>line = 'aaa bbb ccc'
>>>cols = line.split()
>>>cols
['aaa','bbb','ccc']

>>>line = 'bob,hacker,40'
>>>line = line.split(',')
['bob','hacker','40']

>>>line = 'iamspamaspamnumber'
>>>line = line.split('spam')
>>>line
['iam','a','number']

python学习之字符串(上)的更多相关文章

  1. Python 学习笔记(上)

    Python 学习笔记(上) 这份笔记是我在系统地学习python时记录的,它不能算是一份完整的参考,但里面大都是我觉得比较重要的地方. 目录 Python 学习笔记(上) 基础知识 基本输入输出 模 ...

  2. python学习笔记——字符串

    类方法string.upper(str)需要引入string模块,实例方法str.upper()不需要引入string模块 无与伦比的列表解析功能 # coding=utf-8 # 列表解析 prin ...

  3. Python学习笔记-字符串

    Python之使用字符串 1.所有的标准序列操作(索引,分片,乘法,判断成员资格,求长度,取最小值,最大值)对字符串同样适用.但是字符串都是不可变的. 2.字符串格式化使用字符串格式化操作符即%. f ...

  4. python学习教程,史上最全面的python学习路线图

    Python 是Web 开发.游戏脚本.计算机视觉.物联网管理和机器人开发的主流语言之一,随着Python用户可以预期的增长,它还有机会在多个领域里登顶.Python学习路线分享给你. 阶段一是Pyt ...

  5. python学习之字符串常用方法和格式化字符串

    Python中的字符串同样适用标准的序列操作(索引,分片,乘法,成员判断,求长度,取最小值和最大值),但因为字符串是不可变的,因此字符串不支持分片赋值. s='http://www.baidu.com ...

  6. Python学习之字符串函数

    下面是在看python核心编程中序列字符串中提到的一些函数,根据自己的学习理解总结了下,方便日后用到的时候查看.    1.string.capitalize() 把字符串的第一个字符大写 例子:   ...

  7. Python学习二---字符串

    一.字符串 1.1.字符串和转义字符 转义字符需要使用\来表示 1.2.字符串连接 print 字符串1 字符串2,打印出来的字符串直接连接在一起没有空格 print 字符串1,字符串2,打印出来的字 ...

  8. python学习之字符串

    最近在学习python,随手做些记录,方便以后回顾 #字符串是不可再改变的序列aa='abcd'#aa[2:]='ff' #报错,不可直接赋值#字符串格式化:使用格式化操作符即百分号%来实现print ...

  9. Python学习摘录(上)

    1:接收输入 var=raw_input() 注意:raw_input()总数接收字符串形式的输入.所以,如果我们想接收其他类型的数据,则需要强制类型转换.(如果转换失败,就会抛出异常) 2:pass ...

随机推荐

  1. 二、redis集群搭建

    redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...

  2. P2286 [HNOI2004]宠物收养场

    题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领 ...

  3. dfs.datanode.max.transfer.threads

    An HDFS DataNode has an upper bound on the number of files that it will serve at any one time: <p ...

  4. Java试题

    1.不使用循环,等比数列输出整型 n.2n.4n.8n--当大于max时,反向输出8n.4n.2n.n. 例如 n=10,max=100. 输出: 10 20 40 80 80 40 20 10 解题 ...

  5. JS封闭函数、闭包、内置对象

    一.变量作用域 变量作用域指的是变量的作用范围,javascript中的变量分为全局变量和局部变量 1.全局变量:在函数之外定义的变量,为整个页面公用,函数的内部外部都可以访问. 2.局部变量:在函数 ...

  6. 为何你跟着滴滴D8级前端大神撸代码,技术却依旧原地踏步?

    引子 听说最近有很多小伙伴,热衷于在慕课网上学习各种前端实战教程,并以完成项目为奋斗目标.比如本文接下来要提到的<Vue2.0高级实战之开发移动端音乐App>,这门课程的传授者是来自滴滴D ...

  7. JS操作字符串常用的方法

    JS操作String对象的方法 charAt(index):返回指定索引处的字符串charCodeAt(index):返回指定索引处的字符的Unicode的值concat(str1,str2,...) ...

  8. Jenkins: 执行 PowerShell 命令

    Jenkins 默认是不支持执行 PowerShell 命令的,需要安装插件才能完成这样的任务.本文将介绍 Jenkins PoserShell 插件的基本用法和常见问题. 安装 PowerShell ...

  9. IDEA 单元测试testng入门及testng.xml

    直接进入正题: 1.TestNG的运行方式如下: With a testng.xml file 直接run as test suite With ant 使用ant From the command ...

  10. Objective-C 使用核心动画CAAnimation实现动画

    先来看看效果吧 整个核心动画就不多做介绍了,随便一搜就能有很多很详细的解释,主要使用以下四种 CABasicAnimation //经典动画 CAKeyframeAnimation //关键帧动画 C ...