Day6总结

1.什么是字符串(str)

1)

含义:字符串是python提供的容器型数据类型(序列),字符串是不可变,有序的
不可变--不支持增删改:有序-支持下标操作,每一个字符串下标表明位置

2)

简析:python中的字符串是用单引号或者双引号引起来的字符集;引号里面的每个基本单元叫字符

str1 = 'hello'

2.字符

python中只有字符概念,没有字符类型

1)普通字符:数字、字母、中文、日语等

2)转义字符:

在特定的符号前加\来表示特殊功能或者特殊意义的字符

\n -换行
'单引号字符(不是字符串开头或结尾的标志)
"双引号字符(不是字符串开头/结尾标志)
\ 反斜杠本身(让一个反斜杠失去转义的功能)
\t 表示制表符(相当于tab)
\r 换行
阻止转义:在字符串中的最前面加r/R,能够阻止字符串中所有的转义字符转义

str5 = r'\rho\nare\nyou\"'    #\rho\nare\nyou\"
print(str5)                           
str4 = "'123'\nabc"
print(str4)                         
str3 = '123\nabc'
print(str3)

3)编码程序:在字符串中用'\u四位的十六进制数'来表示一个字符

\u字符编码值的16进制数

3.1)字符编码:

a-97 97就是字符a的编码值 ,计算机本身只有存储数字的能力(存数字的二进制的补码),为了能够存储数字以外的符号
开发人员给每个字符对应一个固定的数字用来对字符进行存储,每个字符对应的固定的数字就是字符的编码
每个字符和数字的一一对应关系就是字符编码表
常见的编码表:ACSII码表、Unicode编码表
ASCII编码采用一个字节对字符进行编码:0-127
Unicode编码表采用2个字节对字符进行编码,包含了ASCII码

chr函数: chr(编码值)获取编码值对应的字符

ord函数:ord(字符) - 获取指定字符对应的编码

print(chr(0x5e00))    #帀
print(ord('小'),ord('川'))  #32599 21452

练习:查看日语的所有片假名

for code in range(0x30A0,0x30FF):
    print(chr(code))


2.字符串的操作:查

1)获取单个字符

语法:字符串[下标]-获取指定下标对应的字符
说明:字符串-结果是字符串的表达式(字符串值、字符串变量、运算结果是字符串)
[] -固定写法
下标- 又叫索引,字符串确定后,字符串中的每一个字符都有一个确定的索引,表示这个字符在字符串中的位置。
python中下标有两种,位置从前往后是0到字符串长度-1,;位置从后往前是-1到字符串长度
注意:获取单子字符的时候下标不能越界

str1 = 'hello'
print(str1[0])
print(str1[-1])
str2 = '\tabc 123'
print(str2[2])
print(str2[3])    # indexerror,索引下标错误

2)获取部分字符(字符串切片)

语法:字符串[开始下标:结束下标:步长] ,从开始下标开始获取,每次增加步长取下一个值,取到结束下标前为止

说明:结果第字符串的表达式(字符串值,字符串变量,运算结果是字符串)
[] -固定写法
开始下标 -下标,整数,能取到对应的字符
结束下标-下标,整数,对应的字符取不到
步长 -整数,如果步长是正数,从前网后取;如果是负数,从后往前取
注意:
1.字符串切片的结果都是字符串
2.如果步长是正数,那么开始下标对应字符要在结束下标对应的字符的前面,才能取到值
如果步长是负数,那么开始下标对应字符要在结束下标对应的后面,才能取到值
3,切片的时候下标可以越界

str3='adc+123'
print(str3[2:-7:-1],'结束' )   #cd
print(str3[-1:2:-1] ) #  321+

3)获取部分字符的简写

1.省略步长
语法:字符串(开始下标:结束下标) 字符串[开始下标:结束下标:1]
2.省略开始下标 -步长为正从字符串开头往后获取,步长为负从字符串最后往前走
语法:字符串[:结束下标:步长]
3.省略结束下标 步长为正,取到字符串最后一个字符为止,步长为负取到第一个字符为止
语法:字符串[开始下标::步长] 字符串[开始下标:]

