二级-2.Python数据类型
变量
变量就是可以改变的量。
变量赋值
变量名 = 值
#变量赋值
bottle = 'Tsingtao'
#输出变量
print(bottle)
变量的命名规范:
- 汉字变量可以使用,但是不推荐
- 可以使用数字,但是不能以数字开头
- 不可以使用特殊字符,除了_
- 变量严格区分大小写
- 变量命名要有意义
- 变量命名要避免和系统使用的保留关键字冲突
#查询系统保留关键字
import keyword
print(keyword.kwlist)
其他变量赋值方式
变量名 = 值
#多个变量赋相同值
变量1 = 变量2 = 变量3 = 值
#多个变量赋不同的值
变量1, 变量2, 变量3 = 值1, 值2, 值3
#多个变量赋相同的值
girl_1 = girl_2 = girl_3 = '美丽的姑娘'
print(girl_1)
print(girl_2)
print(girl_3)
#多个变量赋不同的值
girl_1, girl_2, girl_3 = '嫦娥仙子', '白骨夫人', '玉面狐狸'
print(girl_1)
print(girl_2)
print(girl_3)
Python数据类型
Python中可以自定义数据类型,可以具有无限种数据类型。
Python提供默认6种数据类型
- Number类型 数值类型
- String类型 字符类型
- List类型 列表类型
- Tuple类型 元组类型
- Dict类型 字典类型
- Set类型 集合类型
Number 数值类型
Number类型一共分为四个小类型:整型、浮点型、布尔型、复数
整型
整型就是数学中的整数,包含正整数、0、负数
声明整型有四种方式:
- 十进制:0~9
- 二进制:0b0~1
- 八进制:0o0~7
- 十六进制:0x0~9 + A~F
#十进制
integer = 999
print(integer)
#二进制
integer_0b = 0b1010111
print(integer_0b)
#八进制
integer_0o = 0o7070777
print(integer_0o)
#十六进制
integer_0x = 0xFBD
print(integer_0x)
浮点型
浮点型就是小数类型。
声明浮点型有两种方式:
- 小数方式:变量 = 3.1415926
- 科学计数法:变量 = 3.14e2 #相当于3.14 x 10^2
floats = 3.14e2
print(type(floats))
print(floats)
布尔类型
计算机专用的数据类型,只有两个值:True和False
True就是1 False就是0
result = 5 > 3
print(result)
print(type(result))
print(7+False)
print(7+True)
复数
复数的完整结构(实数部分+虚数部分)
- 实数:现实存在的所有数值都是实数,真实存在的数字
- 虚数:不是真实存在的数字(i的平方为-1作为基本单位),不存在的数字
- 数学:i^2 = -1,i就是虚部的基本单位,1i、2i、3i,i虚数单位
- 计算机中:用j来表示i即可,j虚数单位
声明复数有两种方式
- 表达式方式:变量 = 实数 + 虚数
- 特定功能:变量 = complex(实数,虚数值)
#表达式方式
imaginary = 7 + 6j
print(imaginary)
print(type(imaginary))
#特定功能
imaginary = complex(7, 6)
print(imaginary)
print(type(imaginary))
String 字符类型
字符类型就是文字类型。
声明一个字符类型有三种方式:
- 单引号:变量 = '内容'
- 双引号:变量 = "内容"
- 三引号:变量 = '''内容'''或者"""内容"""
注意事项:如何识别字符串,就看外层是否有引号。
string = 'IT搞三年,母猪赛貂蝉!'
print(string, type(string))
string = "IT搞三年,母猪赛貂蝉!"
print(string, type(string))
string = '''IT搞三年,母猪赛貂蝉!'''
print(string, type(string))
string = True
print(string, type(string))
string = 'True'
print(string, type(string))
转义字符
通过某种格式使得字符的意义发生改变,这就是转义字符。
常见转义字符有以下内容:
转义字符 | 描述 |
---|---|
反斜杠符号 | |
' | 单引号 |
" | 双引号 |
\a | 响铃 |
\b | 退格 |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy代表的字符 |
\xyy | 十六进制数,yy代表的字符 |
\other | 其他的字符以普通格式输出 |
#就要在单引号中使用单引号 / 双引号
string = '毛主席说:\'一切不以结婚为目的的恋爱,都是耍流氓。\''
print(string)
string = '甘蔗男:开始很甜,最后\n只剩渣的男人。'
#print(string)
string = '甘蔗男:开始很甜,最后\r只剩渣的男人。'
print(string)
元字符
string = r'甘蔗男:开始很甜,最后\n只剩渣的男人。'
print(string)
List 列表类型
列表就是一些数据的顺序组合,并且组合之后可以修改。
列表格式:变量 = [值, 值, 值...]
列表的标志符号:[]
#列表
listvar = []
listvar = ['张哆来', '王咪发', '李索拉']
print(listvar, type(listvar))
#列表
listvar = []
listvar = ['张哆来', '王咪发', '李索拉']
listvar[2] = '李西西'
print(listvar, type(listvar))
tuple 元组类型
元组就是一些数据的顺序组合,并且组合之后不可修改。
元组格式:变量 = (值, 值, 值...)
元组的标志符号:()
#元组
tuplevar = []
tuplevar = ('张哆来', '王咪发', '李索拉')
print(tuplevar, type(tuplevar))
#元组
tuplevar = []
tuplevar = ('张哆来', '王咪发', '李索拉')
tuplevar[2] = '李西西'
#print(tuplevar[2])
print(tuplevar, type(tuplevar))
Dict 字典类型
字典就是具有键值映射关系的一组无序数据组合,可以修改。
字典格式:变量 = {键:值, 键:值, 键:值...}
字典的标志符号:{}
#字典
heros = {'呼保义':'宋江', '智多星':'吴用', '黑旋风':'李逵', '九纹龙':'史进'}
print(heros, type(heros))
#字典
heros = {'呼保义':'宋江', '智多星':'吴用', '黑旋风':'李逵', '九纹龙':'史进'}
print(heros['黑旋风'])
print(heros, type(heros))
Set 集合类型
一组特定数据的无需组合,所有数据不会重复。
集合格式:变量 = {值, 值, 值...}
集合的标志符号:无
#集合
setvar = {'香蕉', '茄子', '苦瓜', '榴莲'}
print(setvar, type(setvar))
#集合
setvar = {'香蕉', '茄子', '苦瓜', '榴莲', '榴莲'}
print(setvar, type(setvar))
数据类型转换
将数据由当前类型变化为其它类型的操作就是数据类型转换。
数据类型转换一共分为两类:自动数据类型转换(隐式转换),强制数据类型转换(显示转换)。
自动数据类型转换/隐式转换
自动数据类型转换是程序根据运算要求进行的转换
- 自动数据类型转换不需要人工干预
- 自动数据类型转换多发生在运算或者判断过程中
- 转化时向着更加精确的类型转换
#自动数据类型转换
a = 1.111
b = 2
c = a + b
print(type(a), type(b), type(c), c)
强制数据类型转换/显示转换
根据程序需要,由程序员人为改变数据类型的方式就是强制数据类型转换。
int()将其他类型转化为整型
- 数字整形转化后,还是原来的味道。
- 浮点类型转化后,舍去小数部分。
- 布尔值转化后,True-->1,False-->0
- 字符串转化,仅纯整型字符串可以转化(浮点型或者带有其他字符都不可以转化)
- 复数不可以转化
var = '998'
newvar = int(var)
print(newvar)
var = '白裤裆寒冬一击'
newvar = int(var)
print(newvar)
float()将其他类型转化为浮点型
- 整型转化后,可变为浮点型后 +.0
- 浮点数不需要转化,转化也不会变化
- 布尔值转化后,True-->1.0,False-->0.0
- 字符串,纯整型字符串和纯浮点型字符串可以转化,其他都不行
complex()将其他类型转化为复数
- 整形转化后,整型+0j
- 浮点型转化后,浮点型+0j
- 布尔型转化后,True-->(1+0j),False-->(0+0j)
- 字符串,纯整型字符串和纯浮点型字符串可以转化,其他都不行
- 复数,无需转化
bool()将其他类型转化为布尔型
转化为布尔值为false的情况:
- 整型:0
- 浮点型:0.0
- 复数:0+0j
- 布尔:False
- 字符串:''空字符串
- 列表:[]空列表
- 元组:()空元组
- 字典:{}空字典
- 集合:set()空集合
str()将其他类型转化为字符串
所有转换均改变类型为字符串,表示方式依旧不变。
list()将其他类型转化为列表类型
在Python中有五种可迭代序列,可以互相转换
字符串、列表、元组、字典、集合
注意:
- 字符串转化时,每个字符变成列表中的一个值
- 字典类型转化时,仅将字典的键部分转化为列表,忽略值部分
tuple()将其他类型转化为元组类型
注意:
- 字符串转化时,每个字符变成元组中的一个值
- 字典类型转化时,仅将字典的键部分转化为元组,忽略值部分
set()将其他类型转化为集合类型
注意:
- 字符串转化时,每个字符变成集合中的一个值
- 字典类型转化时,仅将字典的键部分转化为集合,忽略值部分
dict()将其他类型转化为字典类型
将其他类型转化为字典类型时需按照指定的格式才可以转化:(列表和元组的组合可以)
var = [[1,'xixi'], [2,'haha'], [3,'wawa']]
new_var = dict(var)
print(var, type(var))
print(new_var, type(new_var))
var = ((1,'xixi'), [2,'haha'], [3,'wawa'])
new_var = dict(var)
print(var, type(var))
print(new_var, type(new_var))