04月01, 2021

Python简介与安装运行

Python简介:

善于做:

  • 自动化脚本
  • 开发网站
  • 游戏 后台服务

不能做:

  • 开发一个操作系统C
  • 开发3D游戏 C或C++
  • 开发手机应用 IOS Android

Python不需要编译,是解释语言,直接可以运行。执行时将源代码翻译成CPU的源代码,所以程序运行会比较耗时。

JAVA是先编译,再运行。

虽然Python运行相对慢,但是在很多场景下,我们感知不到,因为可能是0.01秒和0.05秒之间的差距。

语法特点:编码风格清晰、整齐划一。强制用空白符做语言的缩进。通过缩进的空白符数量,判断这段代码究竟是属于哪个逻辑的。

与其他的语言相比,相对于PERL语言,Python更具有可读性,易于维护。相对于Java和C,学习起来简单。相对于VB来说,Python是开源的语言,不会被某个厂商所绑架。相对于PHP来说,用途更加广泛。相对于RUBY来说,Python语言更加成熟,可读性更强。Python中的面向对象是可选的。

Python基础部分:

  1. 开发环境安装,以Linux(CentOS)和windows为例。包管理工具 pip setuptools virtualenv(隔离开发环境)

  2. 核心数据类型:数字,布尔型,字符串,列表,元组,字典,集合,文件,赋值和动态类型

  3. 流程控制语句:条件控制(if else),循环控制(for while),三元表达式、迭代器和列表解析

  4. 函数,把不同的功能封装到不同的函数中,以便复用。函数的定义,与函数相关的语法,def f1() return lambda yield... 变量的作用域,函数的参数,递归函数,匿名函数,生成器函数,模块

  5. 面向对象编程的思想。多态、封装、继承、抽象。面向对象的编程思想的基础,类?实例?属性的搜索继承?新式类?经典类?运算符重载?命名空间?

  6. 代码的异常处理和装饰器。try except else finally 做代码的异常检测。raise认为的抛出异常。assert做断言。装饰器:为某一个功能函数添加额外的功能,普通的装饰器,装饰带参数的函数,装饰带不固定数量的函数,带参数的装饰器。

环境安装:

  • 类linux系统自带Python 2.7
  • 安装Python3需要去官网下载安装
  • 安装windows和mac都是下载安装包后点击安装即可
  • 安装Linux系统的Python3,参考CentOS 7安装Python教程

virtualenv隔离开发环境

serverA 同时被多个开发者使用

开发者A Flask v1.0

开发者B Flask v2.0

在没有隔离他们的开发环境的时候,可能会出现的情况。

此时开发者A把flask版本安装为1.0,A的代码可以跑起来。

开发者B 把自己的2.0的代码放在了服务器上,运行不了。

开发者B升级了flask版本到2.0,开发者B的代码可以运行了。

开发者A发现自己的代码运行不了,因为版本不是1.0了。

解决方法:

将A和B进行隔离。virtualenv

#更新MacOS系统中的virtualenv的版本,使用豆瓣的源
localhost:python dalong$ pip3 install -U virtualenv -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com


Looking in indexes: http://pypi.douban.com/simple/
Collecting virtualenv
  Downloading http://pypi.doubanio.com/packages/91/fb/ca6c071f4231e06a9f0c3bd81c15c233bbacd4a7d9dbb7438d95fece8a1e/virtualenv-20.4.3-py2.py3-none-any.whl (7.2 MB)
     |████████████████████████████████| 7.2 MB 5.4 MB/s 
Collecting distlib<1,>=0.3.1
  Downloading http://pypi.doubanio.com/packages/f5/0a/490fa011d699bb5a5f3a0cf57de82237f52a6db9d40f33c53b2736c9a1f9/distlib-0.3.1-py2.py3-none-any.whl (335 kB)
     |████████████████████████████████| 335 kB 8.3 MB/s 
Collecting filelock<4,>=3.0.0
  Downloading http://pypi.doubanio.com/packages/93/83/71a2ee6158bb9f39a90c0dea1637f81d5eef866e188e1971a1b1ab01a35a/filelock-3.0.12-py3-none-any.whl (7.6 kB)
Collecting six<2,>=1.9.0
  Downloading http://pypi.doubanio.com/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting appdirs<2,>=1.4.3
  Downloading http://pypi.doubanio.com/packages/3b/00/2344469e2084fb287c2e0b57b72910309874c3245463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Installing collected packages: distlib, filelock, six, appdirs, virtualenv
Successfully installed appdirs-1.4.4 distlib-0.3.1 filelock-3.0.12 six-1.15.0 virtualenv-20.4.3


localhost:python dalong$ virtualenv 
usage: virtualenv [--version] [--with-traceback] [-v | -q] [--read-only-app-data] [--app-data APP_DATA] [--reset-app-data] [--upgrade-embed-wheels] [--discovery {builtin}] [-p py] [--try-first-with py_exe]
                  [--creator {builtin,cpython3-posix,venv}] [--seeder {app-data,pip}] [--no-seed] [--activators comma_sep_list] [--clear] [--no-vcs-ignore] [--system-site-packages] [--symlinks | --copies] [--no-download | --download]
                  [--extra-search-dir d [d ...]] [--pip version] [--setuptools version] [--wheel version] [--no-pip] [--no-setuptools] [--no-wheel] [--no-periodic-update] [--symlink-app-data] [--prompt prompt] [-h]
                  dest
virtualenv: error: the following arguments are required: dest
SystemExit: 2

# 查看virtualenv的版本
localhost:python dalong$ virtualenv --version
virtualenv 20.4.3 from /usr/local/lib/python3.8/site-packages/virtualenv/__init__.py

模块 程序由模块组成的

语句 模块中包含了语句

表达式 语句当中包含了表达式

对象 表达式处理对象

核心数据类型有什么?

  • 数字:整型、浮点型、复数(实部和虚部)
  • 布尔型:true/false
  • 字符串:x = 'apple',记录文本信息,是序列类型对象,包含了从左到右的顺序,序列中的元素可以根据其位置进行读取和存储
  • 列表
  • 元组 x = (1,2,3)
  • 字典 x = {a:1, b:2}
  • 集合 x = set([1,2,3]) #确定性 互异性 无序性
  • 文件 x = open() read() write()
  • 赋值和动态类型

如果代码不支持中文,需要在代码头部加上

# -*- coding: UTF-8 -*-

本文链接:https://www.daguanren.cc/post/Python-jian-jie-yu-an-zhuang-yun-xing.html

-- EOF --

Comments