str4 = 'hello world'
print(str4[:5:])  # hello
print(str4[1:])   # ello world
print(str4[1::-1]) #  eh
print(str4[2:6:2])  #  lo

4)遍历字符串,将字符串中的字符一个一个的取出

for 变量 in 字符串:
     循环体
#直接遍历,变量取到的就是字符
for char in str4:
    print(char)

for index in range(11):
    print(str4[index])
for index in range(-1,-11,-1):
    print(index,str4[index])

练习:统计输入的字符串中,字母a出现的次数,例如aaabcabc

value = 'aaabcabc'
count = 0
for char in value:
    if char == 'a':
        count += 1
print(count)


字符串相关操作

1.字符串的运算:

1)数学运算符:+,+:两个字符串相加 -->将两个字符串拼接产生一个新的字符串,字符串正整数/正整数字符串:产生新的字符串*

str1 = 'abc' + 'hello'  #abchello
print(str1)
str2="abc"*3
print(str2)  #abcabcabc

2)比较运算符:>,<,>=,<=,==,!=

针对两个字符串进行比较,按位置从前往后一对一对的比较,找出第一队不相等的字符,看它们的编码值谁大,那个字符就大

print("abc" == "abc")  # True
print('abc'>'ab')    # True
print('abcdfg'>'az') # False  编码
print('你好'>'hello')  #True

判断一个字符是否是小写字母:'a'<=char<='z'
判断一个字符是否是大写字母:’A'<=char<='z'
判断一个字符是否是字母:'a'<=char<='z' or ’A'<=char<='z'
判断一个字符是否是数字字符 :'0'<=char<='9'
判断一个字符是否是中文(4e00-9fa5) :'\ue400'<=char<='\u9fa5,

练习:统计一个字符串中大写字母的个数

例如:How Are You!

str9='How Are You! '
count=0
for x in str9:
    if 'A'<=x<='Z':
        count+=1
print(count)

3)赋值运算:=,+=,*=

str4 = '你好'
str8='hello'
str8 += 'hello'
print(str8)

2.in 和 not in

字符串1 in 字符串2

print('abc'in'123abc')
print('abc'in'123ab1c')  #结果为布尔值

3.len

len(字符串) -获取字符串的长度 (字符串中字符的个数)

print(len('abc'))
print(len('\tabc'))
print(len('\u4e00abc'))  #制表符1位,编码1位

4.str

str(数据) -将其他类型的数据转换成字符串

所有类型的数据都可以转换成字符串,转换的时候直接在数据的外面加引号

print(str(100))
print(str(12.5))

5.格式字符串:在字符串中用格式占位符代替字符串中变化的部分,然后在使用数据对变化的部分进行赋值

"""

语法:包含格式占位符的字符串%(数据1,数据2....)
注意:数据的个数和类型要和前面字符串中格式占位的个数和类型保持一致
格式占位符:%s -字符串
%d -整数
%f -浮点数 %.Nf-浮点数,控制小数点
%c -字符

money=3.5
name = input('姓名:')
age=int(input('请输入年龄:'))
message='我是%s,今年%d岁'%(name,age)
message='我是%s.今年%d岁,薪资:%.1fk'%(name,age,money)
message='我是%s.今年%d岁,薪资:%.1fk,等级:%c'%(name,age,money,66)
print(message)


字符额对象方法

字符串.函数名()

1.capitalize() -将字符串中的第一个字符转换成大写字母

str1='abc'
print(str1.capitalize())
print(str1)

2.设置对齐方式

字符串.center(width,fillchar) -让字符串在新字符串中居中,width控制宽度,fillchar填充字符
字符串.rjust(width,flllchar)
字符串.ljust(width,fillchar)
字符串.zfill(width) <==> 字符串.rjust(width, '0')

str1 = 'abc'
print(str1.center(7, '+'))   #++abc++
print(str1.ljust(7, '%'))     #abc%%%%
print(str1.rjust(7, '='))      #====abc

num = 15   # 005   015
print(str(num).rjust(3, '0'))  #015
print(str(num).zfill(3))   #015

你可能感兴趣的:(Day6总结)