python第六天下

这篇博客主要介绍了Python字符串的使用,包括转义字符、字符串运算、切片、比较运算符、索引、长度计算、字符串方法等,强调了常用操作如`isdigit()`、`isalpha()`、`strip()`和`replace()`等,并提供了实例演示。
摘要由CSDN通过智能技术生成

循环嵌套
外层执行一次,内层循环执行一圈

1 字符串 str
定义: 有一系列字符组成的不可变数据容器
‘我是中国人,家住东北’

编码:
    ASCII编码: 字母/数字等字符,  1个字符(8位)
    GBK编码: 字母/数字等字符/中文, 英文1个字符(8位)/汉字2个字符
    Unicode编码: 国际编码,字母/数字等字符/中文, 旧字符2个字符/新字符4个字符
    UTF-8编码: 国际编码,字母/数字等字符/中文, 英文1个字符(8位)/汉字3个字符
        
表示:
    ''
    ""
        内容中什么使用另一个

    ''' '''
    """ """
        多行注释[所见即所得] --> 文档字符串(函数/类的功能的描述或说明)


转义字符:
    'c:\tarena\read\version\need'

    \t  水平制表符
    \r  将光标移动至首行
    \v  垂直制表符
    \n  换行符
    \\  \
    \'  '
    \"  "

转义字符

print(‘c:\tarena\read\version\need’)

问题:转移字符将结果转义,结果不符合要求

# 解决:让转义功能失效 raw

print(r’c:\tarena\read\version\need’)
print(r"c:\tarena\read\version\need")
print(r""“c:\tarena\read\version\need”"")
print(r’’‘c:\tarena\read\version\need’’’)
解决措施:
功能:让转义功能失效,输出原始字串
格式:
r’’
r""
r""""""
r’’’’’’
场景:
路径/网址

字符串的运算
+ 用于字符串的拼接
* 用于字符串重复指定次数
+= 用于字符串的拼接,并将结果赋值给一个变量
*= 用于字符串重复指定次数,并将结果赋值给一个变量

  比较运算符
     >  >=  <  <=   ==  !=

     规则:
        根据字符串中对应位置上的字符的Unicode值大小比较

     返回值:
        bool

     函数:
        ord(char)    返回字符对应的Unicode值
        chr(code)    返回Unicode值对应的字符


  in/not in运算符
    功能:查看字符是否在字符串中
    返回值:bool

字符串的运算符

print(4+‘元’) # int + str 不能运算

print(str(4)+‘元’) # str + str 运算

s = r"c:\read" + r’\note.txt’

print(s)

print(’-’ * 50)

s1 = ‘hello’ * 5 # 将字符串重复5次

print(s1)

s2 = ‘hello’

s3 = ‘world’

print(s2 + s3)

print(s2)

print(s3)

print(’=’ * 50)

s2 += s3 # s2 = s2 + s3

print(s2)

print(s3)

s3 *= 3

print(s3)

print(’*’ * 50)

content = ‘’

while True:

data = input(‘请输入:’)

if not data:

break

content += data

print(content)

比较运算符

print(‘2’ < ‘10’)

第1次: ‘2’ < ‘1’ False 50 < 49

print(ord(‘1’)) # 查看字符1的Unicode值

print(ord(‘2’))

print(ord(‘毕’))

print(chr(27605)) # 返回Unicode值对应的字符

场景:

用于单词是否继续向下查找

print(‘apple’ > ‘app’)

print(‘2’ < ‘20’)

print(‘21’ < ‘2056565656’)

‘ABCD…Z’

for x in range(ord(‘A’), ord(‘A’)+26):

print(chr(x), end=’’)

‘AaBbCcDd…Zz’

in/not in 运算符

s = ‘python’

print(‘P’ in s) # False 大写 “P” 不在
print(‘py’ not in s) # False
print(‘oh’ not in s) # True 从左至右

字符串是有序
‘站队’

  索引
    格式:
        str[index]

    功能:
       返回索引所对应的字符

    说明:
        字符串的正向索引值从0开始,反向索引值从-1开始

    原则:
        就近原则

    函数:  [重点]
        len(object)

        功能:
            返回对象长度

        返回值:
            int

    注意:
        索引值对应的字符串中无字符:索引值越界(IndexError)

    返回值:
        str, 单个字符

字符串的索引

s = ‘pythony’

‘’’
字符 p y t h o n y
正向索引 0 1 2 3 4 5 6
反向索引 -7 -6 -5 -4 -3 -2 -1
‘’’

print(‘t=’, s[2], s[-4])

print(‘p=’, s[0], s[-6])

print(‘y=’, s[1], s[-1])

s = ‘ABCDEDF’

计算字符串的长度

print(len(s))

