文章目录
一、什么是变量?
变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别、金钱等等
二、为什么要有变量?
为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的
# 详细地说:
程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态,以及状态的变化。
三、怎么使用变量(先定义、后使用)
3.1、变量的定义与使用
变量的定义由三部分组成
定义变量示范如下
name = 'jyh' # 记下人的名字为'jyh'
sex = '男' # 记下人的性别为男性
age = 26 # 记下人的年龄为26岁
salary = 10000.1 # 记下人的薪资为10000.1元
变量三要素:
1.变量
2.赋值符号
3.变量的值
解释器执行到变量定义的代码时会申请内存空间存放变量值,然后将变量值的内存地址绑定给变量名,通过变量名即可引用到对应的值
# 通过变量名即可引用到值,我们可以结合print()功能将其打印出来
print(age) # 通过变量名age找到值26,然后执行print(26),输出:26
变量的本质
age = 26
"""
遇到赋值符号,先看符号的右侧
1.在内存空间申请一块内存空间存储26
2.给26所在的内存空间绑定一个名字age
3.以后如果想要访问内存空间里面的26就必须通过age
总结:
1.一个变量名只能指向一块内存空间
2.同一个值可以有多个变量名指向
3.2、变量名的命名规范
变量名的命名应该见名知意
# 如果我们要存储的数据18代表的是一个人的年龄,那么变量名推荐命名为age
age = 26
# 如果我们要存储的数据18代表的是一个人的等级,那么变量名推荐命名为level
level = 26
其他详细规范如下
# 命名规范
1. 变量名只能是 字母、数字或下划线的任意组合
2. 变量名的第一个字符不能是数字
3. 关键字不能声明为变量名,常用关键字如下
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from','global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
# 错误示范如下:
*a=123
$b=456
c$=789
2_name='lili'
123='lili'
and=123
年龄=18 # 强烈建议不要使用中文命名
# 正确示范如下
age_of_jyh=31
page1='首页'
_class='终极一班'
3.3、变量名的命名风格
# 风格一:驼峰体(javascript)
1.大驼峰
AgeOfTony = 56
NumberOfStudents = 80
2.小驼峰
userNameOfDb
# 风格二:纯小写下划线(在python中,变量名的命名推荐使用该风格)
age_of_tony = 56
number_of_students = 80
3.4、变量值的三大特性
变量的值具备三大特性
#1、id
反应的是变量在内存中的唯一编号,内存地址不同id肯定不同
#2、type
变量值的类型
#3、value
变量值
查看变量值三大特性的方式如下,我们将会在运算符中用到变量值的三大特性
>>> x='Info Tony:18'
>>> id(x),type(x),x
4376607152,<class 'str'>,'Info Tony:18'
四、常量
4.1、什么是常量?
常量指在程序运行过程中不会改变的量
4.2、为什么要有常量?
在程序运行过程中,有些值是固定的、不应该被改变,比如圆周率 3.141592653...
4.3、怎么使用常量?
在Python中没有一个专门的语法定义常量,约定俗成是用`全部大写的变量名表示常量`。如:PI=3.14159。所以单从语法层面去讲,常量的使用与变量完全一致。
引入
我们学习变量是为了让计算机能够像人一样去记忆事物的某种状态,而变量的值就是用来存储事物状态的,很明显事物的状态分成不同种类的(比如人的年龄,身高,职位,工资等等),所以变量值也应该有不同的类型,例如
salary = 1.1 # 用浮点型去记录薪资
age = 26 # 用整型去记录年龄
name = 'jyh' # 用字符串类型去记录人名
五、数字类型
5.1 整型int
用来记录人的年龄,出生年份,学生人数等整数相关的状态
age=18
birthday=1990
student_count=48
5.2 浮点型float
用来记录人的身高,体重,薪资等小数相关的状态
height=172.3
weight=103.5
salary=15000.89
5.3 字符串类型str
用来记录人的名字,家庭住址,性别等描述性质的状态
使用:需要借助与引号
username = 'Tony' 单引号
username = "Tony" 双引号
username = '''Tony''' 三个单引号
username = """Tony""" 三个双引号
"""
注意:
三引号左侧如果有赋值符号和变量名,则是字符串
如果没有则是注释
"""
补充:
print(type(age)) 显示变量属于什么字符串
#1、需要考虑引号嵌套的配对问题
msg = "My name is Tony , I'm 18 years old!" #内层有单引号,外层就需要用双引号
#2、多引号可以写多行字符串
msg = '''
天下只有两种人。比如一串葡萄到手,一种人挑最好的先吃,另一种人把最好的留到最后吃。
照例第一种人应该乐观,因为他每吃一颗都是吃剩的葡萄里最好的;第二种人应该悲观,因为他每吃一颗都是吃剩的葡萄里最坏的。
不过事实却适得其反,缘故是第二种人还有希望,第一种人只有回忆。
'''
5.4 列表list
5.4.1 作用
如果我们需要用一个变量记录多个学生的姓名,用数字类型是无法实现,字符串类型确实可以记录下来,比如
stu_names='张三 李四 王五',但存的目的是为了取,此时若想取出第二个学生的姓名实现起来相当麻烦,而列表类型就是专门用来记录多个同种属性的值(比如同一个班级多个学生的姓名、同一个人的多个爱好等),并且存取都十分方便
5.4.2 定义
>>> stu_names=['张三','李四','王五']
5.4.3 使用
# 1、列表类型是用索引来对应值,索引代表的是数据的位置,从0开始计数
>>> stu_names=['张三','李四','王五']
>>> stu_names[0]
'张三'
>>> stu_names[1]
'李四'
>>> stu_names[2]
'王五'
5.4.4 列表可以嵌套,嵌套取值如下
>>> students_info=[['jyh',18,['DBJ','xy']],['jyh',18,['play','sleep']]]
>>> students_info[0][2][0] #取出第一个学生的第一个爱好
'DBJ'
5.5 字典
5.5.1 作用
如果我们需要用一个变量记录多个值,但多个值是不同属性的,比如人的姓名、年龄、身高,用列表可以存,但列表是用索引对应值的,而索引不能明确地表示值的含义,这就用到字典类型,
'''
字典类型是用key:value形式来存储数据,其中key可以对value有描述性的功能
'''
'''
字典能够精准的存储信息
"""
大括号括起来,内存存放多个元素,不同的元素用逗号隔开。
元素是以K:v键值对形式存储
K是对V的描述性性质的信息,一般都是字符串
v是真实的数据类似于变量的值,可以是任意数据类型。
"""
'''
5.5.2 使用
user_info = {
'name': 'jyh',
'age': 18,
'weight': 176
}
print(user_info[ 'name' ])
print(user_info[ 'age' ])
print(user_info[ 'weight' ])
jyh
18
176
print(type(user_info))
<class 'dict'>
5.6 集合
功能很单一,并且后续使用频率较低
'''
去重、关系运算
大括号括起来,内存存放多个元素,元素逗号隔开,不是K:V键值对
'''
s = {1, 2, 3, 4, 5}
print(type(s))
<class 'set'>
5.7 元组
跟列表几乎一致,只不过是小括号
元组一般存储只能看不能改的数据
'''
小括号括起来,内存可以存放多个元素,元素与元素之间逗号隔开,元素可以是任意数据类型
小外号:不可变的列表
t = (1, 2, 3, 'jyh', [22])
print(type(t))
tuple
'''
元组内的数据不能修改
l1 = [11, 22, 33]
t1 = (11, 22, 33)
print(l1[1])
print(t1[1])
print(l1[1], t1[1])
22
22
22 22
l1[1] = 996
print(l1)
[11, 996, 33]
t[1] = 117 #不能需要
print(t1)
Traceback (most recent call last):
File "D:/py1/day03/01 数据类型.py", line 30, in <module>
t[1] = 117
TypeError: 'tuple' object does not support item assignment
5.8 布尔
只有两个状态,描述事务对错,是否可行,主要用于逻辑判断。
Ture :可行
False : 不可行
'''
is_right = True
print(type(is_right))
bool
'''
在python中所有的数据再进行逻辑判断的时候都会转成布尔值
布尔值默认为False的数据
0 None 空字符串 空列表 空字典...
其他默认布尔值都是True
布尔值的变量名 一般是is开头
is_right = True
is_delete = False
is_alive = True