Python打卡(四)

字符串讲解

1、字符串的基本特点

字符串的本质是字符序列。Python中的字符串是不可变的,我们无法对原字符串做任何修改,但是,我们可以将字符串的一部分复制到新创建的字符串中,达到看起来修改的样子。
Python中字符串是一种基本类型,在Python中没有字符,即使是单个字符也是一个字符串。

2、字符串的编码

Python3中采用Unicode编码,可以表示世界上任何书面语言的字符,即采用16位Unicode编码,ASCII码是Unicode编码的自己。以下两个函数可以进行相互之间的转换:

>>>ord('A') #使用内置函数ord()可以把字符转换成对应的Unicode码
65
>>>ord('高')
39640
>>>chr(66)   #使用内置函数chr()可以把十进制数字转换成对应的字符
'B'

3、引用创建字符串

我们可以使用单引号或者双引号创建字符串。

>>>a = "abcdefghijklmnopq"
>>>print(a)
abcdefghijklmnopq
>>>b = 'abcdefghijklmnopq'
>>>print(b)
abcdefghijklmnopq
>>>c = "I'm a teacher"   #如果字符串中含有单引号则使用双引号创建字符串
>>>print(c)
I'm a teacher
>>>d = 'My name is "TOM"'
>>>print(d)
My name is "TOM"
>>>resume = '''name = "TOM"
company = "美团"  age = 21
lover = "MOM"'''
#用连续三个单引号或者连续三个双引号可以创建多行字符串
>>>print(resume)
name = "TOM"\ncompany = "美团"  age = 21\nlover = "MOM"

4、空字符串和len()函数

Python中允许空字符串的存在, 不包含任何字符且长度为0。使用len()函数可以计算字符串的长度。例如:

>>>a = ''
>>>len(a)
0
>>>b = 'hjk影'
>>>len(b)
4   #汉字和英文字符地位一样,都代表一个字符

5、转义字符


6、字符串拼接

(1)可以使用+将多个字符串拼接起来。
————如果+两边都是字符串,则拼接。
————如果+两边都是数字,则加法运算。
————如果+两边类型不同,则抛出异常。
(2)可以将多个字符串直接放到一起实现拼接,多个字符串之间使用空格分开即可。

>>>a = 'sxt'+'gaoqi'
>>>print(a)
sxtgaoqi
>>>b = 'sxt' 'gaoqi'
>>>print(b)
sxtgaoqi
>>>c = 3 + 4
>>>print(c)
7
>>>d = 3 + 'a'
Error

7、字符串复制

使用*可以实现字符串的复制。例如:

>>>a = 'Sxt'*3
>>>print(a)
'SxtSxtSxt'

8、不换行打印

Python中在调用print函数时,会自动打印一个换行符。有时,我们不想换行,不想自动添加换行符。我们可以通过使用end=“任意字符串”实现末尾添加任何内容:

print("sxt",end=' ')
print("gaoqi",end='###')
print('bang')#执行结果如下:
sxt gaoqi###bang

9、从控制台读取字符串

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

>>>myname = input("请输入名字:")   #此处进程处于阻塞等待状态
请输入名字:肉骨茶
>>>print(myname)
肉骨茶

10、str()函数

str()函数用来将其他数据类型转换为字符串。当我们调用print()函数时,解释器自动调用了str()将非字符串的对象转换成了字符串。
str()用法;

>>>str(5.20)
'5.2'
>>>str(314)
'314'
>>>str(3,14e2)
'314.0'
>>>str(True)
'True'

11、使用[ ]提取字符

在Python中我们可以通过在字符串后面添加[ ]在[ ]里面指定偏移量,可以提取该位置的单个字符。
(1)正向搜索:最左边第一个字符,偏移量是0,第二个偏移量是1,以此类推,直到len(str)-1为止。
(2)反向搜索:最右边第一个字符,偏移量是-1,倒数第二个的偏移量是-2,以此类推,直到-len(str)为止。

>>>a = 'abcdefghijklmnopqrstuvwxyz'
>>>print(a)
abcdefghijklmnopqrstuvwxyz
>>>a[0]
'a'
>>>a[26-1]
'z'
>>>a[-1]
'z'
>>>a[-26]
'a'
>>>a[-27]
Error
>>>a[26]
Error

12、replace()实现字符串替换

