概述

python是动态编程语言,动态编程语言的变量不需要进行数据类型定义,其数据类型可以不固定!python是解析性语言,需要提前安装python解析器才能执行python程序。
Python 类库(模块)极其丰富,这使得 Python 几乎无所不能,不管是传统的 Web 开发、PC 软件开发、Linux 运维,还是当下火热的机器学习、大数据分析、网络爬虫,Python 都能胜任 。

一、变量


变量命名必修是字母或者下划线开头,不能是数字或者其它字符开头,如name、age1。 变量名不可是python关键字,如if、for等等,也不能和已有的内置函数重名。语句 name=”tom” 完成了两个任务,分别是声明一个变量name,并设置初始化值为字符串”tom”.变量的内容在程序运行过程中是可以发生变化的。如 a=10,a=a+10,执行后a的值为20

二、基本数据类型

1、数值(Number)

简单理解就是能进行加减乘除等运算的数据,包括整型(int)和浮点型(float),如a=2,pi=3.14浮点型就是数学中的小数。
数值运算符:乘() 除( /) 求余(%) 整除( //) 幂次方( *)

2、字符串(String)

简单理解就是文本。字符串初始化时用英文引号引住,如name=”tom jack”。字符串可以做连结运算,或者截取其中一段子字符串!如:name=name+”hello” ,name[0],name[1:3]

3、布尔(Bool)

只有True和False两个值,注意首字母大写,没有引号。如 a=True。布尔数据可以进行布尔运算(and or not)。

4、容器

容器表示能存储许多数据的数据类型,当然容器中也可以嵌套存储容器!容器主要包括列表(List)、元组(Tuple)、集合(Sets)、字典(Dictionary),初学阶段重点要求掌握列表,列表掌握后其它容器类型参照即可。列表就是按照顺序存放数据,序号从0开始

初始化:初始化一个空的列表 L=[]、初始化一个有初始值的列表 L=[1,”a”,2,3]

获取列表中的某项: L[1]

截取其中一段子列表:L[1:3]

列表更新:L.append(x) L.pop()

5、空(None)

声明了一个变量,但是没有指向任何存储空间。 a=None

注意:由于python是弱数据类型的编程语言,一个变量的数据类型是可以发生变化的,可以使用type函数查看一个变量的数据类型

  1. n=3.14
  2. type(n)
  3. <class 'float'>
  4. n="3.14"
  5. type(n)
  6. <class 'string'>

二、函数

可重复使用的代码片段。函数三要素,名称、参数、返回值!函数可以有参数,也可以没有参数。可以有返回值,也可以没有返回值,函数的返回值可以赋值给一个变量。函数一般组成: 返回值 函数名(参数)

根据函数的来源不同,可以分为内置函数、用户自定义函数、模块函数
1、内置函数 由python解析器提供,可以直接调用,如print、len。
2、自定义函数先定义,后调用。定义函数使用def关键字,有返回值的使用return关键字。函数一旦return,则立即结束

  1. #定义求和函数add
  2. #定义参数 a,b形参
  3. def add(a,b)
  4. return a+b
  5. c=add(100,11)
  6. return c
  7. #调用求和函数
  8. #调用实参
  9. cc=add(100,11)

3、模块函数,要先安装扩展模块,引入模块,最后调用模块中的函数。引入模块使用import关键字。

  1. import math
  2. print(math.pi)
  3. print(math.sin(3))
  4. a=math.sqrt(101)
  5. print(a)

三、if分支

1、if单分支

满足if条件即执行

  1. n=100
  2. if n%2==0:
  3. print(n,"是偶数")


2、if-else双分支

满足if条件执行,否则执行else语句

  1. n=100
  2. if n%2==0:
  3. print(n,"是偶数")
  4. else:
  5. print(n,"不是偶数")

3、if-elif-else 多分支

多个分支,也可使用前两种嵌套实现

  1. #注意只会执行一个分支,如果n=15,判断为3的倍数分支后执行,后面5的倍数分支不会执行
  2. if n%3==0:
  3. print(n,"是3的倍数")
  4. elif n%5==0:
  5. print(n,"是5的倍数")
  6. else:
  7. print(n,"既不是3的倍数,也不是5的倍数")

四、循环执行

重复执行,直到条件不满足为止,有for迭代循环和while条件循环

1、for 循环(从可迭代对象中依次取出对象),常见的字符串和容器(列表、元组、字典、集合)就是可迭代对象,语法需要注意的是for末尾有英文冒号,for内部语句要缩进

  1. a=[1,3.14,"hello",True,["a"]]
  2. for i in a: #注意,a必须是一个可以迭代的对象,如range(10)
  3. print(i)

range函数提供了常见自然数的迭代循环,range(起始值,终止值,步长),起始值默认为0,步长默认为1

  1. for i in range(10):
  2. print(i*i)

比如让列表L=[1,3,5,7,9]中的各个元素变为原来的平方,应该选择循环列表的下标

  1. #错误,迭代循环中是将列表中的值拷贝到l中,列表本身不会发生改变
  2. for l in L:
  3. l=l**2
  4. #正确做法是循环列表下标
  5. for i in range(len(L)):
  6. L[i]=L[i]**2

2、while循环(条件满足则执行循环体,一般情况下执行中会改变条件语句中的变量)

  1. a=0
  2. while a<10:
  3. a=a+2


3、break 和continue关键字

break跳出整个循环体

continue 跳出当次循环

五、对象

为了程序设计的方便,我们常常把一些变量和与之有关的函数封装成一个整体,这就是面向对象的编程设计思维。这些变量叫做这个对象的属性,这些函数叫做这个对象的方法!对象在使用前要进行实例化!实例化的时候要调用类同名的函数,并注意初始化参数!我们常用的列表其实就是一个对象

  1. #实例化,python为了方便,可以直接使用L=[]
  2. L=list()
  3. #调用列表的insert方法,在指定的位置插入元素
  4. L.insert(0,1)
  5. #调用列表的sort方法排序
  6. L.sort()

使用class关键字定义类,比如有一个学生类Student,那么可以实例化成多个具体的学生,这个学生有属性姓名name和年龄age,也有对外展示show这个方法。

  1. #类和实体
  2. #使用class关键字定义类,类是抽象的,定义后要实例化后才可使用
  3. #类名默认大写,实例化使用类的同名称函数,实际是调用类的初始化函数!注意参数的个数和类型
  4. #使用dir函数查看对象的所有属性和方法
  5. #使用type函数查看对象所属的类
  6. class Person:
  7. #类定义中有一个特殊的方法,__init__,叫做类的初始化方法
  8. def __init__(self,name,age,weight):
  9. print("person init...")
  10. self.name=name
  11. self.age=age
  12. self.weight=weight
  13. #类的成员方法定义,第一参数使用self,区别普通方法
  14. #类的成员方法和属性都要通过self调用 ,self.**
  15. def speak(self):
  16. print("My name is ",self.name,", my age is ", self.age,",my weight is ",self.weight)
  17. #注释 解释一下这个方法作用和参数
  18. def eatting(self):
  19. print("i am eatting")
  20. self.weight=self.weight+1
  21. def show(self):
  22. print("I am a person")
  23. #类可以继承,子类拥有父类的属性和方法,并且可以重载父类方法(方法重写)
  24. #定义类时候父类跟在子类名称和后面,用括号括住
  25. #最顶层的父类是object
  26. class Student(Person):
  27. def __init__(self,name,age,weight,grade):
  28. print("student init...")
  29. #super 调用父类构造方法,先初始化父类
  30. super().__init__(name,age,weight)
  31. #构造父类后,再构造子类不一样的地方
  32. self.grade=grade
  33. #方法重载,重写父类的方法
  34. def eatting(self):
  35. print("i am eatting")
  36. self.weight=self.weight+2
  37. stu1=Student("tom",12,55,10)
  38. stu1.speak()
  39. stu1.eatting()
  40. stu1.speak()

六、模块

简单理解模块就是别人写好的python文件,我们直接拿来用!首先安装模块库,然后使用import关键字引入,最后方可调用模块

1、安装模块,即将别人写好的程序安装到本地,可以下载后手动安装,也可以使用pip工具直接安装,推荐使用pip工具

  1. #使用pip工具安装matplotlib库
  2. pip install matplotlib


2、引用模块

  1. import matplotlib


3、调用模块
调用的时候可用模块名.对象 调用模块中的对象,这个对象可以是方法或者变量

  1. x=[1,2,3]
  2. y=[1,4,9]
  3. matplotlib.plot(x,y)
  4. matplotlib.show()

可以使用as关键字指定别名,即给模块取一个别名,而不是直接使用模块的默认的名称,当模块名称很复杂,或者有同名模块时候,这个很实用

  1. #当给math模块取别名为m后,后面的调用都要用m来调用
  2. import math as m
  3. a=m.sqrt(101)


有时候我们想调用模块中的对象和调用python内置对象一样方便,不想使用模块名称或者模块名称别名,这个时候可以使用from+import关键字引入模块,被引入的对象可以直接调用

  1. from math import sqrt
  2. a=sqrt(101)

常用到的模块:
数学模块 math
随机模块 random