Python基础

98 阅读11分钟

第一章:学习准备

文本和字符集

文本分类

纯文本:只能保存文本内容,无法保存无关东西

富文本:可以保存文本以外的内容

解码,编码与字符集

  • 编码:将字符转换为二进制的过程
  • 解码:将二进制转换为字符的过程
  • 字符集:编码和解码时所采用的规则

常见字符集

  1. ASCII:美国人编码,使用7位,对美国人常用的字符进行编码,包含128个字符
  2. ISO-8599-1:欧洲的编码,使用8位,包含256个字符
  3. GB2312、GBK 国标码,中国的编码
  4. Unicode:万国码,包含世界上所有语言和符号,编码程序时一般都会使用Unicode编码 Unicode 编码有多种实现,UTF-8,UTF-16,UTF-32,常用的是UTF-8

乱码

编程时发现乱码,需要检查字符集是否正确


第二章:Python 简介及环境搭建

1.计算机语言的发展

  1. 机器语言
  2. 符号语言(汇编)
  3. 高级语言

2.编译型语言和解释型语言

编译型语言

编译型语言,会再代码执行前将代码编译为机器码,然后将机器码交由计算机执行(比如:C语言)

a(源码) -- 编译 -- b(编译后的机器码)

特点:执行速度快,跨平台性能较差

解释型语言

解释型语言,不会再执行前对代码编译,而是再执行的同时一边执行一边编译(例如:python js java)

a(源码)-- 解释器-- 解释执行

特点:执行速度比较慢,跨平台性比较好

3.python 简介

Python 的用途

  1. WEB网站应用(如Facebook,豆瓣等)
  2. 编写爬虫程序
  3. 科学计算
  4. 自动化运维(用Python 编写自动化运维脚本)
  5. 大数据应用(利用Python 对数据进行清洗,提取有用的数据,并分析数据)
  6. 云计算
  7. 开发桌面软件,游戏
  8. 人工智能

4.Python 环境搭建

一、Python 的解释器分类:

  1. CPython :用C语言编写的Python 解释器(官方解释器)
  2. PyPy: 用Python 语言编写的Python 解释器
  3. IronPython :用 .net 编写的Python 解释器
  4. Jython:用 Java 编写的Python 解释器

二、搭建CPython开发环境


第三章 语法入门

1.几个基本概念

一、表达式

  1. 类似于一个数学公式
  2. 用于计算,不会对程序产生影响
  3. 在交互模式中输入表达式,会自动输出结果

二、语句

  1. 用于完成某种功能(如:打印信息,获取信息,为变量赋值)
  2. 语句执行会对程序产生影响
  3. 交互模式中不一定输出执行结果

三、程序(program)

  1. 由语句和表达式构成

四、函数(function)

  1. 完成特定的功能的语句

  2. 格式一般是:xxx()

  3. 函数分类

    1. 内置函数
    2. 自定义函数
  4. 函数的2个要素

    1. 参数
    2. 返回值

2.python的基本语法

  1. 严格区分大小写
  2. 每行就是一条语句,以换行结束
  3. 一行不要超过80个字符
  4. 一条语句分多行以 \结尾
  5. 是缩进严格的语言
  6. 用 # 进行注释

3.字面量和变量

一、字面量

  1. 一个一个值,例:1,2,3,4,5,“hello”

二、变量

  1. 变量(variable),可以用来保存字面量,并且变量中保存的字面量是不定的变量,本身没有任何意思,他会根据不同字面量表示不同的意思

4.变量和标识符

一、变量

  1. Python 变量不需要声明,直接为变量赋值即可
  2. 不能使用未赋值的变量

二、标识符

  1. 再Python 中所有可以自主命名的内容都属于标识符,例:变量名,函数名,类名

  2. 标识符规范

    1. 可以含有字符,数字,下划线,但是不能以数字开头
    2. 不能是Python 中的 关键字和保留字
  3. 命名规范(2种)

    1. 下滑线命名法,所有字母小写,单词之间用_分割
    2. 驼峰命名法,首字母大写,每个单词开头字母大写,其余字母小写

第四章:数据类型

数据类型:变量值得类型

1.数值

