python 基础,*.py文件结构 到 实战

这篇博客介绍了Python的基础知识,包括*.py文件的执行过程,PVM原理,Python的主流实现如CPython、Jython,以及执行工具如Psyco、Shedskin。还涉及交互模式、数据类型、字符串操作、文件操作、类和模块,以及常用库的简单应用。
摘要由CSDN通过智能技术生成

正在学⬇️

清华尹成 和 《python学习手册

  • 1-590

  • P1-177

  • P260-275

  • P313-322

  1. 如何执行
  2. 新增语句
  3. 变量
  4. 字符串操作
  5. 判断循环
  6. 函数
  7. 文件操作
  8. 常用库
  1. 如何执行

    1. 传统 Py程序 运行顺序
      • *.py 源码

      • *.pyc 字节码

        • 非二进制码,但可以提升速度
        • 如果py进程有写入权限,执行python3 *.py 后会在其旁边生成 *.pyc. 否则会在内存中生成,并在程序结束时丢弃
        • 第二次运行程序时,如果字节码没有修改,python将会加载.pyc并跳过编译
      • PVM Python虚拟机

        • 解释器的最后一步,用来迭代运行字节码,一个接一个地完成操作

        • 速度介于传统的编译语言 和传统的解释语言之间

    2. Py语言 的主流实现方式
      • CPython

        • 标准的Python实现方式,是由C语言代码编写的
        • 多数Linux 和Mac os 上自动安装的是这个
      • Jython

        • Jython系统是将 (-> .pyc字节码 ->Py虚拟机) 替换为java等效实现
        • 是Python语言的替代实现方式,为了与Java语言集成
        • 包含了Java类,java类编译Py源代码,形成Java字节码,
        • 字节码映射到Java虚拟机上(JVM)
      • 其他

    3. .py 执行工具
      • Psyco实时编译器

        • 一个增强速度工具,不是标准Python的一部分,可能需要单独安装他
        • 可以将部分字节码转换成底层二进机器吗,从而提升执行速度2~100倍
      • Shedskin C++转换器

        • 一个引擎系统,采用不同方式执行Py代码,比Psyco的执行速度更快,处于实验项目
        • Python代码变为C++代码,使用机器上的C++编译器,将C++编译二进机器代码
      • 冻结二进制文件

        • 一种让Python程序,生成独立可执行二进代码的方法,
        • 就是将字节码,解释器,和所需的Python支持文件,混合在一起生成一个可执行程序
        • eg: py2exe( Windows 下使用 ), PyInstaller( Linux及Unix上使用 )
        • 好处:封装之后,可以作为一个程序进行发售,终端用户无需安装
    4. 运行程序
      • 交互模式

        • 开启方法: shell里使用命令 python3

        • 关闭方法: Control+d

        • 注意事项:

          1. 如果python3所在的目录不在shell的PATH环境变量里,需要使用完整路径/usr/bin/python3
          2. 数据自动print
        • ~ where python3
          /usr/bin/python3
          ➜  ~ /usr/bin/python3
          Python 3.7.3 (default, Dec 13 2019, 19:58:14) 
          [Clang 11.0.0 (clang-1100.0.33.17)] on darwin
          Type "help", "copyright", "credits" or "license" for more information.
          >>> for ch in "abc":
          ...  ch
          ... 
          'a'
          'b'
          'c'
          >>> 
          
      • 用命令行运行文件

        • python3 hello.py 执行文件

          • 好处:可以流定向

          • 不好:会弹出另一个窗口

      • UNIX可执行脚本

        • 文件顶端告诉系统Python解释器保存在哪

          • 注: 需要程序有执行权限

          • 注:不带扩展名

          • ➜  ~ chmod a+x p1 p2    
            ➜  ~ ls -l
            -rwxrwxrwx@  1 tianweiye  staff    57 Mar 18 20:52 p1
            -rwxrwxrwx@  1 tianweiye  staff    60 Mar 18 20:53 p2
            ➜  ~
            
        • 书写格式

          • 1.直接 eg:#!/usr/bin/python3

          • 2.查询 eg:#!/usr/bin/env python3

            • env 可以通缩系统的搜索PATH环境变量中的所有目录来找 python3
          • ➜  ~ env
            SHELL=/bin/zsh
            HOME=/Users/tianweiye
            LOGNAME=tianweiye
            USER=tianweiye
            PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
            PWD=/Users/tianweiye
            OLDPWD=/Users/tianweiye
            ZSH=/Users/tianweiye/.oh-my-zsh
            LC_CTYPE=UTF-8
            _=/usr/bin/env
            ➜  ~ where python3
            /usr/bin/python3
            ➜  ~ 
            
        • eg:

          ➜  ~ cat p1
          #!/usr/bin/env python3
          print("\n p1 was executed \n ")
          
          ➜  ~ open p1                                              
          ➜  ~ /Users/tianweiye/p1 ; exit;
          
           p1 was executed 
           
          
          [进程已完成]
          ➜  ~ cat p2
          #!/usr/bin/env python3
          print("\n p2.py was executed \n ")
          
          ➜  ~ open p2                                                     
          ➜  ~ /Users/tianweiye/p2 ; exit;
          
           p2.py was executed 
           
          
          [进程已完成]
          
          
      • IDE

        • eg:PyCharm CE
    5. .py文件

      1. 脚本

        • python的顶层模版文件叫做脚本
      2. 模块

        • 模块路径:Python会自动到sys.path 中的路径寻找模块

          • sys中会自动通过PYTHONPATH这个环境变量进行初始化目录

          • 如果想加载模块,模块的目录必须在PYTHONPATH中列出

          • >>> import sys
            >>> for path in sys.path:
            ...  path
            ... 
            ''
            '/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python37.zip'
            '/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7'
            '/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload'
            '/usr/local/lib/python3.7/site-packages'
            >>>~ ls -1 /usr/local/lib/python3.7/site-packages/
            __pycache__
            easy_install.py
            pip
            pip-20.0.2-py3.7.egg-info
            pkg_resources
            setuptools
            setuptools-46.0.0-py3.7.egg-info
            sitecustomize.py
            tk
            tk-0.1.0.dist-info
            wheel
            wheel-0.34.2-py3.7.egg-info
            yagmail
            yagmail-0.11.224.dist-info
            ➜  ~ 
            
        • 构成: 模块就是一个???.py文件

          • ➜  ~ cat mo.py
            str = 'this 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值