在Python中字符串是“不可改变的”,我们可以通过[ ]获取字符串指定位置的字符,但是我们不可以改变字符串,我们尝试改变字符串中某个字符,会报错,例如:

>>>a = 'abcdefghijklmnopqrstuvwxyz'
>>>a
'abcdefghijklmnopqrstuvwxyz'
>>>a[3] = '高'
Error

但是我们可以使用replace()替换某个字符,但其本质是创建一个新的字符串来实现。

>>>a = 'abcdefghijklmnopqrstuvwxyz'
>>>a
'abcdefghijklmnopqrstuvwxyz'
>>>a = a.replace('c','高')
>>>a
'ab高defghijklmnopqrstuvwxyz'

13、字符串切片

切片操作可以让我们快速提取字符串,其标准格式是:
[其实偏移量start:终止偏移量end:步长step]
其典型的操作有如下几种:


切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围内也不会报错。起始偏移量小于0则会被当做是0,终止偏移量大于“长度-1”会被当做是字符长度-1。例如:

>>>"abcdefg"[3:50]
'defg'

练习:
1、将“to be or not to be”字符串倒序输出

>>>"to be or not to be"[::-1]
'eb ot ton ro eb ot'

2、将“sxtsxtsxtsxtsxt”字符串中所有的s输出

>>>"sxtsxtsxtsxtsxt"[::3]
'sssss'

14、split()分割和join合并

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

>>>a = "to be or not to be"
>>>a.split()
['to','be','or','not','to','be']
>>>a.split('be')
['to ',' or not to ','']   #注意be后面有一个空字符串

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

>>>a = ['rgc','rgc100','rgc200']
>>>'*'.join(a)
'rgc*rgc100*rgc200'

拼接字符串要点:
使用字符串拼接+,会产生新的字符串对象,因此不推荐使用+来拼接字符串。推荐使用join函数,因为join函数在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象。用代码测试情况如下所示:


15、字符串驻留机制和字符串的比较

(1)字符串驻留:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。Python支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线、字母和数字)会启用字符串驻留机制。

>>>a = "abd_123"
>>>b = "abd_123"
>>>a is b
True
>>>c = "dd##"
>>>d = "dd##"
>>>c is d
False
>>>c == d
True

(2)成员操作符:in/not in 关键字,判断某个字符(子字符串)是否在一个字符串中。例如:

>>>a = "abcdefghijkl"
>>>"b" in a
True
>>>"bcd" in a
True
>>>"ddd" in a
False
>>>"ddd" not in a
True

16、字符串常用方法汇总

(1)查找方法
示例:a=’’‘我是高淇,今年18岁了,我在北京尚学堂科技上班。我的儿子叫高洛希,他6岁了。我是一个编程教育的普及者,希望影响6000万学习编程的中国人。我儿子现在也开始学习编程,希望他18岁的时候可以超过我’’’

(2)去除首尾信息strip()函数

(3)大小写转换

(4)格式排版

其中10代表一共10个字符,“*”表示总字符少于10个则用星号填充。

(5)其他方法

17、字符串的格式化

(1)format()函数

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

>>>"{:*>8}".format("245")
'*****245'
>>>"我是{0},我喜欢数字{1:*^8}".format("肉骨茶","666")
'我是肉骨茶,我喜欢的数字是**666***'

(3)数字格式化
例如:

>>>a = "我是{0},我的存款有{1:.2f}"
>>>a.format("肉骨茶","2345.2345")
'我是肉骨茶,我的存款有2345.23'

其余用法:

18、可变字符串
在Python中,字符串是可变的,但是当频繁的修改某一个字符串时,如果是使用replace()函数,就会生成多个对象,故可以使用io.StringIO对象来修改字符串的值。
例如:

>>>import io
>>>s = "hello,rgc"
>>>sio = io.StringIO(s)
>>>sio
<io.StringIO object at 0x02F462B0
>>>sio.getvalue()
'hello,rgc'
>>>sio.seek(7)      #指针移动到第7个位置
7
>>>sio.write("r")
1
>>>sio.getvalue()
'hello,rgc'

io.StringIO对象不会生成新的字符串对象,在修改的过程中是在sio一个对象中进行修改。

