第2节(2) 字符串


函数

len()

Python 允许空字符串的存在,不包含任何字符且长度为 0。len()用于计算字符串含有多少字符。

a = 'I am Joshua'
b = ''
c = len(a)
d = len(b)
print(c,d) #11,0

str()

str()可以帮助我们将其他数据类型转换为字符串。

print(str(5.202)) #'5.202'
print(str(2.14e2)) #'214.0'
print(str(True)) #'True'

replace()

1、字符串是“不可改变”的,我们通过[]可以获取字符串指定位置的字符,但是我们不能改变 字符串。
2、字符串不可改变。但是,我们确实有时候需要替换某些字符。这时,只能通过创建新的字符 串来实现。
3、整个过程中,实际上我们是创建了新的字符串对象,并指向了变量 a,而不是修改了以前的 字符串。

a = 'abcdefg'
print(a.replace('a','1'))#1bcdefg
#如果我们用a[0]='1'会报错

split()与join()

split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔 符,则默认使用空白字符(换行符/空格/制表符)。

a = 'one two two three'
print(a.split()) #['one', 'two', 'two', 'three']
print(a.split('one')) #['', ' two two three']
print(a.split('two')) #['one ', ' ', ' three']

join()的作用和 split()作用刚好相反,用于将一系列子字符串连接起来。

使用字符串拼接符+,会生成新的字符串对象,因此不推荐使用+来拼接字符串。推荐 使用 join 函数

a = ['one','two','yes']
print('*'.join(a)) #one*two*yes
print(' '.join(a)) #one two yes

去除首尾信息strip()

我们可以通过 strip()去除字符串首尾指定信息。通过 lstrip()去除字符串左边指定信息, rstrip()去除字符串右边指定信息。

a = "*a*b*c*" 
b = "    efg   " 
print(a.strip("*")) #a*b*c
print(a.lstrip("*")) #a*b*c*
print(a.rstrip("*")) #*a*b*c
print(b.strip()) #efg

字符串的格式化format()

基本语法是通过 {} 和 : 来代替以前的 % 。
我们通过示例进行格式化的学习。
format 函数可以接受不限个参数,位置可以不按顺序。

字符串的格式化

a = 'my name:{0}, age {1}'
print(a.format('joshua','21'))
#my name:joshua, age 21

数字格式化

在这里插入图片描述

填充与对齐

填充常跟对齐一起使用 ^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

print("{:*>8}".format("245")) #*****245
print('i am {0},I like number {1:*^8}'.format('jason','123')) #i am jason,I like number **123***

input()

我们可以使用 input()从控制台读取键盘输入的内容。

phone_number = input("Give me your number:") #Give me your number:123456
print(phone_number) #123456

检测isxxx()用法

isalnum() 是否为字母或数字
isalpha() 检测字符串是否只由字母组成(含汉字)
isdigit() 检测字符串是否只由数字组成。
isspace() 检测是否为空白符
isupper() 是否为大写字母
islower() 是否为小写字母

a = "abc123"
print(a.isalnum())  #True
print(a.isalpha())  #False
print(a.isdigit()) #False
print(' '.isspace()) #True
print('Abc'.isupper()) #False
print(a.islower()) #True

转义字符

在这里插入图片描述


不换行打印

我们前面调用 print 时,会自动打印一个换行符。有时,我们不想换行,不想自动添加换行 符。我们可以自己通过参数 end = “任意字符串”。

print("123",end=' ') 
print("sxt",end='##') 
print("sxt")
#123 sxt##sxt

字符串拼接

  1. 可以使用+将多个字符串拼接起来。例如:’aa’+ ’bb’ ==>’aabb’。
    (1) 如果+两边都是字符串,则拼接。
    (2) 如果+两边都是数字,则加法运算。
    (3) 如果+两边类型不同,则抛出异常。
  2. 可以将多个字面字符串直接放到一起实现拼接。例如:’aa’’bb’==>’aabb’

使用[]提取字符

字符串的本质就是字符序列,我们可以通过在字符串后面添加[],在[]里面指定偏移量, 可以提取该位置的单个字符。

正向搜索:
最左侧第一个字符,偏移量是 0,第二个偏移量是 1,以此类推。直到 len(str)-1
为止。
反向搜索:
最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,以此类推,直到-len(str) 为止。

a = 'abcdefghijklmnopqrstuvwxyz'
print(a[0]) #a
print(a[1]) #b
print(a[-1]) #z
# print(a[-31]) #error

字符串切片 slice 操作

切片 slice 操作可以让我们快速的提取子字符串。标准格式为: [起始偏移量 start:终止偏移量 end:步长 step]
在这里插入图片描述


常用查找方法

a = "I am Joshua from China, like one and one and one"
print(a.startswith('I am Joshua')) #True
print(a.endswith('and one')) #True
print(a.find('Joshua')) #5
print(a.rfind('like')) #24
print(a.count('one')) #3
print(a.isalnum()) #False

大小写转换

a = “gaoqi love programming, love SXT”
在这里插入图片描述
在这里插入图片描述


格式排版

center()、ljust()、rjust()这三个函数用于对字符串实现排版。

a = "123"
print(a.center(10)) #   123    
print(a.center(10,"*")) #***123****
print(a.ljust(10,"*")) #123*******
print(a.rjust(10,"*")) #*******123

可变字符串

在 Python 中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,智 能创建新的字符串对象。但是,经常我们确实需要原地修改字符串,可以使用 io.StringIO 对象或 array 模块。

import io 
s = 'I am Jka'
sio = io.StringIO(s)
sio.getvalue()
sio.seek(2)
sio.write('g')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值