Python常量|变量
<p>1、常量赋值</p>
<pre><code>1.1、规则
(1)常量是程序运行中值不改变的量,比如身份证号、出生年月等数值固定不变的为常量。
(2)在python中并没有提供定义常量的保留字,不过在PEP8中定义了常量的命名规范为大写字母和下划线组成。
(3)在实际项目中,常量首次赋值后,还是可以被其他代码修改的。</code></pre>
<p>2、变量赋值</p>
<pre><code>2.1、保留字
(1)保留字不可以作为变量、函数、类、模块和其他对象的名称来使用。
(2)以上地方使用了保留字会报错。
(3)另外python中所有保留字都是区分大小写的。例如,if是保留字,IF不是保留字。
(4)查看python中所有保留字
import keyword
keyword.kwlist
(5)常见的保留字\关键字
and\def\for\in\or\while\as\del\from\is\pass\with\assert\elif\False\lambda\raise\yield\break\else\global\nonlocal\return\class\except\if\not\try\continue\finally\import\None\True
2.2、标识符
(1)标识符可以简单的理解成一个名字,主要用来标识变量、函数、类、模块和其他对象的名称。
(2)标识符命名规则
1.由字母、下划线、数字组成;目前python只允许使用ISO-Latin字符集中的字符A-Z,a-z。
2.第一个字符不能是数字。
3.不能使用python中的保留字。
4.标识符中不能包含空格、@#¥等特殊字符。
5.严格区分字母大小写。
6.以下划线开头的标识符具有特殊的意义,一般应避免使用相似的标识符:
以单下划线开头(_xxx)表示不能直接访问的类属性,也不能通过from xxximport*导入;
以双下划线开头(__xxx)表示类的私有成员;
以双下划线开头和结尾的是python中专用的标识(__init__)表示构造函数;
不允许使用汉字作为标识符,虽然不会报错,但是不建议使用。
2.3、变量
(1)命名规则
1.变量名必须是一个有效的标识符。
2.变量名不能使用pyhton中的保留字。
3.慎用小写字母i和大写字母O。
4.应选择有意义的单词作为变量名。
5.不能把变量赋值给变量,只能把常量赋值给变量,例如:a=b是错误表达。
(2)格式
变量名 = value
例如:
1.数值型变量:
number = 2020
print(type(number))
2.字符串型变量:
name = "学海无涯"
print(type(name))
说明:
在python中,使用内置函数type()可以返回变量的类型。
在python中,允许多个变量指向同一个值。
例如:
将2个变量都复制为数字2020,在分别应用内置函数id()获取变量的内存地址,会得到相同的结果。
num = 2020
mmm = 2020
print(id(num))
print(id(mmm))
返回:
1567059661872
1567059661872
2.4、赋值规则
(1)直接赋值
a = 1
print(a)
# 输出:
# 1
(2)链式赋值
a = b = 1
print(a)
print(b)
# 输出:
# 1
# 1
(3)序列解包赋值
a,b = 1,2
print(a)
print(b)
# 输出:
# 1
# 2</code></pre>
<p>2.5、变量的作用域</p>
<pre><code>(1)局部变量
局部变量指的是在函数内部定义的变量,只在函数内部有效。如果外部使用则会抛出NameError异常。
案例
def f_demo()
message = "hello world"
print("局部变量message=",message)
f_demo()
输出:
局部变量message=hello world
外部引用
print("局部变量message=",message)
输出:
NameError...
注:当局部变量和全局变量重名时,对函数体内的变量进行赋值后,不影响函数体外的变量。
(2)全局变量
全局变量能够作用于函数内外的变量。
1、函数体外定义的变量
2、函数体内定义的变量,并且使用global关键字修饰后的变量。
案例-1
message = "hello world"
def f_demo()
print("局部使用message=",message)
f_demo()
print("全局使用message=",message)
输出:
局部使用message=hello world
全局使用message=hello world
案例-2
定义2个同名的全局变量和局部变量,并输出它们的值。
message = "hello world"
print("函数体外message=",message)
def f_demo()
message = "hello keru"
print("函数体内message=",message)
f_demo()
print("函数体外message=",message)
输出:
函数体外message=hello world
局部体内message=hello world
函数体外message=hello world</code></pre>
<p>2.6、匿名变量(lamnda)</p>
<pre><code>匿名变量是指没有名字的函数,适合在需要一个函数,但是又不想去给这个函数命名。通常,这样的函数只使用一次。
语法格式
result = lambda [arg1 [,arg2,...,argn]]:expression
参数说明:
result:用于调用lambda表达式
[arg1 [,arg2,...,argn]]:可选参数,用于指定要传递的参数列表
expression:必选参数,用于指定一个实现具体功能的表达式,如果有参数,那么在该表达式中会引用这些参数。
注:
1、使用lambda表达式时,参数可以有多个,但是表达式只能有一个,即只能返回一个值。
2、也不能出现其他非表达式语句,如for,while等。
3、ambda函数体内部只能是一个表达式,并且会自动将结果反馈出来。
4、lambda函数只有1个功能:提高代码的简洁性。
案例
定义一个计算圆面积的函数
import math
def circlearea(r):
result = math.pi*r*r
ruturn result 返回圆的面积
r =10
print('半径为',r,'的面加为:',circlearea(r))
输出:
半径为10的面加为:314.159263589793
使用lambda表达式的代码如下:
import math
r =10
result = lambda r:math.pi*r*r 计算圆面积的lambda表达式
print('半径为',r,'的面加为:',circlearea(r))
输出:
半径为10的面加为:314.159263589793
总结:从上面的例子可以看出,虽然使用lambda表达式比自定义函数的代码减少了,但是使用lambda需要定义一个变量,否则输出结果不符合预期。
案例
A = lambda a:a+1
print(A(1))
输出:
2</code></pre>