我的“便(bian)宜”Python网课第一课

一、Python介绍

  python的创始人为吉多.范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多.范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。

  Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、Google、Yahoo、Faacebook、NASA、百度、腾讯

汽车之家、美团等。

  目前Python主要应用领域:

*云计算:云计算最火的语言,典型应用Open Stack

*WEB开发:众多优秀的web框架,典型的WEB框架有Django

*科学运算、人工智能:典型库Numpy、SciPy、Matplotlib、Enthought、library、pandas

*系统运维:运维人员必备语言

*金融:量化交易、金融分析,在金融工程领域,Python不但在用,而且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单、库丰富、成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于C、C++、Java、尤其擅长策略回测。

*图形GUI:PyQT、WxPython、TkInter。

  Python是一门怎样的语言?

解释和编译的区别是什么?

  编译器是把源码的每一条语句都编译成及其语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快。

  解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度时不如编译后的程序运行的快。

编译型VS解释型

  编译型

  优点:编译器一般会在预编译的过程中对代码进行优化。因为只编译一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。

  缺点:编译后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

  解释型

  优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以哭诉部署,不用停机维护。

  缺点:每次运行的时候都需要解释一遍,性能上不如编译型语言。

动态语言和静态语言

  通常我们说的动态语言,静态语言是指动态类型语言和静态类型语言。

  动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型语言编程时,永远也不用还给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

  静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译期间检查的,也就是说再写程序时要声明所有变量的是数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有Csharp(C#)、Java等。

强类型定义语言和弱类型定义语言

  强类型定义语言:强制数据类型定义的语言,也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整形变量a,那么程序根本不可能将a当作字符串类型处理。强制类型语言是类型安全的语言。

  弱类型定义语言:数据类型可以被忽略的语言。它与强制类型定义语言相反,一个变量可以赋不同的类型的值。

  强类型定义语言再速度上可能略逊色于弱类型语言,但是强类型定义语言带来严谨性能够有效的避免许多的错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间完全没有联系。例如:Python是动态语言,是强类型定义语言(类型安全语言);VBScript是动态语言,是弱类型定义语言(类型不安全的语言);Java是静态语言,是强类型定义语言(类型安全语言)。

  通过是上面介绍,我们可以看出,Python是一门动态解释型的强类型定义语言。

Python解释器

  当我们再编写Python代码时,我们得到的是一个包含Python的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

  由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码。

  CPython

  这个解释器是用C语言开发的。CPython是使用最广的Python解释器。

  PyPy

  PyPy是另外一个解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解不同。

原文地址:https://www.cnblogs.com/JingyuWang/p/8542191.html

时间: 2024-10-17 16:56:43

我的“便(bian)宜”Python网课第一课的相关文章

我的“便(bian)宜"Python网课第二课

二.变量.字符编码 Variables are used to store infomation to be referenced and manpulated in a computer program. They also provide a way of labeling data with a descriptive name, so our program can be understood more clearly by the reader and ourselves. It is

Python之路第一课Day10--随堂笔记(异步IO\数据库\队列\缓存之二)

一.RabbitMQ队列 1.安装: a.官网: 安装 http://www.rabbitmq.com/install-standalone-mac.html b.安装python rabbitMQ module pip install pika or easy_install pika or 源码 https://pypi.python.org/pypi/pika 2.实现最简单的队列通信 a.示意图 3.代码: a.send端 #!/usr/bin/env python import pik

【Python笔记】第一课:基于文件处理的登陆接口

1.基本需求 编写登陆接口,实现如下需求: (1)输入用户名密码 (2)认证成功后显示欢迎信息 (3)输错三次后锁定 2.实现细节 ·每添加一个用户,需要手动添加三个文件 文件 功能 username_count.txt 记录用户输错密码的次数,最大为3次,如果用户密码输入正确,则重置为0,默认为0 username_lock.txt 记录用户是否被锁定,1表示锁定,0表示未锁定,默认为0 username_passwd.txt 记录用户的密码 ·注:username是指该用户的用户名,视具体的

Python之路第一课Day9--随堂笔记之二(进程、线程、协程篇)

本节内容 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queue队列 开发一个线程池 进程 语法 进程间通讯 进程池 一.进程与线程 1.线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 A thread is an ex

Python之路第一课Day9--随堂笔记之一(堡垒机实例以及数据库操作)未完待续....

一.堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.c

Python之路第一课Day2--随堂笔记

入门知识拾遗 一.bytes类型 bytes转二进制然后转回来 msg="张杨" print(msg) print(msg.encode("utf-8")) print(msg.encode("utf-8").decode()) 二.三元运算 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进制,01234567 十进制,0123456789 十六进制,0123456789ABCDEF  二进制

Python之路第一课Day6--随堂笔记(面向对象编程进阶...未完待续 )

本节内容: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 一.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它

【Python爬虫】第一课

学习爬虫的目的是什么? 我目前的理解是爬虫是为了批量访问并获取数据,比如我希望分析各地房价的变化,那我就需要定期爬取房地产相关网站最新房价数据. 先看下面的代码 import requests #import requests包 url = 'http://www.baidu.com' resp = requests.get(url) print(resp) #返回<Response [200]> 如果是小白,可能会有以下几个问题 1. url是什么? 2. requests.get(url)

AI前导课-第一课AI概览(2018/10/20)

AI概览 一.人工智能技术的过去 1.人工智能发展简史 2.符号主义 (1) • 符号主义(逻辑主义.心理学派.计算机学派) – 原理:物理符号系统假设和有限合理性原理. – 起源:源于数理逻辑. – 基本思想: • 认为人的认知基元是符号,认知过程即符号操作过程. • 认为人是一个物理符号系统,计算机也是一个物理符号系统,因此,能用计算机来模拟人的智能行为. • 认为知识是信息的一种形式,是构成智能的基础.人工智能的核心问题是知识表示.知识推理. – 学派代表:纽厄尔.西蒙.尼尔逊等. 3.符