字符串的运用

python数据分析学习笔记

第二节

一、链式赋值

链式赋值用于同一个对象赋值给多个变量。
x=y=123 相当于:x=123;y=123
二、系列解包赋值
系列数据赋值给对应相同个数的变量(个数必须保持一致)
如:a,b,c=4,5,6 相当于: a=4;b=5;c=6

系列解包赋值实现变量交换:

>>> a,b=1,2
>>> a,b=b,a
>>> print(a,b)

二、常量

Python不支出常量,即没有语法规则限制改变常量的值。则,以及在程序的逻辑上不对常量的值作出修改。

>>> MAX_SPEED = 120
>>> print(MAX_SPEED)
>120
>>> MAX_SPEED = 130 #实际是可以改,其实是逻辑上做了修改
>>> print(MAX_SPEED)
>130

三、最基本内置数据类型介绍

每个对象都有类型,python中最基本的内置数据类型:

  1. 整形
    整数,2334,23,10
  2. 浮点型
    小数,3.14或者科学计数法314e-2
  3. 布尔型
    表示真假,仅包含:Ture、False
  4. 字符串类型
    由字符组成的序列。 “abc” ,“sxt”,“和”

四、数字

Python支持整数(如:50,520)和浮点数(3.14,10.0,1.23e3)

五、整数

1、Python中,除10进制,还有其他三种进制:
	0b或0B,二进制  0  1
	0o或0O,八进制  0  1  2  3  4  5  6  7
	0x或0X,十六进制  0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
	如:
>>>0b101
5
>>>0o123
83
>>>0x255
597
2、使用int()实现类型转换:
①浮点数直接社区小数部位。如:int(1.23) 得1
②布尔值Ture转为1,Fals转为0。如:int(Ture)得1
③字符串符合整数格式(浮点数格式不行)则直接转成对应整数,否则报错。
>>>int("456")
456
>>>int("456abc")
Tracebacck...
3、自动转型:
整数如浮点数混合运算时,表达式结果自动转型成浮点数,如:2+8.0结果为10.0
4、整数有多大
>>>googol = 10**100
1000000000000000000000000000000000

注:Python可以做超大数的运算,而不会造成"整数溢出"

六、浮点数

浮点数,称为float。
浮点数用a*b^10形式的科学计数法表示。如:3.14表示为:3.14E-2或者314e-2
这些数字在内存中也是按照科学计数法存储。

七、类型转换和四舍五入

  1. 类似于int(),我们也可以使用float()将其他类型转化成浮点数
  2. 整数和浮点数混合运算时,表达式结果自动转型成浮点数。如:2+8.0得10.0
  3. round(value)可以返回四舍五入的值
    注:不会改变原有值,而是产生新的值

八、增强型赋值运算符

运算符有:+,-,*,/,//,**和% 赋值符=结合构成"增强型赋值运算符"
如:a = a + 1 得:a += 1(以此类推)

九、时间的表示

计算机的时间是从19701.1 00:00:00开始进行计算的。
这个时间为"unix时间点"
python中可以通过time.time()来获取当前时刻返回的值以秒精度的浮点值。如:1234325543.4465646
totalMinutes
totalHours
totalDays
totalYears

十、布尔值

python2无布尔
python3有布尔
0为false 1为true

>>> a = True
>>> b = 3
>>> a + b
4

十一、比较运算符

所有比较运算符返回1为真,返回0为假,这是分别与特殊的变量Ture和False等价

运算符描述实例
==等于 - 比较对象的值是否相等(a == b)返回 False
!=不等于 - 比较两个对象的值是否不相等(a !=) 返回ture
>大于 - 返回x是否大于y(a > b)返回False
<小于 - 返回x是否小于y(a < b)返回ture
>=大于等于 - 返回x是否大于y(a >= b)返回False
<=小于等于 - 返回x是否小于等于y( a<= b返回ture)

十二、逻辑运算符

运算符格式说明
or 或x or yx为ture,则不计算y,直接返回ture x为false,则返回y
and 与x and yx为ture,则返回y的值 x为false,则不计算y,直接返回false
not 非x not yx为ture,返回false x为false返回ture

十三、同一运算符

同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。

运算符描述
isis 是判断两个标识符是不是引用同一个对象
is notis not 是判断两个标识符是不是引用不同对象

is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个,既比较对象的地址。 == 用于判断引用变量引用对象的值是否相等,默认调用对象的 eq()方法

十四、整数缓存问题

	Python 仅仅对比较小的整数对象进行缓存(范围为[-5, 256])缓存起来,而并非是所有整数对 象。需要注意的是,这仅仅是在命令行中执行,而在 Pycharm 或者保存为文件执行,结果是不一样 的,这是因为解释器做了一部分优化(范围是[-5,任意正整数])。 

·总结

  1. is 比较两个对象的 id 值是否相等,是否指向同一个内存地址;
  2. 比较的是两个对象的内容是否相等,值是否相等;
  3. 小整数对象[-5,256]在全局解释器范围内被放入缓存供重复使用;
  4. is 运算符比 == 效率高,在变量和 None 进行比较时,应该使用 is。

