Python变量操作
Mr数据杨 人气:0前言
看到这里已经学习了创建各种 Python 数据类型的值。并且显示的值都是文字或常量值。
>>> print(9.98) 9.98
但是对于复杂代码的情况需要下,程序需要对应的数值随着代码的变化而变化的情况并且进行更改。
可以 Python 程序中的每一项数据如何可以用抽象术语object来描述,使用称为variables的符号名称来操作对象
变量赋值
将变量视为附加到特定对象的名称。在 Python 中,变量不需要像许多其他编程语言那样事先声明或定义。要创建变量需为其分配一个值,然后开始使用它。使用单个等号 ( =) 完成赋值。
>>> n = 998
这里 n 被赋值 998。那么 n 就可以在语句或表达式中使用,其值将被替换。
>>> print(n) 998
就像文字值可以直接从 REPL 会话中的解释器提示中显示,而不需要print()。
>>> n 998
如果更改 n 的值并再次使用它,则将替换为新值。
>>> n = 1000 >>> print(n) 1000 >>> n 1000
Python 还允许链式赋值,这使得可以同时将相同的值分配给多个变量。
>>> a = b = c = 998 >>> print(a, b, c) 998 998 998
变量类型
在许多编程语言中变量是静态类型的。这意味着变量最初被声明为具有特定的数据类型,并且在其生命周期内分配给它的任何值都必须始终具有该类型。
Python 中的变量不受此限制。在 Python 中,可以为变量分配一个类型的值,然后再重新分配一个不同类型的值。
>>> var = 1.5 >>> print(var) 1.5 >>> var = "string" >>> print(var) string
对象引用
Python 是一种高度面向对象的语言。事实上 Python 程序中的几乎每一项数据都是特定类型或类的对象。
# 创建整数对象、赋值、打印 >>> print(100) 100 # 查看数据类型 >>> type(100) <class 'int'>
赋值创建一个具有值的整数对象,100并将变量分配 n 为指向该对象。
>>> print(n) 100 >>> type(n) <class 'int'>
如果用另外的变量赋值,Python 不会创建另一个对象。只是创建一个新的符号名称或引用,m 它指向同一个对象 n。叫 单个对象多次引用 。
>>> m = n
使用 value 创建一个新的整数对象 200,并m成为对它的引用的话就会形成 对单独对象的引用 。
后面如果使用字符串赋值。
>>> n = "foo"
不再有任何对整数对象的引用100,并且无法访问。
当一个对象的引用数降到零时,它就不再可以访问了。到那时,它的生命周期就结束了。Python 最终会注意到它不可访问并回收分配的内存,以便将其用于其他用途。在计算机术语中,这个过程被称为 垃圾回收。
对象身份
在 Python 中,创建的每个对象都有一个唯一标识它的数字,并且不会存在生命周期两个对象出现重叠的相同标识符。一旦某个对象被 垃圾回收,那么该标识符可以再次使用。
内置 Python 函数 id() 返回对象的整数标识符。使用该 id() 函数,可以验证两个变量确实指向同一个对象。
>>> n = 100 >>> m = n >>> id(n) 2006284448 >>> id(m) 2006284448 >>> m = 200 >>> id(m) 2006287648
赋值后 m = n,m 两者 n 都指向同一个对象,由事实证实 id(m) 和 id(n) 返回相同的数字。一旦 m 被重新分配给200,m 并 n 指向具有不同身份的不同对象。
变量名
Python 中的变量名可以是任意长度,可以由大小写字母(A-Z, a-z)、数字(0-9)和下划线字符(_)组成。另一个限制是,虽然变量名可以包含数字,但变量名的第一个字符不能是数字。
>>> name = "Mr数据杨" >>> Age = 36 >>> is_teacher = True >>> print(name, Age, is_teacher ) Mr数据杨 36 True
变量也有自己的命名规则。
- 变量可以由字母、下划线和数字组成。
- 变量不能以数字开头。
- 变量不能与关键字重名。
- 变量区分大小写。
# 官方的命名规则 >>> my_name = "Mr数据杨" # 小驼峰式命名法 >>> myName = "Mr数据杨" # 大驼峰式命名法 >>> MyName = "Mr数据杨" >>> age = 1 >>> Age = 2 >>> aGe = 3 >>> AGE = 4 >>> a_g_e = 5 >>> _age = 6 >>> age_ = 7 >>> _AGE_ = 8 >>> print(age, Age, aGe, AGE, a_g_e, _age, age_, _AGE_) 1 2 3 4 5 6 7 8
保留字(关键字)
不能冲突的关键词 33 个
>>> import keyword >>> print(",".join(keyword.kwlist)) >>> False,None,True,and,as,assert,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
具体含义如下,不用刻意去记,这些都会有区别于普通代码的颜色提示,你要是用他们做变量名了,一看就会知道的。
and: 用于表达式运算,逻辑与操作
as: 用于类型转换
assert: 断言,用于判断变量或条件表达式的值是否为真
break: 中断循环语句的执行
class: 用于定义类
continue: 继续执行下一次循环
def: 用于定义函数或方法
del: 删除变量或者序列的值
elif: 条件语句 与if else 结合使用
else: 条件语句 条件语句,与if,elif结合使用。也可以用于异常和循环使用
except: 包括捕获异常后的操作代码,与try,finally结合使用
finally: 用于异常语句,出现异常后,始终要执行finally包含的代码块。与try,except结合使用
from: 用于导入模块,与import结合使用
global: 定义全局变量
if: 条件语句,与else,elif结合使用
import: 用于导入模块,与from 结合使用
in: 判断变量是否存在序列中
is: 判断变量是否为某个类的实例
lambda: 定义匿名函数
not: 用于表达式运算,逻辑非操作
or: 用于表达式运算,逻辑或操作
pass: 空的类,函数,方法的占位符
print: 打印语句
raise: 异常抛出操作
return: 用于从函数返回计算结果
try: 包含可能会出现异常的语句,与except,finally结合使用
while: 循环语句
with: 简化Python的语句
yield: 用于从函数依次返回值
help(keywords 对应关键字) 可以通过键入Python 解释器随时查看此列表。保留字区分大小写,必须完全按照所示使用,除了 False , None 和 True 其他都是区分大小写。
>>> for = 1 SyntaxError: invalid syntax
加载全部内容