Python变量和数据类型

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}}
上一篇:Android 开发必备知识:我和 Gradle 有个约会


下一篇:Inside The C++ Object Model - 04 C++对象模型的一个简单示例