在Python中,只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域
作用域(LEGB原则)
(1)变量查找顺序:LEGB,局部作用域>外层作用域>当前模块中的全局>python内置作用域;
(2)只有模块、类、及函数才能引入新作用域;
(3)对于一个变量,内部作用域先声明就会覆盖外部变量,不声明直接使用,就会使用外部作用域的变量;
(4)内部作用域要修改外部作用域变量的值时,全局变量要使用global关键字,嵌套作用域变量要使用nonlocal关键字。nonlocal是python3新增的关键字,有了这个关键字,就能完美的实现闭包了。闭包跟装饰器有关系,在装饰器里介绍。
针对(3):
x=6
def f2():
print(x)
x=5
f2()
#变量的修改
#UnboundLocalError: local variable 'x' referenced before assignment
进制转化
'''
在python中二进制用0b加相应数字来表示,8进制用0o加相应数字来表示,16进制用0x加相应数字来表示。即:
#其他进制转换二进制#
>>> bin(2) #十进制转换二进制#
'0b10'
#其他进制转换为八进制#
>>> oct(0b101)
'0o5'
#其他进制转换为十六进制#
>>> hex(0o10)
'0x8'
#其他进制转换为十进制#
>>> int(0o10)
8
#还有一种方法,特点为str只是数,没有字母
'''
a=int(str,16)#a为int型
b=oct(a)
c=bin(a)
d=hex(a)#a,b,c为str型,int()参数一个或两个,oct()等参数一个且为int型
'''
#使用capwords函数将一个字符串中的所有独立的英文单词的首字母都转换为大写。
string.capwords(s)
'''
3.输入二维列表
r=int(input('请输入行数:'))
list1=[]
for i in range(0,r):#二维列表输入实例
list1.append(input().split())
分析网页(检查)思想:先整体,后局部
selenium使用 思想:先定位,后操作
本文详细介绍了Python中的作用域规则(LEGB原则),包括变量查找顺序、新作用域的引入方式及其如何影响变量的声明与修改。此外,还介绍了Python中不同进制之间的转换方法。
25万+

被折叠的 条评论
为什么被折叠?



