python排序、模块

早上

内容回顾

Python环境安装和搭建

变量和常量

数据类型和类型转换

常见的运算符

程序控制流程

容器篇

函数篇

递归

字符串对象

切片操作

排序

今日目标

  1. 排序常见算法【三种基本排序】
  2. 二分查找
  3. 模块篇
  4. IO流

数据排序

   1,3,2,4,25,6,13,16,17,9,7

  • 1, 2, 3,4,6,13,16,17,9,7,25
  • 1,2,3,4,6,13,16,17,9,7,25
  • 1,2,3,4,6,13,9,7,16,17,25
  • 1.2,3,4,6,9,7,13,16,17,25
  • 1,2,3,4,6,7,9,13,16,17,25

选择排序

 4,25,6,13,-1,33,2,16

  • -1,25,6,13,4,33,2,16
  • -1,2,5,13,4,33,25,16
  • -1,2,4,13,5,33,25,16
  • -1,2,4,5,13,33,25,16
  • -1,2,4,5,13,16,25,33

**算法稳定性:**选择排序是一种算法不稳定的排序方式;冒泡排序是一种算法稳定的排序方法;

算法时间复杂度:算法占用的时间O(N^2)

算法空间复杂度:算法占用的空间O(1)

插入排序

   4,25,6,13,-1

  • 4,25,6,13,-1
  • 4,6,25,13,-1
  • 4,6,13,25,-1
  • -1,4,6,13,25

数据查找

二分查找

   二分查找,必须针对有序序列进行查找,原理:每次查找中间值,之后比较中间值和需要查找的值,从而确定需要查找的范围(当然也可能直接找到)。

下午

内容回顾

  1. 三种基础排序方式

                     冒泡 插入  选择

  1. 二分查找

常规的循序实现

递归实现

              Python的模块篇

             什么叫做python的模块和包

                 模块(module):也有人喜欢叫做库(lib)。xxx.py就是一个模块!

                   注意:模块名称也是一种标识符,所以当遵循标识符的命名规范

1.标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。

2.标识符不能和 Python 中的保留字相同。有关保留字,后续章节会详细介绍。

  1. Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符
  2. Python 语言中,以下划线开头的标识符有特殊含义,例如:
  3. 以单下划线开头的标识符(如 _width),表示不能直接访问的类属性,其无法通过 from...import* 的方式导入;
  4. 以双下划线开头的标识符(如__add)表示类的私有成员;
  5. 以双下划线作为开头和结尾的标识符(如 __init__),是专用标识符。

包(package):指的是一种特殊的文件夹,用来保存和分类管理模块。

注意:普通文件夹可以当做包来使用,但python中标准的包是文件夹中存在一个_init_.py【初始化文件】

如何导包、导入模块

   导包、导模块:就是将已将写好的代码模块或者包导入到当前需要写的模块中,使用导入的相关变量、方法、函数、类……等

import model_name

import package_name

import model_name/package_name as alias

import package_name.package_name

import package_name.package_name....package_name

import package_name.package_name....package_name as alias

python3推荐使用一种新的方式,将要使用的子模块或方法名称……分离导入关键字from。表示从什么模块或者包中导入子对象。

from package_name.package_name....package_name import 所需的对象

from os import path

from random importt randint

from sort_find import arr

from . import sort_find as sf

builtins全局函数

import builtins as b

dir(b)

['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BaseExceptionGroup', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EncodingWarning', 'EnvironmentError', 'Exception', 'ExceptionGroup', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'aiter', 'all', 'anext', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']

官方提供的内置模块

random

math

os

os.path

sys

uuid

builtins

datetime

time

calendar

hashlib

hmac

……

随机数模块

# 导入模块

import random

# 查看帮助文档

print(help(random))

# 查看该模块下的所有方法和函数等

dir(random)

random()

randint(a, b)

choice(iterable)

choices(iterable)

randrange(a, b)

shuffle(iterable)

uniform(a, b)

数学模块

提供大量跟数学相关的三角函数、常量、一些特殊对象等,提供大量功能代码,在开发运算中使用。

系统模块

os模块,该模块主要用来做操作的文件管理相关操作。

path模块

os.path模块

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值