数值类型

  • 整数 int
  • 浮点数(小数)float
  • 复数

2.字符串

  1. 基本规则:用 单引号 ,双引号,三引号

格式化字符串

 # 在字符串中指定占位符
 b='hello %s'%'孙悟空'
 # 格式化字符串
 name='孙悟空'
 print(f'hello{name}')

复制字符串

 a='abc'
 a=a*19
 print(a)

3 布尔值和控制

一、布尔值(boolean/bool)

  1. 主要用于判断逻辑:true 为真,false 为假
  2. 布尔值属于整型,true相当于1 ,false相当于0

二、空值(None)介绍

4.类型检查

一、如何进行类型检查

type() 内置函数

5.对象介绍

对象(object)的介绍

  1. 引入:Python 是一门面向对象语言,程序运行当中所有的数据都存储到内存当中运行
  2. CPU负责计算,代码存到硬盘,解释器是将代码从硬盘加载到内存中再有内存传输到CPU进行执行
  3. 对象实际是一个容器,之前学的数值,字符串,布尔值,空值都属于对象

对象的结构

每个对象中都要保存三种数据:id,type,value

一、id(标识):

  • id用来区分标识对象的唯一性,每个对象都有唯一的id
  • 通过id() 函数查看对象的id
  • id 是由解析器生成的,再Cpython 中 ,id 即为对象的内存地址
  • 对象一但创建,id永远不能改变

二、type(类型):

  • type 类型标识当前对象所属的类型(如:int,str,bool,None)
  • 类型的作用:类型决定了对象的功能呢
  • 通过type() 查看类型
  • Python 是一门强类型语言,对象一但创建,类型不能修改

三、value(值)

  1. value 值是对象中存储的具体数据

  2. 有些对象值可以改变:

    1. 可变对象
    2. 不可变对象,学过的数值,字符串,布尔值,空值都是不可变对象

6.类型转换

将一个类型的对象转换为其他对象类型,转换不是改变对象本身类型,而是根据当前对象的值创造一个新对象

一、类型转换的四个函数:

int()

  1. bool :True--> 1 False --> 0
  2. 浮点型:直接取整,省略掉小数点后的内容
  3. 字符串:合法的整数字符串,直接转换为对应的数字,如果不是合法的整数字符串,则报错

float()

  1. 和int() 一致

str()

bool()

  1. 任何对象都可以转换为bool值
  2. 规则:对于所有表示空性质的对象都会转换为False,其余的转换为True
  3. 哪些表示空性:0,None,‘’。。。

第四章:运算符(操作符)

  • 运算符可以对一个值或多个值进行运算或各种操作

  • 不如+-= 都属于运算符

  • 运算符的分类:

    • 算数运算符
    • 赋值运算符
    • 比较运算符(关系运算符)
    • 逻辑运算符
    • 条件运算符

算数运算符详细介绍:

  1. +加法运算符
  2. -减法运算符
  3. /除法运算符
  4. //整除
  5. **幂运算
  6. %取模:两个数相乘的玉树

赋值运算符

可已将等号右侧的值赋值给等号左侧的变量

关系运算符

用来比较两个值之间的关系,总会返回一个布尔值,如果关系成立返回True 否者返回False

常见关系运算符

大于> ,小于< ,大于等于> = ,小于等于<=

字符串比较

  1. 当对字符串进行比较时,实际上比较的是字符串的Unicode编码
  2. 如果不希望比较两个字符串的Unicode编码,则需要将其转换成数字然后进行比较
  3. 比较两个字符串的Unicode编码时逐位比较的

逻辑运算符

一、运用

主要用来做一些逻辑判断

例如:若今天下雨就不出门,反之,则出门

二、not逻辑非

  • not 可以对符号右侧的值进行非运算
  • 对于布尔值,非运算会对其进行取反操作,True变False,False 变True
  • 对于非布尔值,非运算会先将其转换成布尔值,然后再取反
 a=True
 a=not a # 既对a进行非运算
 print('a=',a) 
 # 则 a=False

三、and逻辑与

  • and 可以对符号两边的值进行与运算
  • 只有对符号两侧的值都为True时,才会返回True ,只要有一个False就返回False
 result=True and True # True 
 result=True and False # False
 result=False and True # False
 result=False and False # False 

