字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:
var1 = 'Hello World!'
var2 = "Python Runoob"
Python访问字符串中的值
Python不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
Python访问子字符串,可以使用方括号来截取字符串,如下实例:
实例(Python 2.0+)
#!/usr/bin/python
var1 = 'Hello World!'
var2 = "Python Runoob"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
以上实例执行结果:
var1[0]: H
var2[1:5]: ytho
1、单引号,双引号,三引号字符串
在Python中我们可能看到对字符串有的人用双引号来括起来,有的用单引号括起来,他们有什么不同吗?答案是它们没有区别,那为什么要用到双引号呢,因为如果一个字符串中已经有单引号了,在最外层就必须要用双引号,否则就会报错,如下:
>>> 'Let's go!' File "", line 1 'Let's go!' ^SyntaxError: invalid syntax>>> "Let's go!" "Let's go!"
那三引号的作用是做什么的呢?三引号是用来解决如果一行很长,而且里面又包括一些特殊字符比如换行符等,这时候就用到三引号了,比如:
>>> '''Simple million word count program.... main idea is Python pairs words... with the number of times... that number appears in the triple quoted string.... Credit to William J. Turkel and Adam Crymble for the word... frequency code used below. I just merged the two ideas.... '''
2、字符串的转义、拼接、复制
python中的转义最好理解,它跟shell下一样,就是在字符前加就可以转义一个字符,比如 就是回车换行,就是制表符,如果一个字符串中有单引号或双引号或者都可以进行转义,如下:
>>> print '\' >>> print ''''>>> print '"'"
在Python下字符串拼接是用+号符操作的,非常直观,例如:
>>> x = 'hello'>>> y = ' mindg.cn'>>> z = x + y >>> print zhello mindg.cn
字符串的复制也非常简单,可以通过*操作符,例如复制20个#符:
>>> print '#' * 20####################
3、字符串切片
切片操作是字符串的重要特性,在字符串 后面加入[]就可以提取该位置的单个字符,如果顺序是从左到右,记住第一个字符是从0开始,如果是从右到左从-1开始,如下:
>>> letter = 'continuation'>>> letter[0]'c'>>> letter[-1]'n'>>> letter[-2]'o'>>> letter[1] 'o'
除了获取单个字符,我们还可以用更复杂的方式获取一段字符,操作格式是[开始:结束:步长],这三个参数没有严格要求必须同时存在,但如果要获取某段字符至少要有开始或结束,如果都不写就是获取整个字符串内容了,如下:
>>> letter[0:4] 'cont'>>> letter[-5:]'ation'>>> letter[0:10:2]'cniut'>>> letter[:] 'continuation'
Python字符串更新
你可以对已存在的字符串进行修改,并赋值给另一个变量,如下实例:
实例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
var1 = 'Hello World!' print "更新字符串 :- ",
var1[:6] + 'Runoob!'
以上实例执行结果
更新字符串 :- Hello Runoob!
字符串格式化
字符串格式化就是对字符输出时处理,类似C语言的 printf()函数,打印出字符,以下是Python格式化符号表:
最简单的格式化例子如下:
>>> letter'continuation'>>> print '%s' %lettercontinuation
如果要打印指定点数可以用%f,保留小数点后二位,如下:
>>> num = 0.863>>> print '%.2f' %num 0.86
从Python2.6版本开始字符串格式化增加了format方法进行格式化,它的格式没有了%,用{}来替代,如下:
>>> ','.format(name='xiaoming',url='mindg.cn') 'xiaoming,mindg.cn'>>> ','.format(url='mindg.cn', name='xiaoming') 'xiaoming,mindg.cn'
用format的好处是后面的参数可以不按顺序,如我们的例子,name在前或在后对输出没有影响,另外还要记住就是在Python2.6的版本{}里的内容不能为空,2.7的版本可以支持为空:
>>> '{},{}'.format('xiaoming', 'mindg.cn') 'xiaoming,mindg.cn'
所以有时候你下载一些模块安装不上,如果出现这个format错误,就表示你目前系统的版本比较低,你要做的要么升级当前版本,要么修改下源代码就可以通过,我是之前碰到过几次。
来源网络,侵权删除
领取专属 10元无门槛券
私享最新 技术干货