一木.溪桥---Python之简介、环境搭建、PyCharm配置

  • 1. Python与Guido van Rossum的故事
    • 1.1 Python简介
    • 1.2 Python之禅
    • 1.3 Python的应用
    • 1.4 解释型和编译型语言的区别
  • 2. 环境搭建
    • 2.1 Python解释器
    • 2.2 Python环境搭建
    • 2.3 Python的交互模式
    • 2.4 pip 工具
    • 2.5 Python的第一个程序
  • 3. PyCharm的安装和配置
    • 3.1 PyCharm的安装
    • 3.2 PyCharm的配置

1. Python与Guido van Rossum的故事

  • Python的创始人为吉多·范罗苏姆(Guido van Rossum),关于他开发Python的过程,很多资料里面都要记录下面的故事:1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他是一个蒙提·派森的飞行马戏团(Monty Python’s Flying Circus)的爱好者。ABC是由吉多参加设计的一种教学语言,在吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在Python中避免这一错误,并取得了非常好的效果,完美结合了C和其他一些语言。Python官网

1.1 Python简介

  • Python是一种很牛的语言,应用很简单,功能很强大。
  • Python是完全面向对象的语言,函数、模块、数字、字符串都是对象,并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符,因此也支持泛型设计。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools和itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。
    虽然Python可能被粗略地分类为“脚本语言”(Script Language),但实际上一些大规模软件开发项目(例如Zope、Mnet、BitTorrent及Google)也都广泛地使用它。Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅做简单程序设计任务的语言,如shell script、VBScript等,但其只能处理简单任务的编程语言,并不能与Python相提并论。
  • Python本身被设计为可扩充的,并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到
    其他需要脚本语言的程序内。因此,很多人还把Python作为一种“胶水语言”(glue language)使用,使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。《Python技术手册》的作者马特利(Alex Martelli)说:“2004年,Python已在Google内部使用,Google招募许多Python高手,但在这之前就已决定使用Python。他们的目的是尽量使用Python,在不得已时改用C++;在操控硬件的场合使用C++,在快速开发时使用Python。”

1.2 Python之禅

  • 在Python解释器中输入“import this” :
  • The Zen of Python, by Tim Peters
    Beautiful is better than ugly.
    Explicit is better than implicit.
    Simple is better than complex.
    Complex is better than complicated.
    Flat is better than nested.
    Sparse is better than dense.
    Readability counts.
    Special cases aren’t special enough to break the rules.
    Although practicality beats purity.
    Errors should never pass silently.
    Unless explicitly silenced.
    In the face of ambiguity, refuse the temptation to guess.
    There should be one-- and preferably only one --obvious way to do it.
    Although that way may not be obvious at first unless you’re Dutch.
    Now is better than never.
    Although never is often better than right now.
    If the implementation is hard to explain, it’s a bad idea.
    If the implementation is easy to explain, it may be a good idea.
    Namespaces are one honking great idea – let’s do more of those!

美胜于丑陋(Python 以编写优美的代码为⽬标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,⻛格相似)
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接⼝简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望⼀⾏代码解决问题)
可读性很重要(优美的代码是可读的)
即便假借特例的实⽤性之名,也不可违背这些规则(这些规则⾄⾼⽆上)
不 要 包 容 所 有 错 误 , 除 ⾮ 你 确 定 需 要 这 样 做 ( 精 准 地 捕 获 异 常 , 不 写except:pass ⻛格的代码)
当存在多种可能,不要尝试去猜测⽽是尽量找⼀种,最好是唯⼀⼀种明显的解决⽅案(如果不确定,就⽤穷举法)
虽然这并不容易,因为你不是 Python 之⽗(这⾥的 Dutch 是指 Guido )
做也许好过不做,但不假思索就动⼿还不如不做(动⼿之前要细思量)
如果你⽆法向⼈描述你的⽅案,那肯定不是⼀个好⽅案;反之亦然(⽅案测评标准)
命名空间是⼀种绝妙的理念,我们应当多加利⽤(倡导与号召)

  • 阅读代码的最好地方就是:https://github.com/

1.3 Python的应用

  • Python的应⽤(边学边了解吧!♐)
    常规软件开发
    科学计算
    ⾃动化运维
    ⾃动化测试
    WEB开发
    ⽹络爬⾍
    数据分析
    ⼈⼯智能

