2019-07-31

字符串

1.什么是字符串(str)

(1)字符串

字符串是容器型数据类型(序列);以单引号或者双引号作为容器的标志,引号中所有的内容都输入字符串的元素
'abc' → 元素分别是'a','b','c',3个元素
'a, b, c' → 分别是'a',',','b',',','c',5个元素
特点:不可变,有序(支持下标操作)

(2)字符串的元素

字符串中元素又叫字符(注意:python中有字符的概念,但是没有字符类型;长度是1的字符串就可以看成字符)
a.普通字符:字母、数字、各国的文字
b.转义字符:字符串中在一些特定的符号前加\来表示特殊功能和意义
\t - tab(制表符)
\\ - \
\n - 换行
\' - '

str1 = 'abc\'12\"3'
str2 = 'abc\n123'

c.字符编码
计算机只有直接存储数字的能力,不能直接存储字符;当需要计算机存储字符的时候,实质存的是字符对应的固定的数字,这个数字就是字符在计算机中的编码;
每一个字符和数字的对应关系叫编码表
ASCII码表和Unicode编码表
ASCII码表是由美国国家标准制定的专门针对美国符号进行编码的,里面只包含一些特殊符号、字母和数字(不支持其它语言)
python采用的是Unicode编码表
Unicode编码表是对ASCII表的扩展,包含了世界上所有国家所有语言的符号(又叫万国码)
中文范围:0x4e00 ~ 0x9fa5
字符编码相关方法
chr(编码值) - 将编码值转换成字符
ord(字符) - 获取字符对应的编码值

2.字符串操作

和列表获取元素一样
获取单个字符
字符串[下标]
字符串切片
字符串[开始下标:结束下标:步长]

str1 = 'hello world!'
print(str1[0])
# 'h'
print(str1[2:6:2])
# 'lo'

字符串拼接
字符串1 + 字符串2 → 将字符串1和字符串2拼接在一起产生一个新的字符串
== !=
>,<,>=,<=

print('abc' > 'bc') #False
print('abcf' > 'abca') # True
print('abcef' > 'aeaaaa')
# 判断是否是中文
# '\u4e00 <= char <= '\u9fa5'

in/not in
字符串1 in 字符串2 → 判断字符串2是否包含字符串1

str3 = 'how are you!'
print('how' in str3) # True
print('ha' in str3) # False   

字符串转换
所有的数据都可以转换成字符串,转换的时候是将数据放在引号中
r语法
在字符串的最前面加r或R,可以阻止字符串中所有的转义字符转移

str1 = r'\thow\nare\you'!\u4e00'

格式字符串
在字符串中用格式占位符表示字符串中不确定的部分

name = input('姓名:')
age = int(input('年龄:'))
gender = input('性别:')
print('姓名:%s 年龄:%d 性别:%s' % (name, age, gender))

字符串相关方法

字符串.center(宽度, 填充字符=' ') - 居中
字符串.ljust(宽度, 填充字符=' ') - 左对齐
字符串.rjust(宽度, 填充字符=' ')
字符串.zfill(宽度) == 字符串.rjust(宽度, 0)
统计子串的个数
字符串.count(字符串2)
字符串中寻找子串
str1.find(子串) - 找不到会返回-1
str1.index(子串) - 找不到会报错

str1 = 'dsfyou youldj'
print(str1.rjust(9, '+'))
print(str1.count('you'))

print(str1.find('you'))
print(str1.index('you'))

join方法
字符串.join(序列) - 序列中的元素用字符串连接产生一个新的字符串
要求序列中的元素必须是字符串,如果是字典,key必须是字符串

str1 = ''.join({'name':'小明', 'age':18})
# nameage

替换
字符串1.replace(字符串2, 字符串3) - 将字符串1中所有的字符串2都替换成字符串3
字符串切割
字符串1.split(字符串2) - 将字符串2作为切割点切割字符串1,返回一个列表

str1 = 'how are you! Im fine, thank you'
str_list = str1.split(' ')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、字符串基础 1. 什么是字符串(str) 1)字符串 字符串是容器型数据类型(序列) 以单引号或者双引号作为容...
    Lis_reak阅读 328评论 0 0
  • day8-字符串 一.字符串 1.什么是字符串(str) (1)字符串字符串是容器型数据类型(序列),以单引号或者...
    晨凡_2019阅读 205评论 0 0
  • 字符串 review 1.字典(dict) {key:value, key1:value1,...}特点: 可变的...
    漫磋嗟阅读 325评论 0 0
  • 字符串 一.字符串 1.什么是字符串(str) 1)字符串字符串是容器型数据类型;以单引号或者双引号作为容器的标志...
    风中逐月fzzy阅读 265评论 0 0
  • 我们不缺少知识,但是缺少常识,各种生活常识。而我不是来给别人科普的。我只是提提这一种理念,让感兴趣的人自己摸索去。...
    成成日志阅读 274评论 0 1