四、or逻辑或

  • or可以对符号两侧的值进行或运算
  • 或运算两个值中只要有一个True,就会返回True
 result=True or True # True 
 result=True or False # True
 result=False or True # True
 result=False or False # False 

非布尔值的逻辑运算符

当对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值

一、与运算规则

  • 与运算是找False ,第一个值是False ,则不看第二个值
  • 如果第一个值是False,则直接返回第一个值,否则返回第二个值
 result=1 and 2 # 2 
 result = 1 and 0 # 0 
 result = 0 and 1 # 0 
 reuslt= 0 and None # 0 

二、或运算规则

  • 或运算是找True ,如果第一个值是True ,则不看第二个值
  • 如果第一个值是True,则直接返回第一个值,否者返回第二个值
 # True or True 
 result=1 or 2 # 1 
 # True or False
 result=1 or 0 # 1 
 # False or True 
 result=0 or 1 # 1 
 # False or False 
 result =0 or None # None 

条件运算符(三元运算符)

一、语句

语法:语法1 if 条件表达式 else 语句2

二、执行流程

  • 条件运算符再执行时,会先对条件表达式进行值判断

    • 如果判断结果是True ,则会执行语句1,并返回结果
    • 如果判断结果为False,则会执行语句2,并返回结果
 a=10 
 b=20
 print('a的值比较大!') if a>b else print('b的值比较大!')

运算符优先级

  • 指针最优,单目运算符由于双目运算符
  • 先算数运算,后移位运算,最后位运算
  • 开发过程中遇到优先级不清楚的请况,可以通过小括号来改变运算顺序

第五章:流程控制语句

if语句

一、流程控制语句简介

  1. Python代码再执行时是按照自上向下顺序执行的

  2. 通过流程控制语句,可以改变程序的执行顺序,也可以让指定的程序反复执行多次

  3. 流程控制语句分成2大类:

    1. 条件判断语句
    2. 循环语句

input() 函数

  1. 该函数用来获取用户的输入
  2. input() 返回值是一个字符串
  3. input() 可以设置一个字符串作为参数,这个字符串将会作为提示文字显示,如input('请输入任意内容:')

if-else 语句

  1. if-else 语句在执行时,先对if后的条件表达式进行求值判断,如果为True则执行if后的代码,如果为False ,则执行else 后的代码

if-elif-else 语句

一、执行流程

  1. if-elif-else 语句在执行时,会自上向下一次对条件表达式进行求值判断,如果表达式的结果是True,则执行当前代码块,然后结束语句,如果表达式结果为False,则继续向下判断,直到找到True 为止,如果所有表达式都是False ,则执行else后的代码块
  2. if-elif-else 中只会有一个代码块会执行

While 和 for 循环语句

循环语句:使指定代码重复指定的次数

一、While 循环语句

语法

 while 条件表达式
     代码块
 else:
    代码块
 ​

执行流程

  • while 语句在执行时,会先对while 后的条件表达式进行求值判断,如果判断结果为True ,则执行循环体,循环体执行完毕,继续对条件表达式进行求值判断,以此类推,直到判断结果为False,则循环终止,如果循环有对应的else,则执行else后的代码块

死循环

  • 条件表达式恒为True 的循环语句,称为死循环,他回一直运行,慎用!

循环的三个要件(表达式)

  1. 初始化表达式,通过初始化表达式初始化一个变量
  2. 条件表达式,条件表达式用来设置循坏执行的条件
  3. 更新表达式,修改初始化变量的值
 # 求 1000 以内的水仙花数
 # 水仙花数是指n位数(n>=3),他的每个位数字的n次幂之和等于他本身
 i=100
 while i<1000:
     a=i//100
     b=i//10%10 
     c=i%10
     if(a**3+b**3+c**3)==i:
         print(i)
     i+=1
 else:
     pass 

break 和 continue

一、break

作用:break 可以用来立即退出循环语句(包括else)

执行的到的只有break之前的语句,即break只有的命令自动结束

二、continue

作用:可以跳过档次循环

breakcontinue 都只对离他们最近的循环起作用

三、pass

作用: 用来判断或循环语句中占位