python数据类型——字符串(String)

本文介绍了Python中字符串的创建、运算、格式化等基础知识,并详细解释了字符串的索引、切片、转义符等概念,同时提供了丰富的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串的创建

字符串是 Python 中最常用的数据类型,可用 ’ 或 " 来创建,如:

var1 = 'Hello'
var2 = "world"

当字符串中有单引号时,可以使用双引号来创建,避免语法错误,如:

var = "It's OK."

当字符串中有双引号时,可以使用单引号来创建,避免语法错误,如:

var = 'He said:"Are you ok?"'

字符串是不可变对象,不能修改其中的值

字符串的运算

  1. 字符串拼接
    字符串只能与字符串进行拼接,数字与字符串拼接时,需先将数字转化成字符串str();
a = 1 #数字
b = "ABCDEFG" #字符串
c = '3' #字符串
#a+b会报错,int整数,str字符串,字符串与数字不能拼接
print(1+1) #输出整数2,数字之间可以进行算数运算
print(b+c) #输出ABCDEFG3,字符串之间可用加号进行拼接
#如果想拼接字符串和数字,需要用str()函数将数字转化为字符串类型
print(str(a) + b) #输出1ABCDEFG
#字符串也可以转换成数字,前提条件是,字符串的内部本身是数字
print(a + int(c)) #输出4
  1. 字符串重复输出
    字符串可以和数字n相乘,表示n个字符串
a,b = 3,0  
c = 'ABCD'
print(a * c) #输出ABCDABCDABCD,连续输出三个ACBD
print(b * c) #输出0个字符串,控制台无输出值
  1. 字符串中的转义符
    在需要在字符中使用特殊字符时,python用反斜杠()进行转义,常用的转义符有:\n换行,\t制表符
print('c:\note1.txt') #第一行输出c:,第二行输出ote1.txt,\n表示换行符
print('c:\\note1.txt') #输出c:\note1.txt,前面的\使后面的\不进行转义
print(r'c:\n\a\b\c\d\f\g')#在字符串的外面加一个r,表示后面的字符串都不进行转义
print('c:/note1.txt')#在python中,写文件路径时,可以使用/表示路径,代替\
  1. 字符串的下标
    在Python中,字符串的下标索引值以 0 为开始值,-1 为从末尾的开始位置。
str = 'abcd'
print(str[0])#输出a,输出字符串的第0位
print(str[-1])#输出d,输出字符串的最后一位
print(len(str)) #输出4,len()函数,可以查看字符串的长度
  1. 字符串中的切片
    字符串中的切片[起始值:终止值:步长],包含起始值,不包含终止值,步长是每几位取一次值:
str = "ABCDEFGHIJKLMN"
print(str[4:7])#输出EFG,当步长省略时,默认为1
print(str[:3])#输出ABC,起始值为省略,表示从第0位取到终止值
print(str[10:])#输出KLMN,终止值为省略时,表示从起始值取到尾
print(str[::3])#输出ADGJM,当起始值和终止值都省略时,表示从头取到尾
print(str[-3:])#输出LMN,字符串的下标或切片用负数,表示从后向前数
print(str[-3:0:-1])#输出LKJIHGFEDCB,步长为负数时,表示从后往前取值

更多可查询列表:附录:Python快速参考

字符串的格式化

如何在字符串里加入变量,进行填值?

传统的方法如下:

a,b = 3,5
print(str(a)+'+'+str(b)+'='+str(a+b))
#输出3+5=8,虽然输出正确,但是特别麻烦

使用占位符%的方式:%S表示字符串,%d表示整数类型,%f表示浮点类型…
1、前后参数的数量要一致,否则会报错

a,b = 3,5
print('%s+%s=%s'%(a,b,a+b)) #输出3+5=8

2、可通过数字进行规定占位符的长度
如,设置数字为n,当输入位数只有m位时,则补n-m位空格,如果m>n,则正常显示所有字符

info1 = "他叫%5s,她叫%5s,今年是%2d年"%("周杰伦","昆凌",2020)
print(info1) #输出:他叫  周杰伦,她叫   昆凌,今年是2020年

3、对于数字而言,还可以根据需要在左侧补0,字符串不能补0,会自动补空格

info2 = "他叫%s,她叫%05s,今年是%05d年"%("周杰伦","昆凌",20)
print(info2)#输出:他叫周杰伦,她叫   昆凌,今年是00020年

4、默认所有字符都是右对齐,如果需要左对齐,那么加上一个负号

info3 = "他叫%-5s,她叫%-5s,今年是%-5d年"%("周杰伦","昆凌",20)
print(info3)#输出:他叫周杰伦  ,她叫昆凌   ,今年是20   年

5、%f的用法

#用%f,默认保留6位小数
number1 = "这栋楼高%f米"%(6.5)
print(number1)#输出:这栋楼高6.500000米
# %a.b,a表示最少显示多少位,输入位数不足时,在前面补内容,b表示保留几位小数
number2 = "这层楼高%06.2f米"%(3.2)
print(number2)#输出:这层楼高003.20米,3前面补了两位0
#浮点数会四舍五入,需要左对齐时,加上一个负号即可
number3 = "这层楼高%-6.1f米"%(3.68)
print(number3)#输出:这层楼高3.7   米

使用 ‘{}’.format() 方法如下:

#最低位数用:n表示
str1 = "He name is {:6},She name is {:6},age is {:6}。".format('周杰伦','昆凌',23)
print(str1)#输出:He name is 周杰伦   ,She name is 昆凌    ,age is     23。

