My_Project

资料整理


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>

页面列表

ITEM_HTML