python基础小结

目录

  • 计算机基础之编程
  • 计算机组成
  • 计算机操作系统
  • 编程语言分类
  • 网络瓶颈效应
  • python文件执行的两种方式
  • 变量
  • 常量
  • 变量内存管理
  • 定义变量的三种特征
  • 花式赋值
  • 注释
  • 与用户交互
  • 格式化输出的三种方式
  • 基本运算符
  • 流程控制之if判断
  • 流程控制之while循环
  • 流程控制之for循环
  • 数字类型
  • 字符串
  • 列表
  • 字典
  • 元组
  • 集合
  • 布尔
  • 数据类型分类
  • 解压缩
  • 异常处理
  • 深浅拷贝
  • 字符编码
  • Pyhton2和3的编码的区别
  • 文件的打开方式
  • 文件的三种打开模式
  • with管理文件上下文
  • 文件的高级应用
  • 文件的两种修改方式
  • 函数的定义
  • 定义函数的三种方式
  • 函数的返回值
  • 函数的调用
  • 函数的参数
  • 可变长参数
  • 函数对象
  • 函数的嵌套
  • 名称空间和作用域
  • 闭包函数
  • 装饰器
  • 迭代器
  • 生成器
  • 三元表达式
  • 列表推导式
  • 字典生成式
  • 生成器表达式
  • 内置函数
  • 匿名函数
  • 递归
  • 面向过程编程
  • 模块的四种形式
  • import和from...import
  • 循环导入问题
  • 模块的搜索路径
  • 文件的两种用途
  • time模块
  • datetime模块
  • random模块
  • json模块
  • pickle模块
  • os模块
  • sys模块
  • hashlib模块
  • hmac模块
  • uuid模块
  • logging模块
  • numpy模块
  • pandas模块
  • matplotlib模块
  • re模块
  • typing模块
  • collections模块
  • shutil模块
  • xml模块
  • subprocess模块

计算机基础之编程

  1. 编程语言是人与计算机交流的介质
  2. 编程是通过编程语言编写一大堆文件
  3. 为什么要编程-->奴役计算机,让计算机帮我们干活

计算机组成

  1. CPU

    1. 控制器
    2. 运算器
  2. 内存
  3. 外存
  4. 输入设备
  5. 输出设备
  6. IO设备
  7. 32位和64位
  8. 多核CPU
  9. 应用程序的启动
  10. 机械硬盘工作原理
    1. 机械手臂
    2. 磁道
    3. 扇区
    4. 平均寻道时间
    5. 平均延迟时间
    6. 平均寻找数据时间
  11. 固态硬盘工作原理

计算机操作系统

  1. 什么是文件
  2. 什么是应用程序
  3. 操作系统的作用
  4. 操作系统的启动

编程语言分类

  1. 机器语言
  2. 汇编语言
  3. 高级语言
    1. 编译型
    2. 解释型

网络瓶颈效应

  1. 网络的延迟时间远远大于应用程序的执行时间

python文件执行的两种方式

  1. 交互式
  2. 命令行式(python test.py)

变量

  1. 变量-->描述世间万物变化的状态
  2. 变量的组成
  3. 变量名的命名规范
  4. 变量名的两种定义方式

常量

  1. 常量-->python中约定俗称不变的量,但实际上是可以改变的,常量名全大写

变量内存管理

  1. 引用计数
  2. 垃圾回收机制
  3. 小整数池

定义变量的三种特征

  1. 打印值
  2. 打印内存
  3. 打印数据类型
import numpy as np

arr = np.array([1, 2, 3])
arr
array([1, 2, 3])
type(arr)
numpy.ndarray

花式赋值

  1. 链式赋值
  2. 交叉赋值

注释

  1. 单行注释
  2. 多行注释

与用户交互

  1. input
  2. input接收的值全是字符串

格式化输出的三种方式

  1. %占位符
  2. format格式化
  3. f-string格式化

基本运算符

  1. 算术运算符
  2. 逻辑运算符
  3. 比较运算符
  4. 身份运算符
  5. 赋值运算符
  6. 成员运算符
  7. 运算符的优先级: 优先计算的加括号

流程控制之if判断

  1. 单分支结构
  2. 双分支结构
  3. 多分支结构
  4. if嵌套

