- 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 + b
print "a * 2 输出结果:", a * 2
print "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=0
while count < len(s10):
print(s10[count])
count += 1
#输出
h
e
l
l
o
w
o
r
l
d
字符串循环
s10='hello world'
i=0
while 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 word
print("{1} {0}".format('hello', 'word')) # 设置指定位置
word hello
print("{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 18
my_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*n
name=['h','e','l','l','o']
newname=''.join(name)
print(newname)
#打印结果:hello
isalnum()判断字符串是否包含字母数字字符
name = "zhangsan1"
isTrue = name.isalnum()
print(isTrue)
# 打印结果:True
name = "zhangsan1*"
isTrue = name.isalnum()
print(isTrue)
# 打印结果:False
isalpha()判断是否只包含字母:
name = "zhangsan"
isTrue = name.isalpha()
print(isTrue)
# 打印结果:True
name = "zhangsan1"
isTrue = name.isalpha()
print(isTrue)
# 打印结果:False
isdigit()判断字符串只由数字构成:
name = "1234"
isTrue = name.isdigit()
print(isTrue)
# 打印结果:True
name = "zhangsan1234"
isTrue = name.isdigit()
print(isTrue)
# 打印结果:False
#错误3次就退出
restr=''
count=0
while count < 3:
num = input("请%s输入:" % restr)
if num.isdigit():
num = int(num)
print(num)
break
elif (count >= 2):
print("错误次数太多")
break
else:
print("请输入数字")
restr = "再次"
count += 1
isspace()判断字符串是否是空格:
name = " "
isTrue = name.isspace()
print(isTrue)
# 打印结果:True
name = "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']