祝好运!
- 下面来说一些内置函数的实现原理(没有参考源码),只能以结果为导向去自己写出,有心想去学习,代码这东西一定要手动去敲,大神勿喷
- 1、len()返回长度,那么是怎样实现的呢
-
-
- 用法:
-
-
-
len(s)
-
-
-
- 列子:
-
-
-
-
-
-
-
- 实现过程:
-
-
-
-
-
-
-
- 2、max(),min()最小值代码实现原理**
-
-
- 首先个人感觉字符串是没办法进行比较和相加的,那么在字符串里有数字字母仍然可以进行max(),min()最小值比较,字符串里面全是数字的话我们直接int强制转换比较,如果有字母特殊符号就会int失败,这时候会把字母转换ASCII码值去进行比较操作
验证观点如下:
- 首先个人感觉字符串是没办法进行比较和相加的,那么在字符串里有数字字母仍然可以进行max(),min()最小值比较,字符串里面全是数字的话我们直接int强制转换比较,如果有字母特殊符号就会int失败,这时候会把字母转换ASCII码值去进行比较操作
-
-
-
-
* 实现过程:tule = [3,4,2,0,7,5] max(tule) max = numbers[0] for each in numbers: if each > max: max = each return max
-
-
3、sum()实现过程
-
-
- sum求和操作,经过尝试支持列表(内嵌列表不可以),字典元组等,int,float等运算的类型
-
-
-
- 实现原理:
-
-
-
-
sorted(),reversed()实现过程
enumerate()实现过程
zip()实现过程
print()实现过程
有空参考,本想用冒泡排序二分法等来实现排序,会楼层更新
-
-
函数学习,其实函数与过程通常是在一起学习,函数给我的感觉很灵活,又可以把很多代码封装打包,参数的缘故让我随心所欲,随时可以调用。关于全局变量,局部变量程序内部修改,包括内嵌函数,闭包(closure)等,变量修该
代码:
def Myfunction:
print('函数输出')
print('12345678')
调用:Myfunction()
自定义函数:
def add(num1,num2):
result = num1+num2
print(result)
这时候num1,num2是我们需要传递进去的参数
形式参数(Paraneter)实际参数(Argument)
简单介绍一下函数文档,既然函数文档一定不同于注释!
关键字:! '' #
这些可用通过
1、def Myfunction.doc
2、help(Myfunction)
都可以来查看函数文档,更规范整齐的方式展示给大家
我们也可以定义默认参数如下代码
def Myfunction(a='你好',b='小明')
print(a+b)
print (b+a)
虽然字母顺序改变,输出变量会随之顺序而改变
*参数带代表可变参数
修改全局变量或局部变量的时候Python会有一种机制屏蔽(Shadowing)
当我们代码运行的过程中试图修改全局变量 新建一个局部变量代替 程序的可读性变差,代码维护成本也会增高 那么我们在运行代码过程中修改变量需要带上关键字!
nonlocal(局部) global(内部)**即可
我们也可以通过吧全局变量存放在数组中 因为变量不存在栈内存即可