Python的故事_two

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python的故事_two相关的知识,希望对你有一定的参考价值。

祝好运!

  • 下面来说一些内置函数的实现原理(没有参考源码),只能以结果为导向去自己写出,有心想去学习,代码这东西一定要手动去敲,大神勿喷
  • 1、len()返回长度,那么是怎样实现的呢
      • 用法:
      • len(s)
      • 列子:
        • 技术分享图片
              • 实现过程:
        • 技术分享图片
  • 2、max(),min()最小值代码实现原理**
      • 首先个人感觉字符串是没办法进行比较和相加的,那么在字符串里有数字字母仍然可以进行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(内部)**即可
我们也可以通过吧全局变量存放在数组中 因为变量不存在栈内存即可

以上是关于Python的故事_two的主要内容,如果未能解决你的问题,请参考以下文章

Python的故事_one

python判断两个字典变化

Add Two Numbers

python & MySQLdb(two)

如何在 python 中并行化以下代码片段?

python_数据类型——