函数和模块的使用 Day6
学习计划:
- day6的学习
- spyder的学习
- 其他的一些思维,像公众号之类的
- PEP8的学习
学习收获:
对于python
- 学会定义函数,知道用函数可以减少重复的内容,是程序更加具有可读性和间接性
def 函数名(变量名): # my code
- 函数前面各空两行,如果是嵌套函数(在一个函数里面再写一个函数,前后空一行)
- 如果函数内容为空,则会报错,加上
pass
表示空语句
- 学会了模块的使用,知道使用模块可以避免没有函数重载的函数调用,即当函数名字相同时,后者的函数会覆盖前者的使用
- 具体操作是
import module from module import function
- 注意module应该在与主程序所在的工作路径里面
- 调用module会同时执行(只执行一次)里面的执行语句,所以应该在执行语句前添加
if __name__ == '__main__':
- 做了小练习,重复使用素数,最大公约数和最小公倍数的循环结构,当控制器一直不能得出结论时,有可能是电脑带不动,更有可能是循环无法结束
- 学习了变量作用域
def foo():
a = 1
def bar():
b = 2
c = 1
print(a)#无法输出a
- 全局作用域:c属于
- 局部作用域:a属于(在
foo()
之外无法访问),b属于(在bar()
之外无法访问) - 嵌套作用域:a相对于
bar()
属于 - 内置作用域:
print
属于
-
python查找一个变量会按照“局部作用域”,“嵌套作用域”,“全局作用域”,“内置作用域”搜索
变量作用域 - 如果要将局部变量设置为全局变量,在局部作用域有两步:
global a
a = 1
4. 做重要的一步,养成如下写代码的习惯
def main():
# Todo: Add your code here
pass
if __name__ == '__main__':
main()
对于spyder
- 学习了运行代码的两个方法
-
execute in current console
:
在当前的控制台运行代码
好处是方便对代码进行交互
坏处是不经意间(inadvertently)使用了运行前已定义好的(全局)变量 -
execute in a dedicated console
:
重新在一个控制台运行代码
忘掉过去,重新开始新生活,欧耶!
-
对于PEP8
- 续行要对齐且要与下面代码的缩进进行区分
- 参数太长,尽量使用小括号进行隐式续行,当然有时候
\
也有用,譬如在with
里面 - 在二元运算符之前断开
income = (my_income
+ mother_income
+ father_income)
对python说的话:
没想到今天竟然就开始感到疲乏了,果真自己就属于一旦放纵就拉不会的人,但还是要坚持百日计划,要沉下心来。
python宝宝嗷嗷待哺,难道我就要放弃吗?难道我就要逃避吗?她可是我的心头肉啊
未做的事:
- 七天过后,开始回顾之前的笔记,看是否有补充或者语句不通顺,表达不清楚的,进行更改
-
??
闭包与匿名函数的区别- 闭包:函数中定义函数,使得内部的函数可以调用局部变量,增强局部变量的寿命,嗯?我怎么搞不出来
- 匿名函数:就是没有命名的函数
这两者为什么要比较,在什么情况下会混淆呢?(移到day13)