Python 数据类型(1)

Python 数据类型

Python 数据类型
数值
布尔型
bool
str
字符串
数据要带引号
'字符串'
''字符串''
'''字符串'''
'' '' ''字符串'' '' ''
list
列表
tuple
元组
set
集合
dict
字典
int
整型
float
浮点型
True
False

检测数据类型:

type(变量名)

1.变量赋值方式

变量名自定义,要满足标识符命名规则
1.单一变量赋值
变量名 = 值
2.链式赋值
将同一个对象赋值给多个变量。
a=b=1 相当于:a=1; b=1
3.系列解包赋值
若干数据赋值给对应相同个数的变量(个数必须保持一致)
a,b,c=1,2,3 相当于:a=1;b=2;c=3

使用系列解包赋值实现a、b值的交换:

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

2.基本数据类型

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

3.算数运算符

Python支持整数(如:50,520)和浮点数(如:3.14,10.0, 1.23e2)。
可以使用算数运算符对数字进行运算。

运算符功能示例结果
+加法1+23
-减法2-11
*乘法2*24
/除法6/32
//整除9//42
%取余9%41
**2**38
()提高运算优先级(1+2)*26

/(除法)和 //(整除)
在这里插入图片描述
0不能当作除数,否则报错

3/0
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    3/0
ZeroDivisionError: division by zero

divmod()函数

# divmod()可以同时得到商和余数
divmod(9,4)
(2, 1)

返回值为元组类型


4.整型数据 int

int()实现类型转换:
1.浮点数直接舍去小数部分。如:int(9.9)结果是:9
2. 布尔值 True 转为 1,False 转为 0。 如:int(True)结果是 1
3. 字符串符合整数格式则直接转成对应整数,否则报错

int("456") 
456 

int("456abc") 
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    int("456abc")
ValueError: invalid literal for int() with base 10: '456abc'

int("456.78")
Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    int("456.78")
ValueError: invalid literal for int() with base 10: '456.78'

整数和浮点数混合运算时,表达式结果自动转型成浮点数。比如:1+2.0的结果是3.0。
Python3的整数位数可以无限大。


5.浮点型数据 float

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

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

例1、时间的表示
计算机中时间的表示是从“1970 年 1 月 1 日 00:00:00”开始,以毫秒(1/1000 秒) 进行计算。我们也把 1970 年这个时刻成为“unix 时间点”。
python 中可以通过 time.time() 获得当前时刻,返回的值是以秒为单位的浮点值。

import time
time.time()
1658149974.9443562
b = int(time.time())
b
1658149854

例2、定义多点坐标、绘出折线并计算起始点和终点距离

import turtle
import math
#定义多个点的坐标
x1,y1 = 100,100 
x2,y2 = 100,-100 
x3,y3 = -100,-100 
x4,y4 = -100,100
#绘制折线 
turtle.penup() 
turtle.goto(x1,y1) 
turtle.pendown() 
turtle.goto(x2,y2)
turtle.goto(x3,y3) 
turtle.goto(x4,y4)
distance = math.sqrt((x1-x4)**2 + (y1-y4)**2) 
turtle.write(distance)

6.布尔型数据 bool

布尔数据类型
bool
True
1
False
0

布尔型数据可以进行数值运算,True == 1,False == 0

a = True
b = 2
a + b
3

比较运算符
a = 1,b = 2

运算符判断内容示例结果
==判断是否相等,相等返回True,否则返回Falsea == bFalse
!=判断是否相等,不相等返回True,否则返回Falsea != bTrue
<判断左边是否小于右边,小于返回True,否则返回Falsea < bTrue
>判断左边是否大于右边,大于返回True,否则返回Falsea>bFalse
<=判断左边是否小于等于右边,
小于等于返回True,否则返回False
a <= bTrue
>=判断左边是否大于等于右边,
大于等于返回True,否则返回False
a >= bFalse

逻辑运算符

运算符格式说明
ora or bx 为 true,则不计算 y,直接返回 true
x 为 false,则返回 y
anda and bx 为 true,则返回 y 的值
x 为 false,则不计算 y,直接返回 false
notnot ax 为 true,返回 false
x 为 false,返回 true

同一运算符

运算符说明
isis 是判断两个标识符是不是引用同一个对象(比较地址是否相同)
is notis not 是判断两个标识符是不是引用不同对象

is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个,既比较对象的地址。
== 用于判断引用变量引用对象的值是否相等,默认调用对象的 __eq__()方法。
is 运算符比 == 效率高,在变量和 None 进行比较时,应该使用 is

整数缓存问题
在命令行中执行Python将范围为[-5, 256]的整数进行缓存;
在Pycharm 或者保存为文件执行时可以将范围为[-5,任意正整数]的整数进行缓存请添加图片描述
复合赋值运算符

运算符作用示例结果
+=加法赋值
字符串拼接
a += ba = a + b
-=减法赋值a -= ba = a - b
*=乘法赋值a *= ba = a * b
/=浮点除赋值a /= ba = a / b
//=整数除赋值a //= ba = a // b
%=取余赋值a %= ba = a % b
**=幂运算赋值a **= ba = a ** b
<<=左移赋值a <<= ba = a << b
>>=右移赋值a >>= ba = a >> b

复合赋值运算符中间不能有空格(+ =是错误书写)


7.字符串

在 Python 中,字符串属于不可变对象

7.1字符串编码

