Python基础知识及语法

1、程序

一组能让计算机识别和执行的命令;

2、电子计算机

能够执行程序的机器。

3、现代计算机

 艾伦.麦席森.图灵,英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父。

冯诺依曼。他提出了二进制作为数字计算机的数制基础,计算机能够按照程序顺序执行,计算机应该有五大部件。

4、冯诺依曼体系

(1)cpu。由运算器和控制器组成;

(2)运算器是主管算数据的,四则运算等。算数运算和逻辑运算。

(3)控制器:是计算机控制的,在bas上面跑,执行指令。

(4)存储器。由于记忆程序和数据,例如内存。数据掉电易失的,好处是速度快。

(5)输入设备。将数据或者程序输入到计算机中,例如键盘等。I

(6)输出设备:例如打印机等。展示给用户。o

(7)磁盘,cpu不是直接和磁盘打交道。

(8)所有数据-----磁盘---内存 ----cpu。

(9)cpu算好的数据-----内存---磁盘。

(10)cpu中还有寄存器和多级缓存cache。

(11)寄存器是放在cpu当中的,必须把数据装到寄存器中。把操作数据放到寄存器,计算器去处理。

(12)缓存cache,缓存比寄存器大的多。

(13)缓存、寄存、内存的掉电易失的、离cpu较近的越容易分级的。一级比一级的处理速度慢。

(14)优化的是cpu的。

5、编程语言:

计算机语言;人与机器之间交互的语言。

6、机器语言:

就是指令,一定位数组成二进制的0和1的序列,成为机器指令,机器指令的集合就是机器语言。与自然语言差异太大,难学,难懂,难写,难记,难查错。

7、汇编语言

用一些助剂符号代替机器指令,成为汇编语言。ADD A,B指的是将寄存器A得数与寄存器B的数相加得到的结果放到寄存器A中。。汇编语言写好的程序需要汇编程序转换成机器指令。汇编语言只是稍微好记了一些,可以认为就是机器指令对应的助记符。只是符号本身接近自然语言

8、语言分类

 低级语言

面向机器的语言,包括机器语言、汇编语言

不同的机器不能通用,不同的机器需要不同的机器指令或者汇编程序

高级语言

接近自然语言和数学语言的计算机语言

高级语言首先要书写源程序,通过编译程序把源程序转换成机器指令的程序

1954年正式发布的Fortran语言是最早的高级语言,本意是公式翻译

人们只需要关心怎么书写源程序,针对不同机器的编译的事交给编译器关心处理

语言越高级,越接近人类的自然语言和数学语言

语言越低级,越能让机器理解

高级语言和低级语言之间需要一个转换的工具:编译器、

解释器

 C、C++等语言的源代码需要本地编译

 Java、Python、C#的源代码需要被解释器编译成中间代码(Bytecode),在虚拟机上运行

编译语言,把源代码转换成目标机器的CPU指令,提前声明变量。

解释语言,解释后转换成字节码,运行在虚拟机上,解释器执行中间代码。无须提前声明变量,可以直接拿来使用。Python是动态强类型语言。

9、高级语言的发展。

1)非结构化语言。

编号或者标签。GOTO,子程序可以有多个入口和出口。

有分支和循环。

2)结构化语言。任何基本机构只允许是唯一的入口和出口。

               顺序、分支、循环、GOTO。

3)面向对象语言:更加接近人类认知世界的方式。万事万物抽象成对象,对象间关系抽象成类和继承。。。。封装、继承、多态。

4)函数式语言:古老的编程范式,应用在数学计算,并行处理的场景,引入到了很多现代高级语言中。。。。。。函数是“一等公民”

,高阶函数。

10、程序Program

 1)程序:算法+数据结构=程序。

          数据一切程序的核心。

          程序结构是数据在计算机中的类型和组织方式。

          算法是处理数据的方式,算法有优劣之分。

2)写程序难点:理不清数据。

               搞不清处理方法。

               无法把数据设计转换成数据结构,无法把处理方法转换成算法。

               无法用设计范式来进行程序设计。

               世间万物皆有bug,但不会debug(找到问题所在)。

11、Python解释器

1)官方cpython

     C语言开发的,最广泛的python解释器。

2)Ipython

      一个交互式、功能增强的Cpython。上课常用的。

3)Pypy

      Python语言写成的python解释器,jit技术,动态编译python代码。JIT实时编译,动态编译。直接编译成本地代码(向c语言或者c++)。动态调整,动态优化,最比较牛的技术。

4)Jython

     Python的源代码编译成JAVA的字节码,跑在JVM上面。

 5)IronPYthon

      与Jython类似,运行在。Net的平台上的解释器,Python代码被编译成。Net的字节码。

12、Python基础语法

  1)注释:#标准的文本。

  2)数字:整数,不区分long和int。

              进制0xa、0o10、0b10.

              Bool,2个值True、Talse。

            浮点数:

             1.2、3.1415、-0.12,1.46e9等价于1.46*10(9次幂)不能表达所有的小数。

            复数:1+2j

 3)字符串。

         使用‘”单双引号引用的字符的序列。

         ‘’‘和“”“单双单引号,可以跨行、可以在其中自由的使用单双引号。

13、基础语法

1)转义序列(字符)

 \\   \t   \r   \n  \’   \”

2)缩进

 未使用c语言的花括号,而是采用缩进的方式表示层次关系。

约定使用4个空格缩进。

3)续行

  在行尾使用 \

14、基础语法

   标示符:1、一个名字,用来指代一个值。

           2、只能用字母和下划线和数字。

           3、只能以字母或下划线开头,开头的第一个不能是数字。

            4、不能是python的关键字,例如def、class就不能作为标示符。

            5、Python是大小写敏感的。

   约定:

