程序就是⽤来处理数据的,⽽变量就是⽤来存储数据的,在程序内,使⽤ 变量 作为 内存空间的 别名 来 存储和访问内存空间中的数据
一、变量定义
在 Python 中,每个变量 在使⽤前都必须赋值,变量 赋值以后 该变量 才会被创建
等号(=)⽤来给变量赋值
= 左边是⼀个变量名
= 右边是存储在变量中的值
变量名 = 值
示例
# 定义 qq 号码变量 qq_number = "1234567" # 定义 qq 密码变量 qq_password = "123" # 在程序中,如果要输出变量的内容,需要使⽤ print 函数
print(qq_number) print(qq_password)
使⽤⾮交互式执⾏,如果要输出变量的内容,必须要要使⽤ print 函数
思考题
# 定义苹果价格变量 price = 8.5 # 定义购买重量 weight = 7.5 # 计算⾦额 money = price * weight # 只要买苹果就返 5 元 money = money - 5 print(money)
提问
1)、上述代码中,⼀共定义有⼏个变量?
三个: price / weight / money
2)、money = money - 5 是在定义新的变量还是在使⽤变量?
直接使⽤之前已经定义的变量
变量名 只有在 第⼀次出现 才是 定义变量
变量名 再次出现,不是定义变量,⽽是直接使⽤之前定义过的变量
3)、在程序开发中,可以修改之前定义变量中保存的值吗?
变量中存储的值,就是可以 变 的
二、变量的类型
在 Python 中定义变量时需要指定类型吗?
不需要,在 Python 中定义变量是 不需要指定类型(在其他很多⾼级语⾔中都需要)。Python 可以根据 = 等号右侧的值,⾃动推导出变量中存储数据的类型
数据类型可以分为 数字型 和 ⾮数字型:
tup3 = "a", "b", "c", "d" # 不需要括号也可以 print(tup3[1])
结果为b
tup1 = ()
元组中只包含一个元素时,需要在元素后面添加逗号 , ,否则括号会被当作运算符使用:
tup1 = (50) print(type(tup1))
结果:<class 'int'>
tup1 = (50,) print(type(tup1))
结果:<class 'tuple'>
元组与字符串类似,下标索引从 0 开始,可以进行截取,组合等。
访问元组
元组可以使用下标索引来访问元组中的值
tup = ('Google', 'Runoob', 'Taobao', 'Wiki', 'Weibo','Weixin') print(tup[1]) # 读取第二个元素 print(tup[-2]) # 反向读取,读取倒数第二个元素 print(tup[1:]) # 截取元素,从第二个开始后的所有元素 print(tup[1:4]) # 截取元素,从第二个开始到第四个元素(索引为 3)
结果:
Runoob Weibo ('Runoob', 'Taobao', 'Wiki', 'Weibo', 'Weixin') ('Runoob', 'Taobao', 'Wiki')
修改元组
tup1 = (12, 34.56) tup2 = ('abc', 'xyz') # 以下修改元组元素操作是非法的。 # tup1[0] = 100 # 创建一个新的元组 tup3 = tup1 + tup2 print (tup3)
结果:(12, 34.56, 'abc', 'xyz')
tup = ('Google', 'Runoob', 1997, 2000) print (tup) del tup print ("删除后的元组 tup : ") print (tup)
以上实例元组被删除后,输出变量会有异常信息,输出如下所示:
('Google', 'Runoob', 1997, 2000) 删除后的元组 tup : Traceback (most recent call last): File "D:\project\python\02-operator.py", line 194, in <module> print(tup) NameError: name 'tup' is not defined
元组运算符
tup1 = (1, 2, 3) len(tup1) tup2 = (4, 5, 6) c = tup1+tup2 print("c的值为:",c) tup1 += tup2 print("tup1的值为:",tup1) print(('Hi!',) * 4) print(3 in (1, 2, 3)) for x in (1, 2, 3): print (x, end=" ")
结果:
c的值为: (1, 2, 3, 4, 5, 6) tup1的值为: (1, 2, 3, 4, 5, 6) ('Hi!', 'Hi!', 'Hi!', 'Hi!') True 1 2 3
元组内置函数
tuple2 = ('5', '4', '8') print(max(tuple2)) print(min(tuple2))
结果:
8 4
list1= ['Google', 'Taobao', 'Runoob', 'Baidu'] tuple1=tuple(list1) print(tuple1)
结果:
('Google', 'Taobao', 'Runoob', 'Baidu')
In [1]: type(name)
三、不同类型变量之间的计算
1、数字型变量 之间可以直接计算
如果变量是 bool 型,在计算时
True 对应的数字是 1
False 对应的数字是 0
a=2 print(a+True)
结果为3
2、字符串变量 之间使⽤ + 拼接字符串
在 Python 中,字符串之间可以使⽤ + 拼接⽣成新的字符串
first_name = "三" last_name = "张" print(last_name + first_name )
结果:张三
In [1]: first_name = "三" In [2]: last_name = "张" In [3]: first_name + last_name Out[3]: '三张'
3、字符串变量 可以和 整数 使⽤ * 重复拼接相同的字符串
In [1]: "-" * 50 Out[1]: '--------------------------------------------------'
print("-" * 50 )
4、数字型变量 和 字符串 之间 不能进⾏其他计算
In [1]: first_name = "zhang" In [2]: x = 10 In [3]: x + first_name ---------------------------------------------------------------------------
TypeError: unsupported operand type(s) for +: 'int' and 'str'
类型错误:`+` 不⽀持的操作类型:`int` 和`str`
四、变量的命名
标识符
标示符就是程序员定义的 变量名、函数名,名字 需要有 ⻅名知义 的效果
1)、标示符可以由 字⺟、下划线 和 数字 组成
2)、不能以数字开头
3)、不能与关键字重名
关键字
1)、关键字 就是在 Python 内部已经使⽤的标识符
2)、关键字 具有特殊的功能和含义
3)、开发者 不允许定义和关键字相同的名字的标示符
通过以下命令可以查看 Python 中的关键字
In [1]: import keyword In [2]: print(keyword.kwlist)
结果如下:
['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def',
'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal',
'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
变量的命名规则
1. 在定义变量时,为了保证代码格式, = 的左右应该各保留⼀个空格
i. 每个单词都使⽤⼩写字⺟
ii. 单词与单词之间使⽤ _ 下划线 连接
iii. 例如: first_name 、 last_name 、 qq_number 、 qq_password
驼峰命名法
当 变量名 是由⼆个或多个单词组成时,还可以利⽤驼峰命名法来命名
⼩驼峰式命名法:第⼀个单词以⼩写字⺟开始,后续单词的⾸字⺟⼤写
例如: firstName 、 lastName
⼤驼峰式命名法:每⼀个单词的⾸字⺟都采⽤⼤写字⺟
例如: FirstName 、 LastName 、 CamelCase