Python入门问题总结

        自认为是一个很爱学习的人,学的东西乱而杂,大多只懂一个皮毛就不想深入了。自学的东西很多又杂,缺乏专注,时间投入太少,导致思维混乱,非常的迫切需要一个系统、专业的梳理。因此想尝试写下博客,让自己在短时间内专注一门知识,养成总结的和思考的习惯。

       上个月买的《“笨方法”学python3 》已经看了一半,从软件安装到现在的条件语法的学习,这一部分内容比较简单。后面的部分需要多多总结和实践,因此学记博客就显得尤为重要了。

 

另加,PyCharm之python书写规范--消去提示波浪线 https://www.cnblogs.com/jyfootprint/p/9409927.html

pycham代码过长换行,只需在最后添加“\”换行即可。

 

  • return的作用

1、函数结束的标志

     如:

def f():
    print("Hello")
    return f
    print("world")

“world”将无法打印,因为函数在return时已结束。

2、将值返回给对象。

注意点:如果不写return,则默认返回none;如果有多个对象,python将帮我们将多个对象封装为元祖,并返回。

  • 函数的作用域(LEGB)

我算是疯了,在网上找了下legb的信息,所有的博客内容都介绍的齐全无比好像都是培训资料的样子,来龙去脉无比清楚。不知道博客怎么写,我还是简单的写下自己的理解吧。

所谓的LEGB呢,就是Local (局部变量)-> Enclosed(闭包作用域) -> Global(全局变量) -> Built-in(内建函数),其中的箭头方向表示的是搜索顺序。具体点表达就是:

  • Local 可能是在一个函数或者类方法内部。

  • Enclosed 可能是嵌套函数内,比如说 一个函数包裹在另一个函数内部。

  • Global 代表的是执行脚本自身的最高层次。

  • Built-in 是Python为自身保留的特殊名称。

局部变量无权修改全局变量

#代码1
#说明局部变量无法修改全局变量
counter = 10

def outer():
    print(counter)
    counter = 5

outer()            

 #此时报错UnboundLocalError: local variable 'counter' referenced before assignment(局部变量counter在使用前未定义)#垃圾翻译0.0#
# python在程序运行前会将函数加载至缓存,在def 部分print(counter)时,会在局部作用域内检索counter变量,而后发现counter变量存在,但定义位置却在使用之后,因此报错UnboundLocalError。

#代码2
#如何在局部作用域内对全局变量进行操作?

counter = 10

def outer():
    global counter
    print(counter)
    counter = 5
    print(counter)    #再次打印counter

outer()  

#输出结果为:
10
5

#嵌套函数
def outer():
    counter = 10
    def inner():
        nonlocal counter  #使用nonlocal 提升权限
        counter = 20
        print(counter)
    inner()
    print(counter)

outer()

小结

(1)变量查找顺序:LEGB,就是Local (局部变量)-> Enclosed(闭包作用域) -> Global(全局变量) -> Built-in(内建函数),其中的箭头方向表示的是搜索顺序。

(2)只有模块、类及函数才能引入新作用域

(3)对于一个变量,内部作用域先声明就会覆盖外部变量,不声明直接使用,就会使用外部作用域的变量。

(4)内部作用域要修改外部作用域变量的值时,全局变量要使用global关键字,嵌套作用域变量要使用nonlocal关键字,nonlocal是python 3 新增的关键字,有了这个关键字,就能完美的实现闭包了。

 

  • Ubuntu学习

1、重置Ubuntu密码

             重启Ubuntu,按住shift键,-->输入e-->修改“ro........”为“rw init=/bin/bash”,回车-->输入命令“passwd”开始修改密码-->

退出重进即可。

2、Ubuntu删除guest session

(该图摘自网络)

      打开终端,输入命令

sudo sh -c 'printf "[SeatDefaults]\nallow-guest=false\n" > /etc/lightdm/lightdm.conf.d/50-no-guest.conf'  

      退出保存即可

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值