1.字符串
1.什么是字符串
是python中常用的有序的但不可变的容器类的数据类型,可以同时存储多个字符。属于序列
字面量:使用单引号或者双引号将任意字符引起来。
a = ('allal我是你爸爸,the top is your dad?')
b = len(a)
print("这句话:"+a+"有%s"%b+'个字符')
2.字符串的内容
a.普通字符:包含数字字符、字母、普通符号:+ - * /
"1 2 3","sdsds","&&%90"
b.转义字符:通过 \ 将一些字符转换成有特殊功能或者特殊意义的字符
例如:
\t(制表符),
\n(换行)
print("ads\nsda5")
print("\tads\nsda5")
print("adssda5",end="\t")
print("lorry",end="\t")
print("2222222")
' 一个单引号
" 一个双引号
\\ 单纯的 \ 不会换行
print('ads\'sda5',"ads'sda5") #加\用来区分字符
print("ads\\nsda5")
注意:一个转义字符代表一个字符
c.阻止转义:在字符串前面加R/r,可以阻止转义字符转义
print(r"ads\nsda5")
print(r'\b') #退格,检测边界
2.字符的编码
- 1 编码:
- python中采用的字符编码是Unicode编码
- 编码:数字和字符的对应关系,其中字符对应的数字就是字符对应的编码。
例:a -97;b - 98 ;罗-32599
编码方式
ASCII编码:针对数字字符、字母字符、一些英文中常用符号进行编码。
2**7-1;采用一个字节(8位)对字符进行编码(128个字符进行编码)
Unicode(万国码):包含了SACII码表,同时能够对世界上所有的语言对应符号进行编码
采用两个字节进行编码能够编码65536个字符
- 2 chr和ord函数
chr(编码值) 》 转换成字符 (中文编码范围:4e00 —9fa5)
ord(字符) 》 获取字符对应的编码
print(chr(0x4e01))
print(ord("罗"),ord("禹"))
print(hex(ord("罗")),hex(ord("禹")))
print(bin(ord("罗")),bin(ord("禹")))
print(oct(ord("罗")),oct(ord("禹")))
print(str1,str2)
- 2 .可以将字符编码放到字符串中表示一个字符:\u + 4位十六进制编码值。
str1 = "abc\u7f57\u79b91123"
str2 = "abc罗禹1123"
print(str1,str2)
3.获取字符串中字符
- 1.下标(索引)
一旦一个字符串确定,每个字符的位置就确定了。.
而且每个字符会对应一个用来表示其位置和顺序的下标值。
下标范围:0代表第一个字符; -1 (-1代表最后一个字符)
a = "123a"
print(a[0])
b = "abc\t123" #转义字符,编码字符也代表一个字符
print(len(b))
- 2.获取字符串
语法:字符串[ ] — 获取字符串中指定下标对应的字符
说明:字符串 - 可以是字符串常量,也可是字符串变量(只要结果是字符串就行)
[ ] - 固定写法
下标 - 字符的下标,不能越界
python
strr1 = "hello python"
print(strr1[6],strr1[-6])
- 3.获取部分字符
方法1:
a.语法:字符串 [开始下标:结束下标:步长]
b.说明:字符串 -可以是字符串常量,也可是字符串变量(只要结果是字符串就行)
[ ] - 固定写法
开始下标\结束下标 - 下标值
步长 : 整数
C.功能:
从开始下标获取到结束下标前为止,每次下标值增加步长对应的值。结果是字符串
d.注意:
步长是正数(从前往后取),开始下标对应的字符要在结束下标对应的字符前面
strr2 = '0123456789'
print('从前往后取'+strr2[0:9:1])
print('从前往后取'+strr2[0:-1:2])
步长是负数(从后往前去),开始下标对应的字符要在结束下标对应的字符后面
strr2 = '0123456789'
print('从后往前取'+strr2[-1:-8:-2])
print('从后往前取'+strr2[-1:1:-2])
方法2:
语法:字符串[开始下标:结束下表](相当于步长是1)
str3 = 'asc123456ggh'
print("从后往前取aaa"+str3[-1:3]) # ' ' 空串- 取不到。
print("从前往后取aaa"+str3[3:-1])
- 4省略下标,获取部分字符
获取部分字符的时候,开始下标和结束下标都可以省略。- a.开始下标省略
字符串[ : 结束下标 :步长] or 字符串[ : 结束下标]
步长是正数:从字符串开头获取
步长是负数:从字符串结尾开始往前获取
- a.开始下标省略
str4 = 'sasdgfdg'
print('从前获取'+str4[:4])
print('输出结果挺奇葩从结尾获取:'+str4[:4:-1]) #输出结果:输出结果挺奇葩从结尾获取:gdf
print(str4[:])
- b.结束下标省略
字符串[开始下标::步长] or 字符串[开始下标:]
步长是正数:从开始下标从前往后获取到字符串结束
步长是负数:从开始下标从后往前获取到字符串开头
str4 = 'sasdgfdg'
print('从前获取'+str4[4:])
print('输出结果挺奇葩从下标位开始往前获取:'+str4[4::-1]) #输出结果 :gdsas
print(str4[:100]) #输出结果
print(str4[-100:100]) #输出结果
3.字符串相关运算
- 1.加法。字符串1+字符串2
将两个字符串拼接在一起,产生新的字符串。
注意:字符串只能与字符串相加
str1 = "lor"
str2 = 'ry'
str3 = '22'
print(str1+str2+str3)
print(str3+'10')
print(int(str3)+10)
- 2 .乘法运算
字符串 * n (正整数):重复n次。
str1 = "lor"
str2 = 'ry'
str3 = '22'
print(str1*2,str2*3,(str1+str2)*5,"**"*10)
#练习
print(("**"*10+"%"*10)*10000)
- 3 .比较运算
> ,<,== ,!=,<= ,>=
字符串1 == 字符串2 -判断两个字符串是否相等。
print("lorry" =='lorry',"lorry" == 'lorrybz',"lorry" != 'lorrybz')
#两个字符串比较大小:
#从第一个开始,找到第一对不同的字符,然后比较他们编码值的大小。
print("abc" > "ad")
print("abcdE" > "abcde")
例:# 练习:判断一个字符是否是字母
char = input("输入一个字符")
print("是否是字母:","a" <= char <= "z" or "A" <= char <= "Z")
例# 练习:判断一个字符是否是字母
str111 = input("输入一个字符")
print(ord(str111))
print(0x4e00)
print(type(hex(ord(str111))))
print(type(oct(ord(str111))))
print(type(bin(ord(str111))))
print(type(0x4e00))
print(hex(ord(str111)))
print("是否是中文:","\u4e00" <= str111 <= "\u9fa5")
print("是否是中文:", hex(0x4e00) <= hex(ord(str111))<= hex(0x9fa5))
# print("是否是中文:", 0x4e00 <= hex(ord(str111)) <= 0x9fa5)
print("是否是中文:", 0x4e00 <= 0x6211 <= 0x9fa5)
print("是否是中文:","一" <= str111 <= "龥")
- 4..in 和 not in
print("abc" in 'abc123')
print("abc" not in 'ab123c')
- 5.5.len(函数)
len(序列):
len(字符串): 获取字符串中的字符的个数
print(len("abc123"))
print(len("a\\b\nc1\u4d23"))
print(len(r"ab\nc1\u4d23"))
- 6.str():str(数据):将数据类型转换成字符串
- a其他数据转换成字符串
所有的类型数据都可以转换成字符串,转换的时候就是在数据的值得最外面加 “”号
补充:系统数据类型名不能用来给变量命名。str1 = str(100) #用类型名命名 ,原类型的功能就会失效 - b.字符串转其他类型
- a其他数据转换成字符串
字符串转整型:int(),只有去掉引号剩下的部分本身就是一个整数的字符串才能转换成整型。
字符串转整型:float(),只有去掉引号剩下的部分本身就是一个整数或者小数的字符串才能转换成整型。
科学计数法也是可以转换的。
字符串布尔:bool(字符串).除了空串会转换成False,其余的全部转换成True
print(int("123"))
print(float("123"),float("123.00"))
print(bool('0'),bool('False'),bool(''))
- 7.格式字符串
- a.通过格式占位符来表示字符串中变化的部分,然后再通过其他的值来给占位符赋值。
语法: 含有格式占位符的字符串 % (占位符对应的值。)
说明: 格式占位符 - 有固定的写法
% - 固定写法;可以有多个。
( ) - 里面值的个数和值的类型和前面格式占位符一一对应。
- b.常见的格式占位符
%d - 整数
%s - 字符串
%.nf - 小数 保留小数点后n位小数。
%c - 字符 可以将数字转换成字符。
print("%s是我儿子,今年%d岁,体重%.2f,血型是:%c,%c"%(name,15,600,"A",97))
网友评论