串讲1--变量(存取值问题)
变量
代替数据的设计思想
两个语法:取值(取出它代替的数据),存值(数据保存到这个标识符中)
思路
(如何看到一个变量就想到它是存值还是取值):
-
=是一个运算符
a.先执行它右边的代码(重点:运行完),产生一个结果(只有一个某种类型的数据)
b.把这个结果赋值给等号左边的变量
变量在=右边取值,=左边存值 -
成员访问
一定是取值操作
x[y]=10 y变量是x的成员(索引) y就是取值操作
a=x[y] y变量是x的成员(索引) y就是取值操作 -
实参
一定是取值操作
fn(10)
fn(a) # a变量是取值,取出它保存的数据 传入函数内部 不是把a传入了 是把a的值传入了
a=fn(a) # 左a存值,右a取值
x[fn(a)]=10 # a变量是取值,取出它保存的数据 传入函数内部 不是把a传入了 是把a的值传入了
print(a+20) # a取值操作 -
形参
一定是存值操作
def fn(a=10): # a存值操作,存10
pass
=a
a=
fn(100) # 将100传入a,a更新覆盖为100
x=a(x)x # 左x存值,右第一个第二个第四个x取值操作,第三个x存值操作
存值:
1. 如果变量已经存在了,就会更新它保存的数据==》变量只能保存一个数据 根据代码运行时间先后关系 可能发生变化;
2. 如果没有这个变量,就会在当前作用域创建/定义变量
取值:
1. 如果变量存在,就直接取最近(时间)一次保存的值;
2. 变量不存在,就会在上一层作用域访问,没有继续在上上层访问,直到全局作用域还没有就报错
点击查看代码
x = 10
y = 20
x,y = y,x # 两次存取值
print(x,y)
# y,x取值,保存到开辟的元组内存空间中
# 按下标依次赋值
x = {"age":10}
age = 20
x = {age:30}
print(x)
a=x if y else z # xyz都是取值
x(x)
本文来自博客园,作者:桑年,转载请注明原文链接:https://www.cnblogs.com/clover-1105/p/21345280

浙公网安备 33010602011771号