流程控制之while循环

  1. while+break
  2. while+continue
  3. while+else
  4. while嵌套

流程控制之for循环

  1. for+break
  2. for+continue
  3. for+else
  4. for嵌套

数字类型

  1. 整型
  2. 浮点型

字符串

# 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分)
name = " aleX"
# 1)    移除 name 变量对应的值两边的空格,并输出处理结果
# 2)    判断 name 变量对应的值是否以 "al" 开头,并输出结果?
# 3)    判断 name 变量对应的值是否以 "X" 结尾,并输出结果?
# 4)    将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
# 5)    将 name 变量对应的值根据 “l” 分割,并输出结果。
# 6)    将 name 变量对应的值变大写,并输出结果?
# 7)    将 name 变量对应的值变小写,并输出结果?
# 8)    请输出 name 变量对应的值的第 2 个字符?
# 9)    请输出 name 变量对应的值的前 3 个字符?
# 10)    请输出 name 变量对应的值的后 2 个字符??
# 11)    请输出 name 变量对应的值中 “e” 所在索引位置??
# 12)    获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。

列表

有如下列表,请按照年龄排序(涉及到匿名函数)
l=[
    {'name':'alex','age':84},
    {'name':'oldboy','age':73},
    {'name':'egon','age':18},
]

字典

1 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中

即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

元组

九九乘法表

集合

一.关系运算
  有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
  pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
  linuxs={'wupeiqi','oldboy','gangdan'}
  1. 求出即报名python又报名linux课程的学员名字集合
  2. 求出所有报名的学生名字集合
  3. 求出只报名python课程的学员名字
  4. 求出没有同时这两门课程的学员名字集合

布尔

  1. 所有数据类型除了0/None/空/False之外都自带布尔值为True

数据类型分类

可变 不可变
列表/字典/集合 整型/浮点型/字符串/元组
有序 无序
字符串/列表/元组 字典/集合
一个值 多个值
整型/浮点型/字符串 列表/元组/字典/集合

解压缩

  1. 一次性获取多个容器元素

异常处理

try:
    1/0
except Exception as e:
    print(e)
finally:
    print('我一定会执行')
division by zero
我一定会执行
  1. assert 断言
  2. raise 主动抛错

深浅拷贝

  1. 拷贝
  2. 浅拷贝
  3. 深拷贝

字符编码

  1. 用什么编码存就用什么编码取

Pyhton2和3的编码的区别

文件的打开方式

  1. 打开文件 open
  2. 读取文件 read/write
  3. 关闭文件 close

文件的三种打开模式

  1. r
  2. w
  3. a
  4. t:文本
  5. b:二进制

with管理文件上下文

with open('test.py','r',encoding='utf8') as fr:
    ...

文件的高级应用

  1. r+
  2. a+
  3. w+
  4. seek # 移动指针,字节
  5. tell # 告诉指针位置,字节
  6. read(n) # 读取n个字符,只有read模式才是字符
  7. truncate() # 截断-->写模式,字节

文件的两种修改方式

with open('test.txt', 'r', encoding='utf8') as fr,    open('test_swap.txt', 'w', encoding='utf8') as fw:
    data = fr.read()
    # 逻辑操作
    fw.write(data)
import os
os.remove('test.txt')
os.rename('test_swap.txt', 'test.txt')

函数的定义

def 函数名(参数):
    代码块

定义函数的三种方式

  1. 有参函数
  2. 无参函数
  3. 空函数

函数的返回值

  1. return返回值,可以终止函数
  2. 返回多个值,以元组的形式返回
  3. 默认返回None

函数的调用

函数名()

函数的参数

  1. 形参

    1. 位置形参
    2. 默认形参
  2. 实参
    1. 位置实参
    2. 关键字实参

可变长参数

  1. *

    1. *形参
    2. *实参
  2. **
    1. **形参
    2. **实参

函数对象

  1. 引用对象
  2. 函数的返回值
  3. 函数的参数
  4. 容器类元素

函数的嵌套

def f1():
    def f2():
        pass

名称空间和作用域

  1. 内置名称空间
  2. 全局名称空间
  3. 局部名称空间

执行顺序: 内置-->全局-->局部