1.4 解释型和编译型语言的区别

  • 电脑能认得的是二进制数,不能够识别高级语言。所有高级语言在电脑上执行都需要先转变为机器语言。但是高级语言有两种类型:编译型语言和解释型语言。
  • 编译型语言先要进行编译,然后转为特定的可执行文件,这个可执行文件是针对平台的(CPU类型),可以这么理解你在PC上编译一个C源文件,需要经过预处理,编译,汇编等等过程生成一个可执行的二进制文件。当你需要再次运行改代码时,不需要重新编译代码,只需要运行该可执行的二进制文件。优点,编译一次,永久执行。还有一个优点是,你不需要提供你的源代码,你只需要发布你的可执行文件就可以为客户提供服务,从而保证了你的源代码的安全性。但是,如果你的代码需要迁移到linux、ARM下时,这时你的可执行文件就不起作用了,需要根据新的平台编译出一个可执行的文件。这也就是多个平台需要软件的多个版本。缺点是,跨平台能力差。
  • 解释型语言需要一个解释器,在源代码执行的时候被解释器翻译为一个与平台无关的中间代码,解释器会把这些代码翻译为及其语言。打个比方,编译型中的编译相当于一个翻译官,它只能翻译英语,而且中文文章翻译一次就不需要重新对文章进行二次翻译了,但是如果需要叫这个翻译官翻译德语就不行了。而解释型语言中的解释器相当于一个会各种语言的机器人,而且这个机器人回一句一句的翻译你的语句。对于不同的国家,翻译成不同的语言,所以,你只需要带着这个机器人就可以。解释型语言的特点是,跨平台,缺点是运行时需要源代码,知识产权保护性差,运行效率低。
  • 编译型语⾔ 代表语⾔ C/C++、Pascal/Object
    编译型语⾔,会在代码执⾏前将代码编译为机器码然后将机器码交由计算机执⾏
    x(源码) --编译–> y(编译后的机器码) 特点: 执⾏速度特别快 跨平台性⽐较差
  • 解释型语⾔ 代表语⾔ Python、JavaScript
    解释型语⾔,不会在执⾏前对代码进⾏编译⽽是在执⾏的同时⼀边执⾏⼀边编译
    x(源码)–解释器–> 解释执⾏ 特点:执⾏速度⽐较慢 跨平台性⽐较好

2. 环境搭建

2.1 Python解释器

  • 环境搭建及安装Python的解释器
  • Python的解释器分类:CPython、PyPy、Jython
  • CPython(官⽅我们⽤的就是这个版本) ⽤c语⾔编写的Python解释器
    CPython是使用字节码的解释器,任何程序源代码在执行之前先要编译成字节码。它还有和几种其它语言(包括C语言)交互的外部函数接口。
  • PyPy ⽤Python语⾔编写的Python解释器
    PyPy是Armin Rigo开发的,Python语言的动态编译器,是Psyco的后继项目。PyPy的目的是,做到Psyco没有做到的动态编译。PyPy 是Python开发者为了更好的Hack Python创建的项目。此外,PyPy比CPython是更加灵活,易于使用和试验,以制定具体的功能在不同情况的实现方法,可以很容易实施。 该项目的目标是,让PyPy比C实现的Python更为容易的适应各个项目和方便裁剪。
  • JPython ⽤Java编写的Python解释器
    Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython也有很多从CPython中继承的模块库。最有趣的事情是Jython不像CPython或其他任何高级语言,它提供了对其实现语言的一切存取。所以Jython不仅给你提供了Python的库,同时也提供了所有的Java类。这使其有一个巨大的资源库。

2.2 Python环境搭建

Python官网–>下载:Python >>> Downloads >>> Windows

2.3 Python的交互模式

  • win键 + R --> CMD --> 回车 --> 输入Python
  • 命令行结构
  • Python 3. 8. 3 … —> 版本
  • Type “help”,“copyright”…—> 版权声明
  • 符号>>> —> 命令提示符 (在后面可以直接输入指令)

    例:>>> license()
    A. HISTORY OF THE SOFTWARE
    ==========================

Python was created in the early 1990s by Guido van Rossum at Stichting
Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
as a successor of a language called ABC. Guido remains Python’s
principal author, although it includes many contributions from others.