#对齐方式:字符串默认左对齐,数字默认右对齐
#如果要改变对齐方式,>表示右对齐,<表示左对齐,^表示中间对齐
str2 = "He name is {:>6},She name is {:<6},age is {:^6}。".format('周杰伦','昆凌',23)
print(str2)#输出:He name is    周杰伦,She name is 昆凌    ,age is   23  。

#前后参数的个数不一致时,前>后,报错,后>前,不报错
str3 = "He name is {},She name is {},age is {}。".format('周杰伦','昆凌',23,24)
print(str3)#输出:He name is 周杰伦,She name is 昆凌,age is 23。

#对于数字而言,可以根据需要在左侧补0
str4 = "He name is {},She name is {},age is {:06}。".format('周杰伦','昆凌',23)
print(str4)#输出:He name is 周杰伦,She name is 昆凌,age is 000023。

#也可以使用下标法来表示字符串内容
str5 = "He name is {0},She name is {2},age is {1}。".format('周杰伦',23,'昆凌')
print(str5)#输出:He name is 周杰伦,She name is 昆凌,age is 23。
#下标法要注意,要填就全填,不要只填一半,否则会报错

在Python3.6以后的版本中,可以使用f’'的方式,表示格式化字符串

name1 = "周杰伦"
name2 = "昆凌"
print(f'He name is {name1},She name is {name2}')
#输出:He name is 周杰伦,She name is 昆凌

三引号

三引号既可以是三个单引号’’’,也可以是三个双引号""",它允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符,如:

var = '''这是一个多行字符串,
多行字符串可以使用制表符TAB ( \t )。
也可以使用换行符 [ \n ]。'''

在三引号中的内容,按原样输出(所见即所得),三引号主要有以下两个作用:
作用一:定义多行字符串
三引号可以让程序员从引号和特殊字符串的泥潭里面解脱出来,如:

var = ''' He said:"Are you OK?"
She said:"It's ok."'''

另一个典型用例是,可用于写入一段HTML或SQL,如:

sql_crete_table = '''CREATE TABLE CUSTOMER(
FULL_NAME CHAR(20) NOT NULL,
AGE INT,
SEX CHAR(1))'''

从上面的例子可以看出,采用多行字符串定义,可以使程序更加清晰,规整,可读性更好。

作用二:进行多行注释
Python中注释是井号 #,但是如果需要描述多行注释的时候,就需要每行都写一个 #,这时用三引号进行多行注释,就显示很简单方便了。

"""
这是多行注释第一行
这是多行注释第二行
这是多行注释第三行
"""

扩展:多行语句在一行输出
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠()来实现多行语句

str = '''item_one \
item_two \
item_three
'''
print(str)#在同一行输出item_one item_two item_three

在 [], {}, 或 () 中的多行语句,则不需要使用反斜杠()

str = ['item_one', 
'item_two', 'item_three',]
print(str)#在同一行输出['item_one', 'item_two', 'item_three']

字符串的常用内建函数

  1. index()函数:找到某一个字符/串位于字符串中的第几位
str = "ABCD"
print(str.index('C'))#输出2,找到'C'位于字符串中的第几位
  1. len() 函数:计算字符串的长度
str = "ABCD"
print(len(str))#输出4

### Python 字符串处理方法和函数 #### 字符串定义 字符串Python 中最常用的数据类型之一,它们可以用单引号或双引号来表示[^1]。 ```python single_quoted_string = 'Hello, world!' double_quoted_string = "Hello, universe!" ``` #### 基本字符串操作函数 ##### 拼接字符串 可以通过加号 `+` 来实现两个字符串的拼接: ```python greeting = "Hello" name = "Alice" message = greeting + ", " + name # 输出: Hello, Alice ``` ##### 分割字符串 使用 `split()` 函数可以根据指定分隔符将字符串分割成列表: ```python text = "apple,banana,cherry" fruits = text.split(",") # ['apple', 'banana', 'cherry'] ``` ##### 查找子串位置 利用 `find()` 或者 `index()` 可以找到某个子串首次出现的位置;如果找不到,则 `find()` 返回 `-1` 而 `index()` 抛出异常: ```python sentence = "Welcome to the jungle." position_find = sentence.find("jungle") # position_find=11 try: position_index = sentence.index("desert") except ValueError as e: print(e) # substring not found ``` ##### 替换子串 通过 `replace(old, new)` 将旧子串替换成新子串: ```python old_text = "I like cats and dogs." new_text = old_text.replace("cats", "rabbits") # I like rabbits and dogs. ``` ##### 大小写转换 支持多种大小写的转换方式,比如全部大写、首字母大写等: ```python lowercase = "hello".upper() # HELLO uppercase = "WORLD".lower() # world capitalized = "john doe".capitalize() # John doe titlecased = "john DOE".title() # John Doe ``` #### 特殊字符处理 ##### 去除空白字符 为了去除字符串两端多余的空格或其他空白字符,可以采用 `strip()` 方法。此方法会移除开头和结尾处所有的空白字符(包括空格、制表符 `\t` 和换行符 `\n`),但不会影响中间部分的任何空白字符[^2]。 ```python trimmed_string = ' hello there! '.strip() print(trimmed_string) # hello there! ``` #### 序列转字符串 当有一个由多个项组成的序列并希望将其组合成单一字符串时,可借助于 `join()` 方法。该方法接收一个迭代器作为参数,并用给定的分隔符把各个元素连在一起形成一个新的字符串对象[^3]。 ```python words_list = ["Python", "is", "awesome"] joined_sentence = "-".join(words_list) print(joined_sentence) # Python-is-awesome ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值