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}}