In 1995, Guido continued his work on Python at the Corporation for
National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
in Reston, Virginia where he released several versions of the
software.

In May 2000, Guido and the Python core development team moved to
BeOpen.com to form the BeOpen PythonLabs team. In October of the same
year, the PythonLabs team moved to Digital Creations, which became
Zope Corporation. In 2001, the Python Software Foundation (PSF, see
https://www.python.org/psf/) was formed, a non-profit organization
created specifically to own Python-related Intellectual Property.
Zope Corporation was a sponsoring member of the PSF.

All Python releases are Open Source (see http://www.opensource.org for
the Open Source Definition). Historically, most, but not all, Python
Hit Return for more, or q (and Return) to quit:

2.4 pip 工具

  • pip介绍
    我们都知道python有很多的第三方库或者说是模块。这些库针对不同的应用,发挥不同的作用。我们在实际的项目中肯定会用到这些模块。那如何将这些模块导入到自己的项目中呢?
    Python官方的PyPi仓库为我们提供了一个统一的代码托管仓库,所有的第三方库,甚至你自己写的开源模块,都可以发布到这里,让全世界的人分享下载 。
    python有两个著名的包管理工具easy_install和pip。在python 2中easy_install是默认安装的,而pip需要我们手动安装。随着Python版本的提高,easy_install已经逐渐被淘汰,但是一些比较老的第三方库,在现在仍然只能通过easy_install进行安装。目前,pip已经成为主流的安装工具,自Python 2 >=2.7.9或者Python 3.4以后默认都安装有pip
  • pip使用
    在命令行下,输入pip,回车可以看到帮助说明:
  • 查看pip版本:pip -V
  • pip升级版本:python -m pip install --upgrade pip
  • 普通安装:pip install requests
  • 指定版本安装:pip install robotframework==2.8.7
  • 卸载已安装的库:pip uninstall requests
  • 升级指定的包,通过使用==, >=, <=, >, < 来指定一个版本号:
    1 pip install SomePackage
    2 pip install SomePackage==1.0.5 # 指定版本
    3 pip install ‘SomePackage>=1.0.6’ # 最小版本
  • 列出已经安装的库:pip list
  • 显示所安装包的信息:pip show package
  • 将已经安装的库列表保存到文本文件中:pip freeze > C:\Users\Administrator\Desktop\install.txt
  • 使用wheel文件安装
    除了使用上面的方式联网进行安装外,还可以将安装包也就是wheel格式的文件,下载到本地,然后使用pip进行安装。比如我在PYPI上提前下载的pillow库的wheel文件,后缀名为whl
    地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
    可以使用pip install pillow-4.2xxxxxxx.whl的方式离线进行安装
  • 第一步 安装 wheel:pip install wheel
  • 第二步 找到下载的whl文件的目录进行安装(以桌面为例):>cd desktop
  • 第三步 执行命令安装:pip install pillow-4.2xxxxxxx.whl
  • 换源安装
    豆瓣 :https://pypi.douban.com/simple/
    阿里 :https://mirrors.aliyun.com/pypi/simple/
    中国科学技术大学:https://pypi.mirrors.ustc.edu.cn/simple
    清华:https://pypi.tuna.tsinghua.edu.cn/simple
    例如:pip install SomePackage -i https://pypi.tuna.tsinghua.edu.cn/simple

2.5 Python的第一个程序

  • 在交互模式实现
  • 用Python自带的idle
  • 用高级开发工具如 : PyCharm

3. PyCharm的安装和配置

3.1 PyCharm的安装

PyCharm官网:https://www.jetbrains.com/

3.2 PyCharm的配置

  • 1、主题修改 File–settings–apperance–theme
  • 2、代码字体修改 File–settings–Editor-Font
  • 3、关闭更新 File–settings—apperance—System Settings —Updates — Automatically check updates for 取消打钩
  • 4、快捷键修改 File–settings—apperance-- Keymap 选择自己习惯的快捷键方式
  • 5、自动导包 File–settings—Editor–General —Auto Import—XML—Show import popup 打钩
  • 6、进制打开上次的工程 File–settings—apperance—System Settings —Reopen last project startup
  • 7、修改新建文件文件头 File–settings–Editor—Code Style — File and Code Templates — Python Script
 #!/usr/bin/env python# -*- coding: utf-8 -*-# @Time    : ${DATE} ${TIME}# @Author  : DXD# @File    : ${NAME}.py# @Software: ${PRODUCT_NAME}
  • 8、修改字体编码 File–settings–Editor—Code Style — File Encoding — Project Encoding

一木.溪桥---Python之简介、环境搭建、PyCharm配置相关推荐

  1. 一木.溪桥---Python之周边

    一木.溪桥---Python之周边 1. 计算机的几个基本概念 1.1 计算机 1.2 计算机的组成 2. 计算机语言 2.1 计算机语言的概念 2.2 计算机语言的发展 3. 计算机语言交互方式 3 ...

  2. 一木.溪桥---Python数据分析之Jupyter

    一木.溪桥---Python数据分析之Jupyter Jupyter安装 Jupyter使用 快捷键 Jupyter安装 安装命令:pip install jupyter Jupyter使用 Step ...

  3. 一木.溪桥---Python学习之路

    一木.溪桥---Python学习之路 1.工作十年常常想起的一些人和一些事 2.选择学习Python的初衷 1.工作十年常常想起的一些人和一些事 我是一名成套电气工程师,专业是电气工程及其自动化(供配 ...

  4. 一木.溪桥学Python-04: Python基础数据类型int ,float ,bool ,complex,None,str, 转义字符

    一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-04: Python基础数据类型int ,float ,bool ,compl ...

  5. 一木.溪桥学Python-03: Python 运算符

    一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-03: Python 运算符 日期:2020年12月18日 学习目标: 算术. ...

  6. python bar函数循环_一木.溪桥学Python-08: for循环、function函数

    一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-08: fo ...

  7. 一木.溪桥学Python-14 异常捕获

    一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-14:异常捕 ...

  8. 一木.溪桥学爬虫-04:requests模块

    一木.溪桥 在Logic Education跟Jerry学爬虫 07期:Python 爬虫 一木.溪桥学爬虫-04:requests模块.cookie.session 日期:2021年1月31日 学习 ...

  9. 一木.溪桥学Python-06:元组tuple、字典dict

    一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-06:元组tuple.字典dict 日期:2020年12月25日 学习目标: ...

  10. 一木.溪桥学Python-10:函数闭包、装饰器、推导式

    一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-10:函数闭 ...

最新文章

  1. 防火墙连接的三个端口
  2. 虚拟机ubuntu启动代码界面_Windows10下使用虚拟机安装Ubuntu18.04
  3. MySQL分区分表 原理详解
  4. 1135 Is It A Red-Black Tree (30 分)【难度: 难 / 知识点: 红黑树 未完成】
  5. 第10课 外边距和内边距
  6. Steam游戏存档位置大全
  7. “L3级”自动驾驶落地指导思想:高速辅助人,低速替代人
  8. TCP通信协议基本操作
  9. 惊人!葵花宝典的创始人居然是段誉
  10. ACM之路(14)—— 线段树的日常(上)
  11. 基于 SpringBoot 的人事管理系统的设计与实现
  12. capex与opex的区别
  13. 浅谈企业数据安全治理
  14. 三台Ubuntu虚拟机搭建 Hadoop集群 (第一次搭)
  15. TestDirector用户手册
  16. 第一章Python概述
  17. 典范杜希奇与机器人_典范英语7_16 杜希奇与机器人
  18. 【C++】 内存空间布局、new/delete、malloc/free
  19. 毕业论文参考文献的快速插入
  20. 一阶向前,向后,中心差分方程

热门文章

  1. makefile通配符
  2. 网易Python爬虫:爬取网易科技频道文章存入MySQL数据库
  3. rk3399 android 9.0 skype强制切换到前置摄像头
  4. 网页加速之Chromium 预加载 Prerendering
  5. 中国网络视频前景 表面云淡风轻实在暗潮汹涌
  6. php收银系统如何连接pos机,收银pos机怎么连接?
  7. java 编写metro风格_纯Javascript实现Windows 8 Metro风格实现
  8. FCP-报表交付工程师考试经验
  9. php 发邮件 上传附件,PHPMailer实现PHP的邮件发送,附带附件
  10. photoshop cs6用户界面字体太小的解决方案