python基础——数据类型(三)字符串

本文介绍了Python中的字符串类型str,强调其Unicode特性及与bytes类型的转换,包括encode和decode方法。还讨论了字符串的表示形式,如单引号、双引号和长字符串,以及原始字符串和转义字符的概念。此外,提到了一些常见的字符串操作,如连接、重复和索引等。
摘要由CSDN通过智能技术生成

如有兴趣了解更多请关注我的个人博客https://07xiaohei.com/

(一)概述:

字符串类型,也是文本序列类型,是Python中最常用的类型,在Python中是str类型。

在Python3.x版本中,字符串全部是由Unicode国际码构成的,是一个不可变序列,其存储位数全部为16位,不再有8位的ASCII码存储了。

但是如果需要在网络上传输或者保存到磁盘,这个序列需要变成以字节为单位的bytes。对于Python来说,bytes类型的数据只需要在字符串前面加上b前缀即可。

Unicode表示的str通过encode()方法可以编码为指定bytes,而bytes变为str可以统decode()方法转换。

注意:python中没有字符类型,单个字符默认为字符串类型。

格式化内容请参考python基础——输入和输出详解

本文无字符串函数讲解(太多了),可能以后会再补充博客进行单独说明~

a = "我"
b = "我".encode()
c = "a"
d = b"a"
print(a," ",type(a))
print(b," ",type(b))
print(c," ",type(c))
print(d," ",type(d))
# 输出结果:
# 我   <class 'str'>
# b'\xe6\x88\x91'   <class 'bytes'>
# a   <class 'str'>
# b'a'   <class 'bytes'>

(二)形式:

  1. 单引号,形式为 '字符串内容 ',单引号内允许含有双引号。
  2. 双引号,形式为 "字符串内容 ",双引号内允许含有单引号。
  3. 三引号且均为单/双引号,此为长字符串,形式为 ‘’'字符串内容 “'或者是”"“字符串内容 “””,此内容可以跨越多行,而且允许字符串包含换行符、制表符、单双引号(不会冲突)以及其他特殊字符,所有的空白字符也将包含在该字符串中。
a = '1'
b = "1"
c = """1 
2
3 ""
4"""
d = '''1 
2
3 ''
4'''
print("name,a:",a)
print("name,b:",b)
print("name,c:",c)
print("name,d:",d)
# 运行结果:
# name,a: 1
# name,b: 1
# name,c: 1 
# 2
# 3 ""
# 4
# name,d: 1 
# 2
# 3 ''
# 4

(三)原始字符串:

在字符串或者长字符串的开头加上r/R前缀,字符串将会变为原始字符串。

在原始字符串中,反斜杠不再是转义字符,所有内容均保持不变。

但如果出现引号,反斜杠仍然会对引号进行转义,这会导致如果是结尾处出现反斜杠,会将后面的引号转义,导致没有结束引号而产生错误,且这个反斜杠没有办法转义自己,无法断开与后面引号的练习。

解决方法:利用字符串拼接,将最后一个\放到另一个非原始字符串中然后进行拼接即可。

a = r"\n\n\n\n\n"
b = R"abcd\t"
c = r'\\aaa'
d = r"D:\pycharmwork"+"\\"
print(a)
print(b)
print(c)
print(d)
# 输出结果:
# \n\n\n\n\n
# abcd\t
# \\aaa
# D:\pycharmwork\

(四)转义字符:

   \n  :换行
   \\  :反斜杠符号
   \'  :单引号
   \"  :双引号
   \000:空
   \a  :响铃
   \b  :退格
   \v  :纵向制表符
   \t  :横向制表符
   \r  :回车
   \f  :换页
   \oyy:八进制数,yy代表的字符,例如:\o12代表换行
   \xyy:十六进制数,yy代表的字符,例如:\x0a代表换行
   \other:其它的字符以普通格式输出
a = "\\"
b = "1\n2\n3" 
c = "\"我\'"
d = "wi\000n"    #\000相当于空格了
e = "1\t2\t3\t"  #\t在制表
f = "1111\b\b\b" #\b将后面三个1退格而消失了
g = "\012 \x24"  # \012相当于换行 \x24对于ASCII码对应的是$
h = "\v\v\v"     #就是纵向制表
i = "\r\r\r"     #\r表示回车确定,无显示。
print("显示值:"+a,b,c,d,e,f,g,h,i,sep="\n显示值:")
# 输出结果:
# 显示值:\
# 显示值:1
# 2
# 3
# 显示值:"我'
# 显示值:wi n
# 显示值:1	2	3	
# 显示值:1
# 显示值:
#  $
# 显示值:

(五)字符串操作:

+        字符串连接   
*        重复输出字符串   
[]       通过索引获取字符串中字符
[x:y]    截取字符串中的一部分,遵循左闭右开原则.
in       成员运算符-如果字符串中包含给定的字符返回True
not in   成员运算符-如果字符串中不包含给定的字符返回True
r/R      原始字符串
%        格式化字符串
a = "I"+" "+"Love"+"the world"+"!"
b = "帅" * 8
c = a[2]
d = a[0:6]
e = ""
f = ""
if c in a:
    e="666"
else:
    e="欧尼酱~"
if b not in a:
    f="1"
else:
    f="0"
print(a,b,c,d,e,f,sep="\n")
# 运行结果:
# I Lovethe world!
# 帅帅帅帅帅帅帅帅
# L
# I Love
# 666
# 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xiaohei07

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

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

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

打赏作者

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

抵扣说明:

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

余额充值