Python打卡四——字符串讲解相关推荐

  1. str.replace()——Python的“第四”字符串格式

    str.replace(),Python的"第四"字符串格式. [学习的细节是欢悦的历程] Python 官网:https://www.python.org/ Free:大咖免费& ...

  2. python的四种内置数字类型_浅析Python数字类型和字符串类型的内置方法

    一.数字类型内置方法 1.1 整型的内置方法 作用 描述年龄.号码.id号 定义方式 x = 10 x = int('10') x = int(10.1) x = int('10.1') # 报错 内 ...

  3. python string length_自学Python:第四篇字符串

    字符串的基本操作 在Python中有两个字符串基本运算 1 加法连接 2 数乘 在javascript只有+加法字符连接 字符串的计算长度 在Python使用内置方法 len() 在javascrip ...

  4. python 评分卡建模记录---使用到的各种函数(1)

    用python评分卡建模过程中使用到的numpy 和pandas中的方法 (一)python选取特定列--pandas的iloc和loc以及icol使用(列切片及行切片) df是一个dataframe ...

  5. python 评分卡建模记录---使用到的各种函数(1)(转载)

    python 评分卡建模记录-使用到的各种函数(1) 用python评分卡建模过程中使用到的numpy 和pandas中的方法 (一)python选取特定列--pandas的iloc和loc以及ico ...

  6. python处理多行字符串_python多行字符串

    Python中如何处理长代码格式化问题,如何提高格式化输出的长字符串的可读性? 当我们需要格式化输出一个很长的字符串的时候,都写在一行显得很难看,而且可读性也很差:当我们使用链式的语法写代码的时候常常 ...

  7. python中sort函数字符串_python中的sort方法使用详解

    < Python树莓派编程>--3.3 Python入门 本节书摘来自华章出版社<Python树莓派编程>一书中的第3章,第3.3节,作者:[美]沃尔弗拉姆·多纳特(Wolfr ...

  8. Swift解读专题四——字符串与字符

    2019独角兽企业重金招聘Python工程师标准>>> Swift解读专题四--字符串与字符 一.引言 Swift中提供了String类型与Characters类型来处理字符串和字符 ...

  9. Python基础数据类型之字符串(二)

    Python基础数据类型之字符串(二) 一.字符串的常规操作 二.字符串的大小写转换 1.首字母大写 2. 每个单词首字母大写 3.大写转化为小写 4.所有字母变成大写字母 二.验证码忽略大小写 三. ...

最新文章

  1. android 自定义图形,Android自定义View之图形图像(模仿360的刷新球自定
  2. FJUT OJ 2466 T^T的叛乱计划(组合数学)
  3. FreeMark将long类型的时间格式化
  4. shell 调用 sqlplus 各种情况示例
  5. python读取字典数据_Python:读取列表[{}]中的字典数据
  6. SAP Kyma的environmment和SAP 云平台的Global Account
  7. android webview 下载视频播放 206,Android webview+Html5 video
  8. opencore0.6.4_iOS 13.4/iPadOS 13.4正式版发布:iCloud支持文件夹共享
  9. 离散数学 第二类斯特林数 小白学习笔记
  10. python进行接口请求,第一个接口返回的数据作为第二个参数的入参
  11. React Native 入门第一篇
  12. 上海科技大学计算机研究生调剂,2021年上海科技大学考研招生调剂信息
  13. python 椭圆曲线dh密钥交换_密钥交换之DH算法
  14. 华东师范计算机模拟考试题答案,《计算机入门》模拟卷C答案-华东师范大学
  15. 图像识别 常用数据集
  16. QWebEngineView右键菜单翻译
  17. android 高光动画,记一个头像高光动画的CSS实现
  18. 深拷贝和原型原型链和web api 和 this指向等(中初级前端面事题)持续更新中,建议收藏
  19. [立业]想做老板?先做10道题!
  20. 数字电路硬件设计系列(二十一)之光电传感电路设计

热门文章

  1. 安徽事业单位考试计算机基本知识,2017安徽事业单位考试备考资料:计算机知识(文字处理软件World)...
  2. Software Version 1976
  3. 捉泥鳅用计算机怎么按,看看冬天是怎么捉泥鳅的,吓傻了
  4. 认证、授权、鉴权和权限控制
  5. 可达性统计(拓扑排序逆推)
  6. [Nginx] – 安全优化 – 配置文件优化 [二]
  7. Ecplise捕捉异常的快捷键
  8. Android Studio设置HTTP代理地址
  9. 数据结构复习(五)——树和二叉树
  10. linux驱动由浅入深系列:tinyalsa(tinymix/tinycap/tinyplay/tinypcminfo)音频子系统之一【转】