1:
# 题目:写函数,接收两个数字参数,返回比较大的那个数字 # 三元运算法,为了简化代码 a = 2 b = 4 c = a if a > b else b print(c) def func(a,b): return a if a>b else b print(func(2,4)) print(func(2,2)) # 正常方法 def func(a,b): if a > b: return a else: return b print(func(2,2)) print(func(2,4)) # 变量 = 条件返回True的结果 if 条件 else 条件返回False的结果 #必须要有结果 #必须要有if和else
#只能是简单的情况
2:eg:写函数,检查传入字典的每一个value的长度,......,则定义函数为 def func(dic):
写函数,用户传入修改的文件名,......,则定义函数为 def func(filename):
3:网页前端:html + js(javascript)(占比重最大) + css 后端:python 或 Java 或 php 或 c 或 c++
4:
我们所说的“变量”就是计算机的“内存地址”
如func()中的func(函数名) 就是这个函数的内存地址
变量的范围 》函数名的范围
5:
三元运算符
接收结果的变量 = 条件为真的结果 if 条件 else 条件为假的结果
接收结果的变量 = “真结果” if 条件 else “假结果”
命名空间 和 作用域
三种:内置 全局 局部
作用域:全局 局部 globals() locals()
global 在局部声明一个全局变量
nonlocal 在局部声明最近的上一层局部中的变量
作用域链 : 小范围用变量的时候,先从自己的名字空间找,
找不到就一层一层向外层(上层)找,直到找到为止,找不到就报错
函数的嵌套调用和嵌套定义
定义在函数内部的函数不能被外界直接调用
内部函数可以使用外部的变量
函数名的本质
就是一串内存地址
函数名可以赋值、可以作为容器类型的元素、函数的参数和返回值 —— 第一类对象
闭包 : 内部函数使用外部函数的变量:
def outer(): a = 1 def inner(): print(a) return inner i = outer() i()
6:
# the importance! # 实参与形参的变量名无关 # 读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么? a = 10 b = 20 def func(a,b): print(a,b) func(b,a) c = func(b,a) # 这里拆为二步,第一步是先执行(或调用)func(b,a),在执行完结果后再对变量“c”赋值,(那么相应的就得有返回值),而本题没有返回值,所以print(c)为None print(c)