- Python 访问字符串中的值 (查)
- Python 字符串更新 (改)
- Python字符串运算符
- Unicode 字符串
- startswith()判断字符串以某个字符串开头,返回boolean类型
- endswith()判断字符串以某个字符串结尾,返回boolean类型
- find()在字符串中查找指定字符串,找不到时返回-1:
- index()在字符串中查找指定的字符串,找不到时直接报错
- format()格式化输出字符串
- join()字符串连接
- isalnum()判断字符串是否包含字母数字字符
- isalpha()判断是否只包含字母:
- isdigit()判断字符串只由数字构成:
- isspace()判断字符串是否是空格:
- isupper()判断字符串是否全是大写字符:
- lower()将所有的大写字符转为小写字符:
- lstrip()去除字符串左边的空格:
- rstrip()去除字符串右边的空格:
- strip()去除字符串2边的空格:
- replace()字符串替换:
- split()字符串分割,默认是空格:
- Unicode 字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号( ‘ 或 “ )来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:
var1 = 'Hello World!'var2 = "Runoob"
Python 访问字符串中的值 (查)
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
Python 访问子字符串,可以使用方括号来截取字符串,如下实例:
var1 = 'Hello World!'var2 = "Runoob"print ("var1[0]: ", var1[0])print ("var2[1:5]: ", var2[1:5])
Python 字符串更新 (改)
var1 = 'Hello World!'print ("已更新字符串 : ", var1[:6] + 'Runoob!')
Python字符串运算符
下表实例变量a值为字符串 “Hello”,b变量值为 “Python”:
| 操作符 | 描述 | 实例 |
|---|---|---|
| + | 字符串连接 | a + b 输出结果: HelloPython |
| * | 重复输出字符串 | a*2 输出结果:HelloHello |
| [] | 通过索引获取字符串中字符 | a[1] 输出结果 e |
| [ : ] | 截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。 | a[1:4] 输出结果 ell |
| in | 成员运算符 - 如果字符串中包含给定的字符返回 True | ‘H’ in a 输出结果 True |
| not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | ‘M’ not in a 输出结果 True |
| r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 | print( r’\n’ ) |
print( R’\n’ ) | | % | 格式字符串 | 请看下一节内容。 |
Unicode 字符串
Python中定义一个Unicode字符串和定义一个普通字符串一样简单:
>>> u'Hello World !'u'Hello World !'
引号前小写的”u”表示这里创建一个Unicode字符串。如果你想加入一个特殊字符,可以使用Python的Unicode-Escape编码。如下例所示:
>>> u'Hello\u0020World !'u'Hello World !'
IN and NOT IN
a = "Hello"b = "Python"print "a + b 输出结果:", a + bprint "a * 2 输出结果:", a * 2print "a[1] 输出结果:", a[1]print "a[1:4] 输出结果:", a[1:4]if( "H" in a) :print "H 在变量 a 中"else :print "H 不在变量 a 中"if( "M" not in a) :print "M 不在变量 a 中"else :print "M 在变量 a 中"print r'\n'print R'\n'
循环(迭代)
#可以迭代的变量有str,list,dict,set,tuple
s10='hello world'count=0while count < len(s10):print(s10[count])count += 1#输出helloworld
字符串循环
s10='hello world'i=0while i < len(s10):print(s10[i])i += 1
s10='hello world'for c in s10:print(c)
Python字符串格式化**
python字符串格式化符号:
| 符号 | 说明 |
|---|---|
| %c | 格式化字符及其ASCII码 |
| %s | 格式化字符串 |
| %d | 格式化整数 |
| %u | 格式化无符号整型 |
| %o | 格式化无符号八进制数 |
| %x | 格式化无符号十六进制数 |
| %X | 格式化无符号十六进制数(大写) |
| %f | 格式化浮点数字,可指定小数点后的精度 |
| %e | 用科学计数法格式化浮点数 |
| %E | 作用同%e,用科学计数法格式化浮点数 |
| %g | %f和%e的简写 |
| %G | %f 和 %E 的简写 |
| %p | 用十六进制数格式化变量的地址 |
格式化操作符辅助指令:
| 符号 | 说明 |
|---|---|
| * | 定义宽度或者小数点精度 |
| - | 用做左对齐 |
| + | 在正数前面显示加号( + ) |
| 在正数前面显示空格 | |
| # | 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’) |
| 0 | 显示的数字前面填充’0’而不是默认的空格 |
| % | ‘%%’输出一个单一的’%’ |
| (var) | 映射变量(字典参数) |
| m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
print("{} {}".format('hello', 'word')) # 不设置指定位置,按默认顺序hello wordprint("{1} {0}".format('hello', 'word')) # 设置指定位置word helloprint("{1} {0} {1}".format('hello', 'word')) # 设置指定位置word hello word
print('my name is {name},my age is {age}'.format(name='jack', age=18))my name is jack,my age is 18# 通过字典设置参数dic = {'name':'jack','age':18}print('my name is {name},my age is {age}'.format(**dic))my name is jack,my age is 18# 通过列表索引设置参数my_list = ['jack', 18]print('my name is {0},my age is {1}'.format(*my_list))my name is jack,my age is 18my_list = ['jack', 18]print('my name is {0[0]},my age is {0[1]}'.format(my_list)) # "0" 是必须的my name is jack,my age is 18
案例1:
'Sam has {1:d} red balls and {0:d} yellow balls'.format(12, 31)#输出Sam has 31 red balls and 12 yellow balls
案例2: 通过列表索引设置参数
array = [34, 66, 12]"A = {0}, B = {1}, C = {2}".format(*array)#输出A = 34, B = 66, C = 12
案例3: 通过字典设置参数
d = {'hats' : 122,'mats' : 42}"Sam had {hats} hats and {mats} mats".format(**d)#输出Sam had 122 hats and 42 mats
案例4:通过字典设置参数
'Sam has {red} red balls and {green} yellow balls'.format(red = 12, green = 31)
startswith()判断字符串以某个字符串开头,返回boolean类型
name = "zhangsan"isTrue = name.startswith("zh")print(isTrue)# 打印结果:True
endswith()判断字符串以某个字符串结尾,返回boolean类型
name = "zhangsan"isTrue = name.endswith("san")print(isTrue)# 打印结果:True
find()在字符串中查找指定字符串,找不到时返回-1:
name = "zhangsan"isIn = name.find("an")print(isIn)# 打印结果:2# 返回字符串开始的下标
index()在字符串中查找指定的字符串,找不到时直接报错
name = "zhangsan"isIn = name.index('h')print(isIn)# 打印结果:1
format()格式化输出字符串
name = "{} {} zhangsan" #"{} {}"是占位符,用下边format()里边的参数填充name = name.format('I', 'am')print(name)# 打印结果:I am zhangsan
join()字符串连接
name = "zhangsan"name = '*'.join(name)print(name)# 打印结果:z*h*a*n*g*s*a*nname=['h','e','l','l','o']newname=''.join(name)print(newname)#打印结果:hello
isalnum()判断字符串是否包含字母数字字符
name = "zhangsan1"isTrue = name.isalnum()print(isTrue)# 打印结果:Truename = "zhangsan1*"isTrue = name.isalnum()print(isTrue)# 打印结果:False
isalpha()判断是否只包含字母:
name = "zhangsan"isTrue = name.isalpha()print(isTrue)# 打印结果:Truename = "zhangsan1"isTrue = name.isalpha()print(isTrue)# 打印结果:False
isdigit()判断字符串只由数字构成:
name = "1234"isTrue = name.isdigit()print(isTrue)# 打印结果:Truename = "zhangsan1234"isTrue = name.isdigit()print(isTrue)# 打印结果:False
#错误3次就退出restr=''count=0while count < 3:num = input("请%s输入:" % restr)if num.isdigit():num = int(num)print(num)breakelif (count >= 2):print("错误次数太多")breakelse:print("请输入数字")restr = "再次"count += 1
isspace()判断字符串是否是空格:
name = " "isTrue = name.isspace()print(isTrue)# 打印结果:Truename = "zhang san"isTrue = name.isspase()print(isTrue)# 打印结果:False
isupper()判断字符串是否全是大写字符:
name = "ZHANGSAN"isTrue = name.isupper()print(isTrue)# 打印结果:True
lower()将所有的大写字符转为小写字符:
name = "ZHANGSAN"name = name.lower()print(name)# 打印结果:zhangsan
lstrip()去除字符串左边的空格:
name = " zhangsan "name = name.lstrip()print(name)# 打印结果:zhangsan
rstrip()去除字符串右边的空格:
name = " zhangsan "name = name.rstrip()print(name)# 打印结果: zhangsan
strip()去除字符串2边的空格:
name = " zhangsan "name = name.strip()print(name)# 打印结果:zhangsan
replace()字符串替换:
name = "zhangsan"name = name.replace("zhang", "li")print(name)# 打印结果:lisan
split()字符串分割,默认是空格:
name = "zhang san"name = name.split()print(name)# 打印结果:['zhang', 'san']
