Python变量和数据类型
一、变量
什么是变量
变量就是可以改变的量
变量的命名规范:
1.变量名支持中文 但不推荐使用 2.可以使用数字 但不能以数字开头 3.不可以使用特殊字符 除了下划线_ 4.变量严格区分大小写 5.变量命名要有意义(规范) 6.变量命名要避免和系统使用的保留关键字冲突
变量赋值的基本格式
变量名 = 值 age = 18
变量的其他赋值方式
# 变量1 = 变量2 = 变量3 = 值 (给多个变量同时赋同一个值) # 变量1,变量2,变量3 = 值1,值2,值3 (给多个变量同时分别赋不同的值) name = uname = username = 'joker' # 此时name, uname, username 的值都是'joker' 它们的值都是同一个 name,age,sex = 'joker',20,'男' #相当于 name='joker', age=20, sex='男' 它们分别各自都有值
变量的三个常用操作
1.获取值 可直接通过变量名获取 用法:name 2.查看数据类型 使用type()函数 用法:type(name) 3.获取变量在内存中的id标识 使用id()函数 用法:id(name)
二、数据类型
Python中可以自定义数据类型,可以具有无限种数据类型。 系统默认提供6个标准数据类型:
1.Number类型 数字类型 2.String类型 字符类型 3.List类型 列表类型 4.Tuple类型 元组类型 5.Dict类型 字典类型 6.Set类型 集合类型
在Python中我们不需要声明一个变量的数据类型,只需要定义它并为它赋值,因为系统会根据我们给它的值自动分辨它的数据类型。
1.Number类型
Number类型一共分为四个小类别:整型,浮点型,布尔型,复数
Int 整型
整型就是整数类型,声明整型有四种方式:
1.十进制:0~9 变量 = 十进制数字 2.二进制:0~1 变量 = 0b二进制数字 0b是二进制的标志符号 3.八进制:0~7 变量 = 0o八进制数字 0o是八进制的标志符号 4.十六进制:0~9a~f 变量 = 0x十六进制数字 0x是十六进制的标志符号
Float 浮点型
浮点型就是小数类型,声明浮点型有两种方式:
1.小数方式: 变量 = 3.14 2.科学计数法: 变量 = 3e2 #相当于3x10的平方
Bool 布尔类型
布尔类型是计算机专用的数据类型,只有2个值:True和False
True 表示肯定的答案 有,是,好的,没错,真的... False 表示否定的答案 没有,不是,孬,错,假的...
Complex 复数类型
复数的完整结构(实数部分+虚数部分)
声明复数的两种方式:
表达式方式: 变量 = 实数 + 虚数 如:var = 3 + 2j 特定功能: 变量 = complex(实数,虚数值) 如:var = complex(5,3)
实数:现实存在的所有数值都是实数
虚数:不是真实存在的数字(i 的平方为-1作为基本单位)
数学中:i 的平方 = -1 i 就是虚数的基本单位 1i 2i 5i…
计算机中:用j来表示i即可
2.String 字符串类型
字符串类型就是文字类型,声明一个字符串类型有三种方式:
单引号: 变量 = '内容' 双引号: 变量 = "内容" 三引号: 变量 = '''内容''' 变量 = """内容"""
如何选择声明字符串的方式:
单引号:内容中包含大量双引号时,适合使用单引号声明字符串 双引号:内容中包含大量单引号时,适合使用双引号声明字符串 三引号:内容中同时包含单双引号,适合使用三引号声明字符串
转义字符: 通过某种特定的格式使得字符的意义发生改变,这就是转义字符,常见转义字符如下:
转义字符 作用描述 使用率 \ 续行符 * \\ 反斜杠符号(\) *** \' 单引号 ***** \" 双引号 ***** \a 响铃 \b 退格(backspace) 表示将光标的位置回退一位 \e 转义 \000 空 \n 换行 ***** \v 纵向制表符 \t 横向制表符 ***** \r 回车 表示将光标的位置回退到本行的开头位置 ***** \f 换页 \oyy 八进制数,yy代表的字符,例如:\o12代表换行 \xyy 十六进制数,yy代表的字符,例如:\x0a代表换行 \other 其它的字符以普通格式输出
元字符串: 在任意字符串之前添加字母r或者R,那么当前字符串中所有转义字符在使用时都不会进行转义操作,这就是元字符串,正则表达式中常见格式。
strval = R'锄禾日当午,\n汗滴\\禾下土,\n谁知\r盘中餐,\n丽丽\t皆辛苦\n'
3.List 列表类型
列表就是一些列数据的顺序组合,并且组合之后可以修改。 列表的标志符号:[ ] 列表格式:
变量 = [值,值,值...]
4.Tuple 元组类型
元组就是一些列数据的顺序组合,但是组合之后不可以修改。 元组的标志符号:( ) 元组格式:
变量 = (值,值,值...)
5.Dict 字典类型
字典就是具有键值映射关系的一组无序数据组合,可以修改 字典的标志符号:{} 字典格式:
变量 = {键:值,键:值,键:值...}
6.Set 集合类型
一组特定数据的无序组合,所有数据不会重复 集合的标志符号:{} 集合格式:
变量 = {值,值,值...}
三、数据类型转换
将数据由当前类型变化为其他类型的操作就是数据类型转换。
数据类型转换分为两类,分别是自动数据类型转换 和 强制数据类型转换。
1.自动转换(隐式转换)
1.自动类型转换不需要人工干预 2.自动类型转换大多发生在运算或者判断过程中 3.转换时向着更加精确的类型转换
示例:
bools = True # 布尔类型 num = 3 # 整数类型 floats = 2.4 # 浮点类型 var = '200' # 字符串不能自动转换 做运算 print(bools + num) print(bools + floats)
2.强制转换(显式转换)
根据程序需要,由编写程序人员人为改变数据类型的方式,叫做强制数据类型转换。
int( ) 创建或者将其他数据转化为整型
1.浮点类型转换之后,舍去小数部分 2.布尔值转换之后 True -> 1 False->0 3.字符串转换,仅纯整型字符串可以转换(浮点型或者带有其他字符都不可以转换)
float( ) 创建或者将其他数据转化为浮点型
1.整型转换之后变为浮点型,后面+.0 2.布尔值转换 True->1.0 False ->0.0 3.字符串,只有纯整型字符串和纯浮点型字符串可以转换,其他都不可以
complex( ) 创建或者将其他数据转化为复数
1.整型转换之后变为 (整型+0j) 2.浮点型转换之后变为(浮点型 + 0j) 3.布尔值转化之后 True->(1+0j) False(0j) 4.字符串,纯整型和浮点型字符串可以转化,其他都不可以
bool( ) 创建或者将其他数据转化为布尔型
转换为布尔值False: 1.整型 0 2.浮点型 0.0 3.复数 0+0j 4.布尔 False 5.字符串 '' 空字符串 6.列表 [] 空列表 7.元组 () 空元组 8.字典 {} 空字典 9.集合 set() 空集合 除了以上这些,其他转换为布尔值都会得到True
str( ) 创建或者将其他数据转化为字符串
将所有原数据转换类型为字符串,表示方式依旧不变
list( ) 创建或者将其他数据转化为列表
在Python中有5种可迭代序列,可以相互转换,它们分别是: 字符串,列表,元组,字典,集合 #示例代码 var = ('张三','李四','王老五') newvar = list(var) #newvar的值为 ['张三','李四','王老五'] '''注释: 1.字符串转换时每个字符变成列表中的一个值 2.字典类型转换时,仅将字典的键部分转换成列表,忽略值部分 '''
tuple( ) 创建或者将其他数据转化为元组
#示例代码 var = {'张三','李四','王老五'} newvar = tuple(var) #newvar的值为 ('张三','李四','王老五') '''注释: 1.字符串转换时每个字符变成元组中的一个值 2.字典类型转换时,仅将字典的键部分转换成元组,忽略值部分 '''
set( ) 创建或者将其他数据转化为集合
#示例代码 var = ['张三','李四','王老五'] newvar = set(var) #newvar的值为 {'张三','李四','王老五'} #值的顺序不定 '''注释: 1.字符串转换时每个字符变成集合中的一个值 2.字典类型转换时,仅将字典的键部分转换成集合,忽略值部分 '''
dict( ) 创建或者将其他数据转化为字典
其他类型转化为字典时需要按照指定的格式才可以转化:
var = [['name','joker'],['age',32],['classid','必火网络安全']] var = [('classid','必火网络安全'),('age',30)] var = [{'name','joker_wang'},{'age',30}] var = (['name','joker'],['age',32],['classid','必火网络安全']) var = (('classid','必火网络安全'),('age',30)) var = ({'name','joker_li'},{'age',30}) var = {('classid','必火网络安全'),('age',30)} # 不能强制转换成 字典的格式 # var = {['name','joker'],['age',35]} # var = {{'name','joker_li'},{'age',30}}