day6笔记

pycharm中的三种波浪号:
红色 - - 语法错误
灰色 - - 格式错误
绿色 - - 单词错误

1.什么是字符串

字符串是python提供的容器型数据类型(序列),不可变,有序
不可变 -- 不支持增删改
有序 -- 支持下标操作
python中的字符串是用单引号或者双引号引起来的字符集;引号里面的每个基本单元叫字符

2.字符

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

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

2) 转义字符

在特定的符号前加\来表示特殊功能或者特殊意义的字符
\n -- 换行
', " -- 单引号,双引号
\ -- 反斜杠本身
\t -- 制表符,相当于tab
\r -- 相当于enter 回车键
阻止转义
在字符串的最前面加r/R能够阻止字符串中的所有转义字符转义
'\tabc\n123' -- 长度8
r'\tabc\n123' -- 长度10

3)编码字符

\编码字符:在字符串'\u 四位的十六进制数'来表示一个字符
3.1)字符编码 -- 字符在计算机中存储的值
计算机本身只有存储数字的能力(存数字的二进制的补码),为了能够存储数字以外的符号,
开发人员给每个字符对应一个固定的数字来存储字符。每个字符对应的固定的数字,就是字符的编码
每个字符和数字的一一对应关系,就是字符编码表。常见的编码表有两种:ASCII表,Unicode表
ASCII码采用一个字节对字符进行编码:0-127
Unicode编码表采用2个字节对字符进行编码:0-255,包含了ASCII码

1个字节 = 8位
1位只能存储0和1
则1个字节能表示2**8个数,其中0-127,还存储了一个符号位

a - 97
b - 98

chr(编码值) -- 获取编码值对应的字符
ord(字符) -- 获取指定字符对应的编码

print(chr(100))
print(chr(0x5e00))

print(ord('李'), ord('平'))
str1 = 'stone lee'
print(str1.title())
print(str1.upper())
print(str1.lower())
str2 = ' is a girl'
str3 = str1 + str2
print(str3)

str4 = '123\nabc'
print(str4)

str5 = 'this is me
66666'
print(str5)
str6 = r'this is me\n s \t'
print(str6)

for code in range(0x31F0, 0x31FF):
print(chr(code))
for code in range(0x0E00, 0x0E7F):
print(chr(code))

3.字符串的操作:查

1)获取单个字符
语法:字符串[下标] -- 获取指定下标对应的字符
说明:字符串 -- 结果是字符串的表达式(字符串值、字符串变量、运算结果是字符串)
[] -- 固定写法
下标 -- 又叫索引,字符对应的位置,字符串确定后,
字符串中的每一个字符都有一个确定的下标/索引表示这个字符在字符串中的位置
python中下标有2中,从前往后数 0 - 字符串长度-1,从后往前数:-1 - 负的字符串长度

注意:获取单个字符的时候下标不能越界

2)获取部分字符(字符串切片)
语法:字符串[开始下标:结束下标:步长] - 从开始下标获取,每次增加步长取下一个值,取到结束下标前为止
说明: 字符串 -- 结果是字符串的表达式(字符串值、字符串变量、运算结果是字符串)
[] -- 固定写法
开始下标、结束下标 -- 字符串下标,整数。开始下标能取到对应的字符,结束下标不能取到
步长 -- 整数,如果取正、从前往后取;如果步长是负的,从后往前取
注意:不是所有的切片都能取到结果
字符串切片的结果都是字符串
如果步长是整数:开始下标对应的字符要在结束下标对应的字符的前面,才能取到值
如果步长是负数:开始下标对应的字符要在结束下标的对应的字符的后面,才能取到值
结束下标取不到值

切片的时候字符串下标可以越界

3)获取部分字符的简写:
a. 省略步长
语法:字符串[开始下标:结束下标]

b.省略开始下标:
语法:字符串[:结束下标:步长] 字符串[:结束下标]
步长为正,从开始开始获取
步长为负,从结尾开始获取

c.省略结束下标
语法:字符串[开始下标::步长] 字符串[开始下标:]
步长为正,从开始开始获取,取到结尾
步长为负,从结尾开始获取,取到开头

d. 开始下标和结束下标都省略

字符串倒序
str1[::-1]

str1 = 'hello'
print(str1[0])
print(str1[-1])
str2 = 'abc+123'
print(str2[2:-2:1]) # 下标不看大小 看步长正负,从前往后取、从后往前取
print(str2[0:-1])

str3 = 'stone lee is a girl'
print(str3[:-3])

4.遍历字符串 --将字符串中字符一个一个取出来

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

间接遍历:遍历下标
for index in range(11):
print(str3.[index])

字符串相关操作

1.字符串的运算

数学运算符: + *

  • : 两个字符串相加, 将两个字符串拼接产生一个新的字符串
  • : 字符串正整数 / 正整数 字符串, 字符串重复指定次数产生一个新的字符串

比较运算符:> < >= <= == !=
两个字符串进行比较:== != -- 字符串一模一样才相等

, <, >=, <=
按位置从前往后一对一对地开始比较,第一对不相等的字符比较编码值,编码值大的字符串就大

应用:
判断一个字符是否是小写字母: 'a' <= char <= 'z'
判断一个字符是否是大写字母:'A' <= char <= 'Z'
判断一个字符是否是中文(4e00 - 9fa5): '\u4e00'<= char <= '\u9fa5'

赋值运算符:=, += *=
str3 = 'abc'
str3 += 'hello'
str3 *= 2

str1 = 'abc' + 'hello'
print(str1)
str2 = 'abc' * 3
print(str2)

count = 0
str2 = 'How Are You'
for index in str2:
if 'A' <= index <= 'Z':
count += 1
print(count)

"""

2. in 和 not in

字符串1 in 字符串2 -- 判断字符串2中是否包含在字符串1 里
print('abc' in '123abc') 返回True
print('abc' in '123acb') 返回False

3. len

len(字符串) -- 获取括号中字符串长度
print(len('abc'))
print(len('\u4e00abc')) 返回4

4.str

str(数据) -- 将其他类型的数据转换成字符串
所有数据类型的数据都能转换成字符串:转换的时候直接在数据的外面加引号

5.格式字符串

在字符串中,用格式占位符,代替字符串中变换的部分,再使用数据对变换的部分赋值。
格式占位符:%s(字符串)、%d(整型)、%.nf(浮点型, n控制小数精度)、%c(字符、字符对应的编码值)
eg: message = '我是%s, 今年%d岁, 薪资%.2f K, 等级:%c' % (name, age, money, A)
包含格式占位符的字符串 % (数据列表)
注意:数据的个数和类型要和前面字符串中格式占位的个数和类型保持一致

6.python中字符串的对象方法:

字符串.函数名()
1.capitalize() -- 使字符串的第一个字符转换成大写字母

2.设置对其方式
字符串.center(width, fillchar) -- 让字符串中居中,width控制宽度,fillchar是填充字符
字符串.rjust(width, fillchar) --
字符串.ljust(width, fillchar)
字符串.zfill(width) -- 右对齐,0来填充
"""
str1 = 'abc'
print(str1.capitalize())
print(str1.center(7, '*'))

你可能感兴趣的:(day6笔记)