十五、字符串(重点)

1、字符串的基本特点

字符串的本质是:字符序列,Python 的字符串是不可变的,我们无法对原字符串做任 何修改。

2、字符串编码

python3直接支持unicode。
python3的字符默认十六位unicode编码。
ASCⅡ码是unicode编码的子集。
使用内置函数 ord()可以把字符转换成对应的 Unicode 码;
使用内置函数 chr()可以把十进制数字转换成对应的字符。

3、引号创建字符串

可以通过单引号或双引号创建字符串。如::a=’hyh’;b=”lcy”
两种引号的好处是可以创建本身就包含引号的字符串,而不用使用转义字符。
如:

>>>a = "I'm a teacher!"
>>>print(a)
I'm a teacher
>>>b ='my_name is "TOM"'
>>>print(b)
my_name is "TOM"

连续三个单引号或三个双引号,可以帮助创建多行字符串
如:

>>>resume = '''name = "hyh"
age = 21 '''
>>>print(resume)
name = "hyh"
age = 21

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

Python 允许空字符串的存在,不包含任何字符且长度为 0
如:

>>> c = "
>>> len(c)
0

len()用于计算字符串含有多少字符
如:

>>> d = 'abc 何屹虎'
>>> len(d)

5、转义字符

使用“+特殊字符”,实现某些难以用字符表示的效果
如:

转义字符描述
\ (在行尾时)续行符
\ \反斜杠符号
单引号
"双引号
\b退格(Backspace)
\n换行
\t\t 横向制表符
\r回车

6、字符串拼接

可以使用+将多个字符串拼接起来
如:’aa’+ ’bb’ ==>’aabb’。
① 5如果+两边都是字符串,则拼接。
② 如果+两边都是数字,则加法运算。
③ 如果+两边类型不同,则抛出异常
可以将多个字面字符串直接放到一起实现拼接
如:‘aa’ ‘bb’ > ‘aabb’

7、字符串复制

使用*可以实现字符串复制。

>>>a = 'hyh*3'
>>>a
'hyhhyhhyh'

8、从控制台读取字符串

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

9、str()实现数字转型字符串

str()可以帮助我们将其他数据类型转换为字符串。
如:str(5.20) ==> ‘5.20’

10、使用[]提取字符

在字符串后面添加[]
正向搜索:
最左侧第一个字符,偏移量是 0,第二个偏移量是 1,以此类推。直到 len(str)-1 为止。
反向搜索:
最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,以此类推,直到-len(str) 为止。

11、字符串切片 slice 操作

切片 slice 操作可以让我们快速的提取子字符串 (包头不包尾)
标准格式为:
切片 slice 操作可以让我们快速的提取子字符串
典型操作

操作和说明示例示例
[:] 提取整个字符串“abcdef”[:]“abcdef”
[start:]从 start 索引开始到结尾“abcdef”[2:]“cdef”
[:end]从头开始知道 end-1“abcdef”[:2]“ab”
[start:end]从 start 到 end-1到 end-1 “abcdef”[2:4]“cd”
[start🔚step]从 start 提取到 end-1,步长是 step“abcdef”[1:5:2]“bd”

其他操作(三个量为负数)

示例说明结果
“abcdefghijklmnopqrstuv wxyz”[-3:]倒数三个“xyz”
“abcdefghijklmnopqrstuv wxyz”[-8:-3]v wxyz"[-8:-3] 倒数第八个到倒数第 三个(包头不包尾)stuvw
“abcdefghijklmnopqrstuv wxyz”[::-1]步长为负,从右到左 反向提取‘zyxwvutsrqpon mlkjihgfedcba’

12、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 ', '']

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

13、常用查找方法

文本为测试代码:

方法和使用示例说明结果
len(a)字符串长度96
a.startswith(‘我是高淇’)以指定字符串开头True
a.endswith(‘过我’)以指定字符串结尾True
a.find(‘高’)第一次出现指定字符串的位置2
a.rfind(‘高’)最后一次出现指定字符串的位置29
a.count(“编程”)指定字符串出现了几次3
a.isalnum()所有字符全是字母或数字False

14、大小写转换

示例说明结果
a.capitalize()产生新的字符串,首字母 大写Gaoqi love programming, love sxt’
a.title()产生新的字符串,每个单 词都首字母大写'Gaoqi Love Programming, Love Sxt
a.upper()产生新的字符串,所有字 符全转成大写Gaoqi Love Programming, Love Sxt
a.lower()产生新的字符串,所有字 符全转成小写gaoqi love programming, love sxt
a.swapcase()产生新的,所有字母大小 写转换GAOQI LOVE PROGRAMMING, LOVE sxt

15、格式排版

center()(居中)、ljust()(左对齐)、rjust()(右对齐)这三个函数用于对字符串实现排版。

16、其他方法

  1. isalnum() 是否为字母或数字
  2. isalpha() 检测字符串是否只由字母组成(含汉字)。
  3. isdigit() 检测字符串是否只由数字组成。
  4. isspace() 检测是否为空白符
  5. isupper() 是否为大写字母
  6. islower() 是否为小写字母
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值