文章目录
一、数据类型
在Python数值分成了三种:整数、浮点数(小数)、复数
数据类型指的就是变量的值得类型,也就是可以为变量赋哪些值
数值
1、整型
(1)整型
在Python中所有的整数都是int类型
Python中的整数的大小没有限制,可以是一个无限大的整数
c = 999999999999999999999999999999999999999999999 ** 100
如果数字的长度过大,可以使用下划线作为分隔符
c = 123_456_789
也可以通过运算符来对数字进行运算,并且可以保证整数运算的精确
d = 0123 十进制的数字不能以0开头
其他进制的整数,只要是数字打印时一定是以十进制的形式显示的
# 二进制 0b开头
c = 0b10 # 二进制的10
# 八进制 0o开头
c = 0o10
# 十六进制 0x开头
c = 0x10
(2)布尔值
# 布尔值主要用来做逻辑判断
# 布尔值一共有两个 True 和 False
# True表示真 False表示假
# 布尔值实际上也属于整型,True就相当于1,False就相当于0
2、浮点型
# 浮点数(小数),在Python中所有的小数都是float类型
# 对浮点数进行运算时,可能会得到一个不精确的结果
3、复数
4、字符串
(1)字符串
字符串用来表示一段文本信息,字符串是程序中使用的最多的数据类型
在Python中字符串需要使用引号引起来,引号可以是双引号,也可以是单引号,但是注意不要混着用
相同的引号之间不能嵌套
使用三重引号来表示一个长字符串 ''' """,三重引号可以换行,并且会保留字符串中的格式单引号和双引号不能跨行使用
(2)转义字符
可以使用 \ 作为转义字符,通过转义字符,可以在字符串中使用一些特殊的内容
# 例子:
# \' 表示'
# \" 表示"
# \t 表示制表符
# \n 表示换行符
# \\ 表示反斜杠
# \uxxxx 表示Unicode编码
(3)格式化字符串
# 字符串之间也可以进行加法运算,如果将两个字符串进行相加,则会自动将两个字符串拼接为一个,但不能和其他类型进行加法
# 格式化字符串,可以通过在字符串前添加一个f来创建一个格式化字符串,在格式化字符串中可以直接嵌入变量
(4)占位符
在创建字符串时,可以在字符串中指定占位符
# %s 在字符串中表示任意字符
# %f 浮点数占位符
# %d 整数占位符
(5)输出实例
例:使用四种方式来输出,欢迎 xxx 光临
# 拼串
print('欢迎 '+name+' 光临!')
# 多个参数
print('欢迎',name,'光临!')
# 占位符
print('欢迎 %s 光临!'%name)
# 格式化字符串
print(f'欢迎 {name} 光临!')
(6)空值(None)
None专门用来表示不存在
二、类型检查
通过类型检查,可以检查只能值(变量)的类型
type()用来检查值的类型
该函数会将检查的结果作为返回值返回,可以通过变量来接收函数的返回值
三、类型转换
所谓的类型转换,将一个类型的对象转换为其他对象
类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新对象
类型转换四个函数 int() float() str() bool()
1、int()函数
int()函数 可以用来将其他的对象转换为整型,函数不会对原来的变量产生影响,他是对象转换为指定的类型并将其作为返回值返回,如果希望修改原来的变量,则需要对变量进行重新赋值
规则:
# 布尔值:True -> 1 False -> 0
# 浮点数:直接取整,省略小数点后的内容
# 字符串:合法的整数字符串,直接转换为对应的数字
# 如果不是一个合法的整数字符串,则报错 ValueError: invalid literal for int() with base 10: '11.5'
# 对于其他不可转换为整型的对象,直接抛出异常 ValueError
2、float()函数
float() 和 int()基本一致,不同的是它会将对象转换为浮点数
3、str()函数
str() 可以将对象转换为字符串
# True -> 'True'
# False -> 'False'
# 123 -> '123'
# 。。。
4、bool()函数
bool() 可以将对象转换为布尔值,任何对象都可以转换为布尔值
# 规则:对于所有表示空性的对象都会转换为False,其余的转换为True
# 哪些表示的空性:0 、 None 、 '' 。。。
四、对象(object)
- Python是一门面向对象的语言
- 一切皆对象!
- 程序运行当中,所有的数据都是存储到内存当中然后再运行的!
- 对象就是内存中专门用来存储指定数据的一块区域
- 对象实际上就是一个容器,专门用来存储数据
- 像我们之前学习的数值、字符串、布尔值、None都是对象
- 参考 图1
五、对象的结构
每个对象中都要保存三种数据
1、id(标识)
> id用来标识对象的唯一性,每一个对象都有唯一的id
> 对象的id就相当于人的身份证号一样
> 可以通过id()函数来查看对象的id
> id是由解析器生成的,在CPython中,id就是对象的内存地址
> 对象一旦创建,则它的id永远不能再改变
2、type(类型)
> 类型用来标识当前对象所属的类型
> 比如:int str float bool 。。。
> 类型决定了对象有哪些功能
> 通过type()函数来查看对象的类型
> Python是一门强类型的语言,对象一旦创建类型便不能修改
3、value(值)
> 值就是对象中存储的具体的数据
> 对于有些对象值是可以改变的
> 对象分成两大类,可变对象 不可变对象
可变对象的值可以改变
不可变对象的值不能改变,之前学习的对象都是不可变对象
六、变量和对象
- 对象并没有直接存储到变量中,在Python中变量更像是给对象起了一个别名
- 变量中存储的不是对象的值,而是对象的id(内存地址),
当我们使用变量时,实际上就是在通过对象id在查找对象
- 变量中保存的对象,只有在为变量重新赋值时才会改变
- 变量和变量之间是相互独立的,修改一个变量不会影响另一个变量
七、运算符(操作符)
运算符可以对一个值或多个值进行运算或各种操作
比如 + 、-、= 都属于运算符
运算符的分类:
1.算术运算符
# + 加法运算符(如果是两个字符串之间进行加法运算,则会进行拼串操作)
# - 减法运算符
# * 乘法运算符(如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重复指定次数)
# / 除法运算符,运算时结果总会返回一个浮点类型
# // 整除,只会保留计算后的整数位,总会返回一个整型
# ** 幂运算,求一个值的几次幂
# % 取模,求两个数相除的余数
2.赋值运算符
# = 可以将等号右侧的值赋值给等号左侧的变量
# += a += 5 相当于 a = a + 5
# -= a -= 5 相当于 a = a - 5
# *= a *= 5 相当于 a = a * 5
# **= a **= 5 相当于 a = a ** 5
# /= a /= 5 相当于 a = a / 5
# //= a //= 5 相当于 a = a // 5
# %= a %= 5 相当于 a = a % 5
3.比较运算符(关系运算符)
关系运算符用来比较两个值之间的关系,总会返回一个布尔值
# 如果关系成立,返回True,否则返回False
# > 比较左侧值是否大于右侧值
# >= 比较左侧的值是否大于或等于右侧的值
# < 比较左侧值是否小于右侧值
# <= 比较左侧的值是否小于或等于右侧的值
# == 比较两个对象的值是否相等
# != 比较两个对象的值是否不相等
# 相等和不等比较的是对象的值,而不是id
# is 比较两个对象是否是同一个对象,比较的是对象的id
# is not 比较两个对象是否不是同一个对象,比较的是对象的id
在Python中可以对两个字符串进行大于(等于)或小于(等于)的运算
# 当对字符串进行比较时,实际上比较的是字符串的Unicode编码
# 比较两个字符串的Unicode编码时,是逐位比较的
# 利用该特性可以对字符串按照字母顺序进行排序,但是对于中文来说意义不是特别大
# 注意:如果不希望比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较
4.逻辑运算符
逻辑运算符主要用来做一些逻辑判断
(1)not 逻辑非
# not可以对符号右侧的值进行非运算
# 对于布尔值,非运算会对其进行取反操作,True变False,False变True
# 对于非布尔值,非运算会先将其转换为布尔值,然后再取反
(2)and 逻辑与
# and可以对符号两侧的值进行与运算
# 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
# 与运算是找False的
# Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值
(3)or 逻辑或
# or 可以对符号两侧的值进行或运算
# 或运算两个值中只要有一个True,就会返回True
# 或运算是找True的
# Python中的或运算是短路的或,如果第一个值为True,则不再看第二个值
(4)非布尔值的与或运算
# 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
# 与运算的规则
# 与运算是找False的,如果第一个值是False,则不看第二个值
# 如果第一个值是False,则直接返回第一个值,否则返回第二个值
# 或运算的规则
# 或运算是找True的,如果第一个值是True,则不看第二个值
# 如果第一个值是True,则直接返回第一个值,否则返回第二个值
5.条件运算符(三元运算符)
# 语法: 语句1 if 条件表达式 else 语句2
# 执行流程:
# 条件运算符在执行时,会先对条件表达式进行求值判断
# 如果判断结果为True,则执行语句1,并返回执行结果
# 如果判断结果为False,则执行语句2,并返回执行结果