print(‘D’, s[-2], s[3])

print(‘F’, s[-1], s[len(s)-1])

print(‘B’, s[1], s[-len(s)+1])

print(s[len(s)]) # s[7] 索引值越界

s = ‘string index out of range’
print(s.index(‘d’))
print(s[s.index(‘d’)])

切片
格式:
str[[start]:[stop][:step]]

  参数:
     start: 起始索引值,可以省略,默认表示字符串的最开头位置
     stop: 终止索引值,可以省略,默认表示字符串的最末尾位置,不包含
     step: 步长,可以省略,默认为1
        正: 表示正向切片
        负: 表示反向切片

字符串的切片

str[ [start] : [stop] [:step] ]

s = ‘12345’

print(s[:]) # ‘12345’ 复制 从字符串的最开始到最末尾切片
print(s[2:]) # ‘345’
print(s[5:]) # ‘’
print(s[:3]) # ‘123’ 不包含终止索引值对应的元素
print(s[:-5]) # ‘’
print(s[1:-2]) # ‘23’
print(s[-1:-5:-1]) # ‘5432’
print(s[::-1]) # ‘54321’
print(s[::-3]) # ‘52’

注意

print(s[1👎-3]) # ‘’ 切片方向与索引值方向相反
print(s[2:-3:2]) # ‘’ 起始与终止索引值重合

web_site = ‘https://www.baidu.com’
print(web_site[8:])

print(’-’ * 50)
s = ‘ABCDEFG’

print(s[len(s)-2]) # ‘F’
print(s[-6:1:2]) # ‘’
print(‘FC’) # s[5:1:-3] s[-2::-3]

技能: 字符串 <–> 切片表达式

字符串的方法:
查看:
dir(str)

  查看使用:
     help(str.方法名)

字符串的格式化

字符串的方法

查看

print(dir(str))

判断字符串是否全是数字 # [重要]

print(‘123’.isdigit())

print(‘123a’.isdigit())

number = input(‘请输入:’)

if number.isdigit():

number = int(number)

print(‘结果:’, number, type(number))

判断字符串是否全是字母

print(‘123’.isalpha())

print(‘123a’.isalpha())

print(‘abc’.isalpha())

将字符串中的所有字母转换为大/小写

data = input(‘请输入:’)

if data.isalpha():

print(data.upper())

print(data.lower())

print(‘123a’.upper())

判断字符串是否以指定的内容开头或结尾 # [重要]

url = ‘www.baidu.com’

print(url.startswith(‘www’)) # 默认从字符串的最开头位置判断

print(url.startswith(‘bai’, 4)) # 从索引值为4位置开始向后判断

print(url.endswith(’.com’)) # 默认从字符串的最开头位置判断

print(url.endswith(‘du’, -6, -4)) # 从索引值为4位置开始向后判断

文件查找

s1 = ‘abc.txt’

s2 = ‘acc.py’

s3 = ‘bc.txt’

s4 = ‘bcd.py’

print(s1.endswith(’.txt’))

print(s2.endswith(’.py’))

print(s2.startswith(‘a’))

去除字符串的空白字符或指定字符 # [重要]

s = ’ pythonjavapyppp ’

print(s)

print(s.lstrip())

print(s.rstrip())

print(s.strip())

new_s = s.strip()

print(new_s.strip(‘py’))

print(new_s.strip(‘p’))

用户在输入误操作 & 爬虫中做数据清洗

data = input(‘请输入:’)

print(data.strip())

按照指定宽度居中

print(‘python’)

print(‘python’.center(10)) # 10个宽度居中,默认用空格填充

print(‘python’.center(10, '’)) # 10个宽度居中,用填充

print(‘python’.center(5)) # 宽度小于字符串的长度无效

场景:内容的居中显示

使用新字符替换旧字符 # [重要]

s = ‘p y t h o n’

print(s.replace(’ ', ‘’)) # 默认全部替换

print(s.replace(’ ', ‘’, 2)) # 替换2个

print(s.replace(‘a’, ‘A’)) # 不存在则不替换

计字符串中某个字符出现的次数 # [重要]

s = ‘banana’

print(s.count(‘a’))

print(s.count(‘a’, 2, -1))

print(s.count(‘n’))

print(s.count(‘p’))

从左至右查找字符的索引值

s = ‘banana’

print(s.index(‘a’))
print(s.index(‘a’, 2))
print(s.index(‘a’, -2))

问题

print(s.index(‘c’)) # 查找字符不存在,产生ValueError

print(s.find(‘a’, 2)) # [重要]
print(s.find(‘a’, -2))
print(s.find(‘c’)) # 查找字符不存在,返回-1

思考: 如何判断用户输入一个浮点数?

a.3 a.g.4 3.23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XU AE86

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值