python编程语法基础-Python基础—基本语法结构

一、初识计算机

1.计算机的组成

1.硬件系统

运算器、控制器、存储器、输入设备、输出设备。

其中运算器和控制器一起成为cpu,还有一个成为寄存器

存储器分为内存和硬盘:

内存:基于电信号的方式工作,速度快,然而不能永久保存数据,临时存储,断电即消失。

硬盘:基于磁的方式工作,速度慢,但可以永久保存数据。

2.软件系统

系统软件:有称为底层软件,如windows、mac os。

应用软件:基于系统软件上运行的软件,如QQ、360等。

3. 系统启动流程

电脑开机,首先会运行bios,这个软件会告诉计算机系统软件(也就是操作系统)的位置,电脑将操作系统加载到内存中,并让cpu去运行系统软件

4.应用软件运行流程

软件安装在硬盘,永久保存,运行的时候(也就是双击),这个动作相当于给操作系统发送指令,操作系统找到软件位置,并加载到内存,cpu从内存中调用软件数据并运行。

2、数据

数据的含义:是事实或观察的结果,是对客观事物的逻辑归纳,使用与表示客观事的未加工的原始素材。

数据是信息的表现形式和载体,可以是连续的值。

计算机中以二进制信息单元0,1表示,计算机中的各种字母,数字,语音,图形统称为数据,经加工后成为信息。

数据的表现形式:

数字数据:有阿拉伯数字字符表示

模拟数据:在某个区间产生的连续值,如图像,文字等。

3.计算机中的数字数据表现

进制:进位制,人们规定的一种进位方法。

位权:数制中每一固定位置对应的单位值成为位权

二进制:一种计数方法,逢二进一

计算机采用二进制的原因:

技术实现简单,模拟电路状态

简化运算规则

适合逻辑运算

易于进行转换

抗干扰能力强

二、python语言概述

1.python语言概述:

python:蟒蛇,创立者:Guido van Rossum,2002年更新了python2.x版本,2008年更新了python3.x版本

python语言应用方向

云计算: 云计算最火的语言, 典型应用OpenStack

WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django

科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas

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

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

图形GUI: PyQT, WxPython,TkInter

编译型语言和解释型语言:

编译型: 一次性将源代码编译成目标代码(也就是机器码010101010)然后运行的编程语言。

代表语言:C、 C++

优点:执行效率高。 0.001s

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

解释型:逐行将将源代码编译成目标代码(也就是机器码010101010)逐行运行的编程语言。

代表语言:python

优点:可以跨平台、开发效率高、强大的第三方库

缺点:执行效率较低。 0.01s

python语言的优点:

python开发效率高(比其他的解释型语言都高)由于第三方库 避免重复造轮子。

高级语言。你不用去管内存级别的代码。

可嵌入性。Python代码可以移植到C/C++ 语言中。

可拓展性。python代码可以嵌入C/C++ 语言中。

可移植性:不同操作系统的移植。

python语言的缺点:

执行效率相对低。

python自身的原因不能多线程(并发编程会讲到)。

python解释器的类型:

Cpython:官方推荐的解释器,可以将你的python代码转化成C语言识别的字节码。

Jpython:可以将你的python代码转化成JAVA识别的字节码,运行。

Ironpython:IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码

pypy:PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

等等

2.编程语言的分类:

编译型和解释型

编译型

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

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

解释型

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

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

动态语言和静态语言

动态类型语言

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

静态类型语言

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

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

强类型定义语言

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

弱类型定义语言

数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,"这门语言是不是动态语言”与"这门语言是否类型安全”之间是完全没有联系的!

python是一门动态解释性的弱类型定义语言。

3.python安装环境

windows下安装Python(自动添加环境变量)以3,.5版本的举例:

选择版本。

1614731-20190301203732604-1415005521.png

配置环境变量

1614731-20190301203855205-1815072598.png

更改完成

1614731-20190301203940411-151466479.png

三、python基础语法结构

1.认识变量

定义:程序中用于保存和表示数据的占位符,一种抽象。

变量的命名:采用标识符来表示,关联标识符的过程叫命名

命名规则

硬性规定:

组成部分只能是:字母、数字、下划线

不能以数字开头

不能是python的关键字

区分大小写

常规规范:

不能用中文

命名要有含义,见名思意。

推荐命名方式:

下划线拼接:age_of_oldboy(官方推荐)

驼峰式:AgeOfOldboy

2.常量

定义:固定不改变的量

全部大写来命名,如:BIRTH_OF_CHINA = 1949

3.python保留字

概念:被编程语言内部定义并保留使用的标识符,python语言中共33个保留字,也叫关键字

and elif import return

as else in try

assert except is while

break finally lambda with

class for not yield

continue from or

def global pass

del if raise

4.注释和缩进

注释

程序中用作对代码和文件的解释说明,用于提高程序的可读性,不被执行

使用方法

单行注释:# 被注释内容

多行注释:'''被注释内容''',或者"""被注释内容"""

缩进

语法的一部分,缩进不正确程序运行出错

表达代码间包含和层次关系的唯一手段

长度一致,程序一致即可,一般用4个空格或一个tab

5.程序输入和输出

输入函数input(),从控制台获得用户输入的函数,<变量> = input(<提示信息字符串>)

python2中的input输入的是什么类型,获取到的就是什么类型

username = input('请输入用户名:')

输出函数print(),以字符串形式向控制台输出结果的函数,print(<拟输出字符串或字符串变量>)

python3中的input获取到的都是字符串类型

print('hello world!')

6.运算符

算数运算符 arithmetic operator

+ - * /:加减乘除

%:模运算,也就取余数

//:商运算,取整数

%模运算的真正操作原理:

用第一个数除以第二个数,得到最相近的两个商。取最小的数。

用第一个数减去第二个数和第一步的到的数的乘积。

1614731-20190301213740058-1223229528.png

赋值运算符assignment operator

基本赋值运算符:=

扩展的赋值运算符:+=、-=、*=、/=、%=

如 x += y <==> x = x+y

比较运算符 compare operator

<:小于,用于可比较变量之间的比较

>:大于,用于可比较变量之间的比较

=:等于,用于变量的赋值

!=:不等于,用于判断两个字符是不是一样的

==:等于等于,用于判断两个字符是不是一样的,

逻辑运算符 logic operator

python中只包含3中逻辑运算符:and、or、not

逻辑运算符的结果是什么类型

x or y if x is true, return x, else return y

x and y if x is true, return y, else return x

结果取决于两个操作数的类型!!!

针对and操作:第一个操作数如果是可以转成False的话,那么第一个操作数的值,就是整个逻辑表达式的值。

如果第一个操作数可以转成True,第二个操作数的值就是整个表达式的值。

针对or操作:第一个操作数如果是可以转成False的话,第二个操作数的值就是整个表达式的值。

如果第一个操作数可以转成True, 第一个操作数的值,就是整个逻辑表达式的值。

1614731-20190620155035907-658445784.png

成员运算符

in 和 not in:判断某个元素是否属于某个范围内。

s = 'abcd'

print('a' in s) #True