不允许使用中文。不允许使用歧义单词,例如class。。在python中不要随便使用下划线开头的表示符。

15、基础语法:

1)常量;一旦赋值以后不能改变值的标示符。。。Python中无法定义常量。

2)字面常量:一个单独的量,例如12、’’abc’’、

3)变量:赋值后,可以改变值的标识符。

16、python的语言类型

 1)python是动态语言、强类型语言。

2)静态编译语言:Java。C。。C++、实现声明变量类型,类型不能再改变。

                   编译时检查。

3)动态编译语言:不用事先声明类型。随时可以赋值为其他类型。。。编程时不知道是什么类型,很难推断。

4)强类型语言。不同类型之间操作,必须事先强制类型转换为同一类型。Print(‘a’+1)

5)弱类型,不同类型之间可以操作,自动隐士转换。  

17、运算符Operater

 1)算数运算符;

 + - * / % **

自然除/结果是浮点数,整除//。

2)位运算符。

  &  |  ~   ^  <<  >>(位移,左右。)

常用方式   乘以2的倍数,32//4相当于>>2

18、原码、反码、补码,负数表示法

1)原码

5 => 0b101,1 => 0b1 ,-1 => -0b1, bin(-1)

2)反码

正数的反码与原码相同;负数的反码符号位不变其余按位取反

补码

正数的补码与原码相同;负数的补码符号位不变其余按位取反后+1

负数表示法

数字电路的CPU中的运算器实现了加法器,但是没有减法器,减法是转换成加法

负数在计算机中使用补码存储,-1的补码为1111 1111

19、运算符

 1)比较运算符

  ==    !=   <   >    >=    <=

返回一个bool值。

1<’1’    1==’1’

链式比较操作符;

4>3>2      4>munumber >=1

2)逻辑操作符

  与或非 and  or   not

  短路运算符。And第一个表达式为Flase,后面的没必要参与计算,结果为Flase

              Or如果第一个表达谁为True,后面没必要参与运算。这个表达式为True。

20、运算符的优先级

1)算数运算符》位运算符》身份运算符》成员运算符》逻辑运算符。

2)记不住,用括号。

3)长表达式,多用括号,易懂易读。

比较大小必须是相同的数据类型。

不同类型可做等于不能,但是不能比较大小。

21、表达式Expression

1)由数字、符号、括号、变量等的组合。

算数表达式

逻辑表达式

赋值表达式。

在python中,赋值即定义,如果一个变量已经定义,赋值相当于重新定义。

22、内存管理

1)变量无须事先声明,也不需要指定类型。(动态语言的特性)

2)编程中一般无须关心变量的存亡,也不用关心内存的管理。

3)python使用引用计数记录所有对象的引用数。

  当对象引用数变为0,他就可以被当为垃圾回收GC

  计数增加:赋值给其它变量就增加引用计数,例如;

  计数减少:函数运行结束时,局部变量就会被自动销毁,对象引用计数减少。

          变量被赋值给其它对象。

 有关性能的时候,就需要考虑变量的引用问题,但是该释放内存,还是尽量不释放内存,看需求3)回收策略,定时回收,内存规整,是有策略的。

4)分袋 ,分类存放:永久的,临时的,只用一次的。(引用计数)

数据挪移过程中,不允许操作。垃圾清理过程中。

5)一般不手动进行垃圾回收(GC)。

6)具体看情况,清理GC。

7)内存不是取之不尽的资源。

23、程序控制

 顺序:按照先后顺序一条条执行。

分支:根据不同的情况判断,条件满足执行某条件下定的语句。

循环:条件满足就反复执行,不满足就不执行或不再执行。

24、单分支结构

If语句:  if condition:   代码块。。Bool值,类型。

代码块:类似于if语句的冒号后面的就是一个语句块。

在if、for、def、class等。

25、真值表

 

False等价布尔值,相当于bool(value)

空集合

空字符串

空字典

空列表

空元祖

None对象

 0

26、多分支结构:

if...........elif.............else。

27、分支嵌套:

嵌套结构,可以是分支、循环的嵌套。

   可以相互嵌套多层。

 

 

28、循环 while语句

 语法;while condition:

      Block:

29、for循环

 For element in iteratable:(可迭代的)

  Block。

Range函数。步长由负到正。

 

 

30、循环continue语句

   中断当前循环的当次执行,继续下一次循环。

31、循环break语句

  终止当前循环。

 

32、循环continue / break总结

continue和break是循环的控制语句,只影响当前循环,包括while、for循环

 如果循环嵌套, continue和break也只影响语句所在的那一层循环

continue和break 不是跳出语句块,所以 if cond: break 不是跳出if,而是终止if外的break所在的循环

33、循环else语句

 while condition:

     Block

 else:

Block

For element in iteratable:

block

else:

   Block

如果循环正常的执行结束,就执行else子句。如果使用break终止,就不会执行else语句。 

34、三元表达式

当输出项小于一行的,建议使用。

a=int(input('input first number'))

b=int(input('input second number'))

print(b,a) if a>b else print(a,b)

35、拼字符串

利用str()

print的用法Sep=’’    end=’’    名字一致。

36、斐波那契数列的定义

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

37、时间模块

import datetime

Start=Datetime.datetime now()   

Delta[0]=(datetime.datetiame.now()-start).total_seconds()

Print(delta,sep=”\t”)

Timedelta 时间增量。

posted @ 2018-11-12 15:46  Python爱好者666  阅读(371)  评论(0)    收藏  举报