ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python数据类型之字符串

2022-05-21 17:33:44  阅读:166  来源: 互联网

标签:字符 abc python print 数据类型 索引 字符串


参考:https://www.runoob.com/python/python-strings.html

介绍

字符串Str是python六类基本数据类型之一,用于表示1个或多个字符组合。
赋值:

s1 = '123'
s2 = "abc"
s3 = '''多行
输入'''
s4 = """多行
输出"""
  • 通过成对的单引号或双引号赋值单行字符串,不能直接保留换行字符,会报错,但可以使用转义字符\n
  • 通过成对的三引号赋值多行字符串,保留换行字符
  • 在python中没有直接的字符类型,单字符可以视为长度为1的字符串
print(type('abc'))

<class 'str'>

转义字符

转义字符的机制是为了表示某些无法编辑输入或者与python编程语言冲突的字符而存在。其特征是前缀字符''。

转义字符 描述
(在行尾时) 续行符
\ 反斜杠符号
' 单引号
" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,y 代表 0~7 的字符,例如:\012 代表换行。
\xyy 十六进制数,以 \x 开头,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

有时候,不想使用转义机制,可以在字符串前面使用r前缀,字符串将按照本身的字符输出。

a = 'abc\"'  # 输出:abc"
b = r'abc\"'  # 输出:abc\"

uniocde

unicode字符,实际是一种特殊的转义字符,由\uxxxx进行转义引起。也遵循加r不转义

索引和索引操作

python中的包括字符串在内的所有集合类型都支持两种索引:

  • 正向索引,从左往右,从0递增
  • 反向索引,从右往左,从-1递减
    截取(一个参数):
s[n]

n可以为一个正向的或者反向的索引,表示获取单个字符
n超出取值范围会抛出“IndexError: string index out of range”异常
截取(两个参数):

s[m:n]
s[m:]
s[:n]
s[:]
  • m和n分别表示开始索引和结束索引,遵循左开右闭取值
  • m和n可以都为正向索引,或者都为反向索引,也可以一个为正向另一个为反向索引。
  • m索引表示的字符必须在n索引表示的左边,否则返回''
  • 如果开始索引超出取值范围或者未定义,则截取结束索引左边的字符串。如果结束索引超出取值范围或者未定义,则截取开始索引及左边的字符串。如果开始索引和结束索引都超出或者未定义,则表示截取整个的字符串

截取(三个参数)

s[m:n:t]

t表示递增取值,默认为1,表示连续取值

拼接:

通过+运算符可以实现字符串之间的拼接,但是字符串不能与非字符串的类型直接拼接,必须对其它类型使用str()函数转换

复制:

通过*运算符可以实现字符的复制,其后的数字指定复制的次数

s1 = 'abc'
s2 = ',def'
print(s1+s2)	# abc,def
print(s1*2+s2*2)	# abcabc,def,def
print((s1*2+s2)*2)	# abcabc,defabcabc,def

是否包含:

'a' in s
'a' not in s
通过关键字in判断元素是否在集合中,返回bool类型值

方法

格式化

s = '%s,123'%('张三')
print(s)

%格式化,如果只有一个参数,参数可以不用()包围

s2 = f'hello,{123}'
# s3 = f'{1+2=}'
print(s2)

参数可以是字面量、变量或者运算式

\n和\r

\n:换行符,跳到下一行

\r:回车,跳到当前行的首部

\r会占据一个字符长度
f = open('ccc', mode='w', encoding='utf-8')
f.write('abc\r\ncde\r\n')
f.close()
f = open('ccc',mode='r',encoding='utf-8')
s = f.read()
print(s, s.encode('utf-8'), len(s))
f.close()
\r被写入文件时,会被替换为\n
s = 'abc\r\ncde\n123'
print(s, s.encode('utf-8'))
在控制台输出时,\r\n和\n的效果一致
s = 'abc5\rcde\n123'
print(s, s.encode('utf-8'))
在控制台输出时,\r的效果是对此行在其之前的内容清除,然后输出在其之后的内容

标签:字符,abc,python,print,数据类型,索引,字符串
来源: https://www.cnblogs.com/heibaimao123/p/16295531.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有