查找顺序: 从当前位置开始 --> 局部 --> 全局 --> 内置

  1. 全局作用域
  2. 局部作用域

全局作用域和局部作用域互不关联;局部作用域1和局部作用域2互不关联.

闭包函数

把变量x和函数f2包在一起,通过函数f1返回出来

def f1(x):
    def f2():
        print(x)

    return f2

f1(20)

x = 10

装饰器

def outter(func):
    def wrapper(*args, **kwargs):
        res = func(*args, **kwargs)
        return res
    return wrapper
def sanceng():
    def outter(func):
        def wrapper(*args, **kwargs):
            res = func(*args, **kwargs)
            return res
        return wrapper
    return outter

迭代器

  1. 可迭代对象
  2. 迭代器对象

生成器

  1. 含有yield关键字的函数, 函数调用已经不是调用,而是变成一个生成器
def func():
    yield 1

g = func()  # 生成器

for i in g:
    print(i)
1

三元表达式

print(1) if x > 10 else print(2)

列表推导式

[i for i in range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

字典生成式

{k: v for k, v in {'a': 1}.items()}
{'a': 1}
for i in zip([1, 2, 3], [1, 2, 3]):
    print(i)
(1, 1)
(2, 2)
(3, 3)

生成器表达式

(i for i in range(10))
<generator object <genexpr> at 0x00000222B9D67888>
for i in (i for i in range(10)):
    print(i)
0
1
2
3
4
5
6
7
8
9

内置函数

for i in enumerate([1, 2, 3]):
    print(i)
(0, 1)
(1, 2)
(2, 3)

匿名函数

def f(x, y): return x+y

f(1, 2)
3

匿名函数一般与map/filter/max/min/sorted联用

l = [
    {'name': 'alex', 'age': 84},
    {'name': 'oldboy', 'age': 73},
    {'name': 'egon', 'age': 18},
]

l.sort(key=lambda i: i['age'])
l
[{'name': 'egon', 'age': 18},
 {'name': 'oldboy', 'age': 73},
 {'name': 'alex', 'age': 84}]

递归

函数调用函数本身,会有一个结束条件

面向过程编程

流水线编程

模块的四种形式

  1. 自定义
  2. 内置
  3. 第三方

import和from...import

# test.py
import time
  1. 生成一个time的名称空间
  2. 运行time.py文件把生成的变量放入time模块
  3. 让test.py指向time这个名称空间
  4. 生成一个time的名称空间
  5. 运行time.py文件把生成的变量放入time模块
  6. from time import time让test.py指向time

循环导入问题

# m1.py
from m2 import y
x = 10

# m2.py
from m1 import x
y = 20
# m1.py
def f1():
    from m2 import y
x = 10

# m2.py
def f1();
    from m1 import x
y = 20

模块的搜索路径

  1. 内存-->内置-->自定制-->环境变量(sys.path)

文件的两种用途

  1. 执行文件
  2. 模块文件

  1. 一个模块里有多个函数,无法管理,所以分成多个文件存放函数,但是不能改变模块的导入方式
  2. 导包就是导init

time模块

  1. 打印三种不同格式的时间

datetime模块

  1. 修改时间

random模块

  1. 随机数+打乱列表顺序

json模块

  1. 序列化: 将python数据类型转化为json串
  2. 反序列化: 将json串转化为python数据类型

特性: 跨平台

pickle模块

  1. 只针对python,但是python的所有数据类型

os模块

  1. 与操作系统交互,多用于文件处理

sys模块

  1. 与python解释器交互

hashlib模块

  1. 加密成固定长度的字符串

hmac模块

  1. 相比较hashlib模块做了一个加盐处理

uuid模块

import uuid

print(uuid.uuid4())  # 做id(唯一标识)用的
2d465e1b-75c0-4a73-b61d-f731a5d56ca3

logging模块

  1. 日志记录

numpy模块

  1. numpy数组(矩阵)的科学运算

pandas模块

  1. 处理文件,多用于excel表格

matplotlib模块

  1. 画图

re模块

  1. 正则表达式,字符串内找特定的字符串

typing模块

  1. 获取一些数据类型,generator

collections模块

  1. 增加一些特殊的数据类型

shutil模块

  1. 文件的解压缩

xml模块

  1. 配置文件

subprocess模块

  1. 替代cmd输入命令

原文地址:https://www.cnblogs.com/1012zlb/p/11741193.html

时间: 2024-08-01 14:03:47

python基础小结的相关文章

Python基础教程(第九章 魔法方法、属性和迭代器)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5437223.html______ Created on Marlowes 在Python中,有的名称会在前面和后面都加上两个下划线,这种写法很特别.前面几章中已经出现过一些这样的名称(如__future__),这种拼写表示名字有特殊含义,所以绝不要在自己的程序中使用这样的名字.在Python中,由这些名字组成的集合所包含的方法称

Python学习笔记(一)python基础与函数

1.python基础 1.1输入与输出 输出 用print加上字符串,就可以打印指定的文字或数字 >>> print 'hello, world' hello, world >>> print 300 300 >>> print 100+200 300 print语句也可以跟上多个字符串,用逗号","隔开,就可以连成一串输出: >>> print 'The quick brown fox', 'jumps over

python基础——sorted()函数

python基础——sorted()函数 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来. Python内置的sorted()函数就可以对list进行排序: >>> sorted([36, 5, -12, 9, -21]) [-21, -12, 5, 9, 36] 此外,sorted()函数也是一个

Python基础教程【读书笔记】 - 2016/7/31

希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第十波:第10章  充电时刻 Python语言的核心非常强大,同时还提供了更多值得一试的工具.Python的标准安装包括一组模块,称为标准库standard library.展示这些模块的工作方式,讨论如何分析它们,学习它们所提供的功能. [10.1] 模块 已经知道如何创建和执行自己的程序,也学会了怎么用import从外部模块获取函数并且为自己的程序使用.接下来看看怎么编写自己的模块. [10.1.1] 模块是程序

Python基础教程【读书笔记】 - 2016/7/19

希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第八波:第4章  字典:当索引不好用时 将学到一种通过名字引用值的数据结构,这种结构类型称为映射mapping.字典是Python内唯一内建的映射类型.字典中的值并没有特殊的顺序,都是存储在一个特定的键key里.键可以使 数字.字符串甚至是元组. [4.1] 字典的使用 字典有时比列表更加使用. [4.2] 创建和使用字典 字典由多个键及其对应的值构成的对组成(也把键/值对称为项).每个键和它的值之间用冒号隔开,项之

Python基础教程(第十章 自带电池)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5459376.html______ Created on Marlowes 现在已经介绍了Python语言的大部分基础知识.Python语言的核心非常强大,同时还提供了更多值得一试的工具.Python的标准安装中还包括一组模块,称为标准库(standard library).之前已经介绍了一些模块(例如math和cmath,其中包

Python基础教程【读书笔记】 - 2016/7/4

希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第二波:第7章  更加抽象 [总览] 创建自己的对象,是Python的核心概念!Python被称为面向对象的语言.介绍如何创建对象,以及多态.封装.方法.特性.超类以及继承的概念. [7.1] 对象的魔力 面向对象程序设计中的术语对象(object)基本上可以看做数据(特性)以及由一系列可以存取.操作这些数据的方法所组成的集合.对象最重要的优点包括以下几方面: 多态polymorphism:意味着可以对不同类的对象使

Python基础教程(第六章 抽象)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5351415.html______ Created on Xu Hoo 本章将会介绍如何将语句组织成函数,这样,你可以告诉计算机如何做事,并且只需要告诉一次.有了函数以后,就不必反反复复像计算机传递同样的具体指令了.本章还会详细介绍参数(parameter)和作用域(scope)的概念,以及地柜的概念及其在程序中的用途. 6.1

Python基础教程【读书笔记】 - 2016/7/7

希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第三波:第5章   [总览] 条件.循环和其他语句 深入介绍条件语句和循环语句,随后会看到列表推导式如何扮演循环和条件语句的角色,最后介绍pass.del和exec语句的用法. [5.1] print和import的更多信息 首先来看看print和import的几个比较好的特性. 对于跟多应用程序来说,使用logging模块日志比print语句更合适. [5.1.1] 使用逗号输出 打印多个表达式也是可行的,只要将它