1.简述Python的运行过程
在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。
我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。
当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。
2.copy是浅赋值,只是赋值了第一层的内存地址。
3.输出For 循环中的index的处理方式。
4.函数式编程----过程式编程 均使用def定义
过程是没有返回值的函数
5.为什么函数需要有返回值?
最大作用是获得函数操作后的唯一结果
6.函数的调用方式
def test(x,y):
print(x)
print(y)
# 位置参数调用:形参与实参必须一一对应
# test(1,3)
# 关键字调用:位置无须对应
test(y=1,x=2)
# 混合:关键字调用必须位置参数之后
test(1,y=3)
def test(x,y=2):
print(x)
print(y)
'''使用默认参数的函数,调用函数的时候默认参数非必须传递'''
# 只传递一个参赛,使用默认参数
test(1)
# 传递两个参数:实参覆盖默认值
test(1,2)
(1)形式参数
*args:接受N个位置参数,转换成元组
接受不固定参数(位置参数) ---变成元组
def test(*args):
print(args)
test(3,5,7,8)
#(3, 5, 7, 8) 输出结果
(2)**kwargs:把N个关键字参数,转换成字典的方式.
def test(**kwargs):
print(kwargs)
test(name='wfb',age=19)
# {'name': 'wfb', 'age': 19} 输出结果