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版本的举例:

官网下载:https://www.python.org/downloads/windows/ 

选择版本。

  

配置环境变量

  

更改完成

  

三、python基础语法结构

1.认识变量

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

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

命名规则

硬性规定:

  1. 组成部分只能是:字母、数字、下划线
  2. 不能以数字开头
  3. 不能是python的关键字
  4. 区分大小写

常规规范:

  • 不能用中文
  • 命名要有含义,见名思意。

推荐命名方式:

  • 下划线拼接: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.注释和缩进

注释

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

使用方法

  1. 单行注释:# 被注释内容
  2. 多行注释:'''被注释内容''',或者"""被注释内容"""

缩进

  1. 语法的一部分,缩进不正确程序运行出错
  2. 表达代码间包含和层次关系的唯一手段
  3. 长度一致,程序一致即可,一般用4个空格或一个tab

5.程序输入和输出

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

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

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

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

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

print('hello world!')

6.运算符

算数运算符 arithmetic operator

  • + - * /:加减乘除
  • %:模运算,也就取余数
  • //:商运算,取整数

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

  1. 用第一个数除以第二个数,得到最相近的两个商。取最小的数。 
  2. 用第一个数减去第二个数和第一步的到的数的乘积。 

赋值运算符 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, 第一个操作数的值,就是整个逻辑表达式的值。

 

成员运算符

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

s = 'abcd'
print('a' in s) # True
posted @ 2019-03-07 19:48  ryxiong728  阅读(2194)  评论(0编辑  收藏  举报