Python3 直接支持 Unicode,可以表示世界上任何书面语言的字符。
使用内置函数 ord()可以把字符转换成对应的 Unicode 码
使用内置函数 chr()可以把十进制数字转换成对应的字符

ord('A')
65
chr(66)
'B'

7.2创建字符串

单引号字符串:

a = 'abc' 
b = "efg"

三引号字符串(多行字符串)

a = '''Hello world
hello Python
1'''
print(a)
Hello world
hello Python
1

7.3字符串长度

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

c = '' 
len(c) 
0

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

a = '你好python'  # 一个汉字是一个字符长度
len(a) 
8

7.4转义字符

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

7.5字符串拼接

1.可以使用+将多个字符串拼接起来。
例如:’aa’+ ’bb’ == ’aabb’

+两边都是字符串,拼接
+两边都是数字,数值运算
+两边类型不同,报错

2.可以将多个字面字符串直接放到一起实现拼接。
例如:’aa’’bb’ == ’aabb’
请添加图片描述

7.6字符串复制

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

请添加图片描述

7.7不换行输出

使用print 时,会自动打印一个换行符
请添加图片描述
如果不想换行,不想自动添加换行符。我们可以自己通过参数 end = “任意字符串”。实现末尾添加任何内容。
请添加图片描述
请添加图片描述

7.8读取输入字符串

请添加图片描述

7.9str()实现数字转换字符串类型

请添加图片描述

7.10字符串下标

字符串的本质就是字符序列,字符串里的每个字符都有对应的下标。

'abcdef'
字符abcdef
正向下标012345
反向下标-6-5-4-3-2-1
在字符串中提取字符

我们可以通过在字符串后面添加[],在[]里面指定下标,以提取对应的字符。
请添加图片描述
请添加图片描述

字符串切片操作

[起始偏移量 start:终止偏移量 end:步长 step]
切片的区间: [start,end )

请添加图片描述
请添加图片描述
起始下标和终止下标不在[0,字符串长度-1]这个范围,也不会报错。
起始下标小于 0,则会当做 0。
终止下标大于“长度-1”会被当成-1。

例如:

 "abcdefg"[3:50] 
 'defg'

7.11split()分割和 join()合并

split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。
请添加图片描述

join()可以将一系列子字符串连接起来
请添加图片描述
+和join()区别:
使用字符串拼接符+,会生成新的字符串对象,效率低
join 函数,因为 join 函数在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝, 仅新建一次对象,效率高。

7.12字符串驻留机制和字符串比较

字符串驻留:
仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中(地址相同)。
对于符合标识符规则的字符串(仅包含下划线(_)、字母 和数字)会启用字符串驻留机制。
字符串比较和同一性:
==,!=对字符串进行比较,是否含有相同的字符。
is / not is,判断两个对象是否同一个对象。比较的是对象的地址,即 id(obj1)是 否和 id(obj2)相等。
成员操作符:
in /not in 关键字,判断某个字符(子字符串)是否存在于字符串中。

str_2 = 'a b c d e f'
'a' in str_2
True

7.13字符串常用操作方法

1、常用查找方法

a = ‘hello world hello python’

方法说明结果
len(a)字符串长度24
a.startswith(‘h’)以指定字符串开头True
a.find(‘e’)第一次出现指定字符串的位置1
a.rfind(‘e’)最后一次出现指定字符串的位置13
a.count(‘e’)指定字符串出现了几次2
a.isalnum()所有字符全是字母或数字False
(有空格字符)
2、去除首尾信息

strip()去除字符串首尾指定信息。
lstrip()去除字符串左边指定信息。
rstrip()去除字符串右边指定信息。
请添加图片描述

3、大小写转换

str1 = ‘hello world hello python’

示例说明结果
str1.capitalize()产生新的字符串,首字母大写‘Hello world hello python’
str1.title()产生新的字符串,每个单词都首字母大写‘Hello World Hello Python’
str1.upper()产生新的字符串,所有字符全转成大写‘HELLO WORLD HELLO PYTHON’
str1.lower()产生新的字符串,所有字符全转成小写‘hello world hello python’
str1.swapcase()产生新的,所有字母大小写转换‘HELLO WORLD HELLO PYTHON’
4、格式排版

center()、ljust()、rjust()
请添加图片描述

5、其他方法
  1. isalnum() 是否为字母或数字
  2. isalpha() 检测字符串是否只由字母组成(含汉字)。
  3. isdigit() 检测字符串是否只由数字组成。
  4. isspace() 检测是否为空白符
  5. isupper() 是否为大写字母
  6. islower() 是否为小写字母

7.14字符串的格式化

format ()
format 函数可以接受不限个参数,位置可以不按顺序。

a = "名字是:{0},年龄是:{1}"
a.format("小明",18)
'名字是:小明,年龄是:18'
a.format("小红",19)
'名字是:小红,年龄是:19'
b = "名字是:{0},年龄是{1}。{0}学习很好"
b.format("小明",18)
'名字是:小明,年龄是18。小明学习很好'
c = "名字是{name},年龄是{age}"
c.format(age=19,name='小红')
'名字是小红,年龄是19'

填充与对齐
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定默认用空格填充
{索引}/{参数名:填充字符^/</>宽度}
请添加图片描述
请添加图片描述
数字格式化
{索引}/{参数名:.2f}保留两位小数

7.15可变字符串

在 Python 中,字符串属于不可变对象,不支持原地修改。
原地修改字符串,可以使用 io.StringIO 对象或 array 模块。
请添加图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值