博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python——变量
阅读量:5127 次
发布时间:2019-06-13

本文共 1413 字,大约阅读时间需要 4 分钟。

参考资料:

变量名的命名规则

  1. 仅仅由大、小写英文字母,下划线(_),数字(不可作为变量名的开头)组合而成;
  2. 不能使用Python关键字和函数名作为变量名;
  3. 变量名不能包含空格,但可以使用_来分隔其中的单词;
  4. 变量名应既简短又具有描述性;
  5. 慎用字母lO,因为它们可能被人错看成数字1和0。

python变量不需要声明变量类型

python规定,变量是没有类型之分的,变量的使用不需要提前声明和定义,只需对变量进行赋值,赋值的同时该变量即被创建。

Python是动态的,变量的类型由赋予它的值来决定。

示例:

a=2type(a)
int
b=a
type(b)
int
a=2.5type(a)
float
type(b)
int
print(a)print(b)
2.52
b=b*aprint(b)
5.0

注意:

在程序中可以随时修改变量的值,而python将始终记录变量的最新值。
示例:

a='hello'print(a)a='world'print(a)
helloworld

赋值语句(没有返回值)

形式:\(变量=值\)

增值变量

A+=B 等价于 A=A+B. 一般 A+=B 更加高效,避免复制两次 A.

+可以换成-,*,/,%,**等符号。

变量的引用

在Python中,对象是最基本的概念。整数,浮点数,字符串,元组,列表,字典等数据结构都是作为对象存在的。

每个对象都有两个标准的头部信息:

  1. 标识对象的类型的类型标识符;
  2. 记录对象引用次数的计数器。

Python中变量是没有类型的,类型的概念是属于对象的。使用id()函数可以返回对象的内存地址。

n=7id(n)
1973873296

赋值语句的使用原理

  1. 创建一个对象,前提是该对象未被创建。
  2. 创建一个变量,前提是该变量未被创建。
  3. 将对象的引用值赋给变量,引用器值增加1。

引用就是将对象和变量绑定起来。通过引用将变量指向了一个对象的内存空间,故可以说变量是对象的标签。

赋值语句是使变量建立对象的引用值的,而不是复制对象。

以下示例可以很好的说明:

R=[2,4,5,8]S=R
S
[2, 4, 5, 8]
R
[2, 4, 5, 8]
id(S)==id(R)
True
R[2]=6
R
[2, 4, 6, 8]
S
[2, 4, 6, 8]
id(S)==id(R)
True

由于id(S)==id(R)返回True,故而赋值不是复制,仅仅是引用对象(即“将对象赋值给变量”相当于“用变量给对象贴上了标签”)

增量赋值与普通赋值的区别

  • 二者对于不可变对象的处理方式见。
  • 对于可变对象,二者便会不同,增量赋值会将可变对象就地修改,而不是创建新的对象。

举例说明:

L=[1,2,3]id(L)
2196737070792
L+=[4]id(L)
2196737070792
L=L+[4]id(L)
2196741665416

多重赋值

示例:

X=Y=Z=22print(X)print(Y)print(Z)
222222
X,Y,Z=2,"U",3.56print(X)print(Y)print(Z)
2U3.56
Y,X=X,Yprint(X)print(Y)
U2

赋值生成引用,而不是拷贝

不可变类型不可在原处改变


转载于:https://www.cnblogs.com/q735613050/p/7327284.html

你可能感兴趣的文章
STM32单片机使用注意事项
查看>>
js window.open 参数设置
查看>>
032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
查看>>
移动开发平台-应用之星app制作教程
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
Solaris11修改主机名
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>