python的逻辑执行语句

      首先python是一种强类型动态解释型语言。在 Python 运行过程中,源代码会被编译为更低级的一种形式,我们称之为字节码。字节码是一串指令,和 CPU 的指令集类似。但是字节码并不直接被 CPU 执行,而是在虚拟机中执行的。我们运行 Python 时完全感受不到它的编译过程,没有显示的调用什么编译程序,仅仅是简单的执行 .py 文件,编译都是需要时自动编译的。此外,python支持交互式编程,即不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。python所提供的交互式编程,本质上也是先完成了字节码的编译,只不过,不是我们手动完成的而已。和python类似的,Java程序也需要编译,但是却没有直接编译为机器语言,而是编译为字节码,然后在Java虚拟机上以解释方式执行字节码。

python解释器python语言编写基本规则python的常用逻辑语句断言语句 其他   、     

  • 强类型语言,强类型是针对类型检查的严格程度而言的,它指任何变量在使用的时候必须要指定这个变量的类型,而且在程序的运行过程中这个变量只能存储这个类型的数据。一个变量的数据类型在变量初始化赋值时就会被定义好,除非用强制类型转化,否则数据类型不会改变。强类型是自定义类所具有的优势,它使得对象处理的数据更容易被理解。因此,强类型语言在大规模信息系统开发中具有巨大优势,特别是当设计者定义了由自定义类所组成的数据访问层,并把设计向组织内的其他程序员发布的时候。它可以通过类型检查机制在编译过程中发现许多容易被人忽视的错误,从而保证软件的质量,使得大规模的软件集成为可能。
  • 弱类型语言,弱类型语言也称为弱类型定义语言。常见的php就是比较有代表性的弱类型语言。对于变量,只要存储空间允许,可以在任何支持的数据类型之间转化,弱类型代码简单,但因为变量没有确定的类型,所以容易出错。
  • 动态语言(Dynamically Typed Language),所谓的动态类型语言,意思就是类型的检查是在运行时做的,比如代码是不是合法的要到运行时才判断(注意是运行时的类型判断),优点为方便阅读,清晰明了,最为明显的缺点为不方便调试。于此同时,动态语言代表着更快更简单的技术大趋势。
  • 静态语言(Statically Typed Language),静态类型语言的类型判断是在运行前判断(如编译阶段),比如C#、java就是静态类型语言,静态类型语言为了达到多态会采取一些类型鉴别手段,如继承、接口,而动态类型语言却不需要,所以一般动态语言都会采用dynamic typing,常出现于脚本语言中。静态类型语言的主要优点在于其结构非常规范,便于调试,方便类型安全;缺点是为此需要写更多的类型相关代码,导致不便于阅读、不清晰明了。
  • 编译型语言,程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等。
  • 解释型语言,程序执行没有编译过程,通过相应的解释器,逐行解释、执行。优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

python解释器

      又名直译器,是一种电脑程序,能够把高级编程语言一行一行直接转译运行。解释器不会一次把整个程序转译出来,只像一位“中间人”,每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较缓慢。解释器一般可分为源代码解释器和伪代码解释器,源代码解释器直接对程序的源代码解释执行;而伪代码解释器先将程序的源代码转化为某种与机器无关的中间代码,然后再执行中间代码。相比之下,源代码解释器更易于创建,并且不需要一个独立的编译过程。

      解释器执行代码的方式有可分为三类:

1.直接运行高级编程语言 (如 Shell 自带的解释器)
2.转换高级编程语言码到一些有效率的字节码 (Bytecode),并运行这些字节码(Perl,Python,MATLAB,与Ruby等)
3.以解释器包含的编译器对高级语言编译,并指示处理器运行编译后的程序 (例如:JIT)
      解释器运行代码相比于直接运行经过编译的机器码效率低,但是,相比于编译语言的整个执行过程即经过编译,再执行的整体流程效率高。在程序开发阶段“编辑-直译-除错”的循环通常比“编辑-编译-运行-除错”的循环节省时间、精力和成本。
      常见的python解释器有Cpython,Jpython,Ipython,pypy,IronPython
Cpython: 我们从官网下载安装python时自带的解释器,也是最常用的解释器,是用C语言开发的。
Ipython: 基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。
Jpython: 运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。不常用
IronPython: 和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
pypy: 另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。非常快!虽然大部分在Cpython和Pypy下都能正常运行,但两个解释器还是有些不同的,这就导致,在执行相同的代码时,两个解释器可能会得到不同的结果。(https://pypy.readthedocs.io/en/latest/cpython_differences.html)
 
python语言编写基本规则

 《python之禅》

优美胜于丑陋
明了胜于晦涩
简洁胜于复杂
复杂胜于凌乱
扁平胜于嵌套
间隔胜于紧凑
可读性很重要
即便假借特例的实用性之名,也不可违背这些规则
不要包容所有错误,除非你确定需要这样做
当存在多种可能,不要尝试去猜测
而是尽量找一种,最好是唯一一种明显的解决方案
虽然这并不容易,因为你不是 Python 之父
做也许好过不做,但不假思索就动手还不如不做
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然
命名空间是一种绝妙的理念,我们应当多加利用

  • python比较明显的特点之一,就是编写过程中的强制缩进(四个空格,如果习惯用Tab键,则需要提前将Tab的输入设置成替换4个空格,否则在不同系统中,可能会爆出缩进错误),功能是规范代码块,效果是增强了代码整体的可读性。即用缩进来代替类似于C语言中的{}。
  • 当出现一行的语句较多时,可用( \)将一行的语句分为多行显示。但当语句中包括 [], {} 或 () 括号,可直接利用括号进行分行。
  • python中支持使用单引号‘’,双引号“”,三引号‘’‘’‘’或“”“ ”“”用以表示字符串,,同时,python中的三引号可用以多行编辑,例如可用于格式化输出。
  • python的注释,分为单行注释和多行注释,单行注释用 # ,多行注释用三引号。快捷键是 ctrl + / 。
  • 为了增强python代码的可读性,注意使用空行,函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。空行也是整体代码的一部分。
  • python支持在一行中包括多条执行语句,期间用分号  ; 分隔
  • 代码组(代码块)是相邻的缩进一致的代码语句组成的
  • 子句(clause),是指由逻辑代码块的首行及后面的代码组构成的整体

python的常用逻辑语句

  • 条件判断语句

基本语法格式

多条件语法格式

另外,当执行语句逻辑较为简单时,可在单行内使用 if 条件判断语句。对于多条件判断语句,在出现条件数量非常大,不方便编写时,可用字典的映射完成条件判断。 

 

  • 三元运算

  变量 = 数值1   if    条件    else     数值2

 

 

  • while循环

基本语法结构

当判断条件为True时则构成无限循环

while循环中加入else,while … else 在循环条件为 false 时执行 else 语句块(正常退出while循环而不是break),基本语法格式:

 

  • for循环

基本语法结构

for循环中加入else,功能等同于while循环中加入else,基本语法结构:

另外,for循环常用于遍历,基本语法结构有:

for循环遍历中enumerate将循环的元素内容及其索引号组成一个元组返回。

python的循环语句是支持嵌套的。

Python 循环体中,continue 语句功能是从当前语句跳出本次循环再进入下一次循环,而break跳出整个循环。

 断言语句

语句格式: assert 判定性质的执行语句

如果断言语句成立,则程序正常执行;如果断言语句不成立,则抛出AssertionError异常。无此类型的异常处理的情况下,程序停止向下执行。

 

其他

1,a++  与 ++a

 

posted @ 2019-04-25 16:36  林山风火  阅读(4)  评论(0)    收藏  举报