轻松入门 Python(八):库的基本概念与时间库、随机库详解(上篇)

目录

一、标准库

1.1 Python 自带的标准库

1.2 导入标准库的方法

1.直接导入整个模块:

2.导入模块中的特定函数:

3.为模块指定别名:

4.导入所有函数(不推荐):

二、时间库 (time)

2.1 时间戳:time()

2.2 获取时间的三个函数:localtime()、gmtime()、ctime()

2.2.1 time.localtime([seconds])

2.2.2 time.gmtime([seconds])

2.2.3 time.ctime([seconds])

2.3 时间的格式转换:mktime()、strftime()、strptime()

2.3.1 time.mktime(t)

2.3.2 time.strftime(format, t=None])

2.3.3 time.strptime(string, format)

2.4 时间休眠函数:sleep(seconds)

三、随机库 (random)

3.1 随机生成数值

3.1.1 random.uniform(a, b)

3.1.2 random.random()

3.1.3 random.randint(a, b)

3.1.4 random.randrange(start, stop[, step])

3.2 随机选择函数

3.2.1 random.choice(sequence)

3.2.2 random.shuffle(sequence)

3.2.3 random.sample(sequence, k)

3.3 随机种子:random.seed([a])

3.3.1 示例1:

3.3.2 综合示例2:


Python 作为一门功能强大且易于上手的编程语言,其丰富的库是开发者高效编程的利器。本篇博客将带你深入了解 Python 的标准库、时间库 (time) 和随机库 (random) 的基础知识和核心函数用法,特别适合初学者。本文将详细讲解每个函数的用法、参数和实际应用场景,让你轻松掌握这些常用工具!

一、标准库


1.1 Python 自带的标准库


Python 标准库是 Python 安装时自带的模块集合,无需额外安装即可使用。这些库提供了丰富的功能,覆盖文件操作、数学计算、时间处理、随机数生成、网络通信等多个领域。以下是一些常见的标准库及其功能:

1.os: 提供与操作系统交互的功能,如文件路径操作、目录管理等。
2.sys: 提供与 Python 解释器相关的功能,如命令行参数、解释器版本等。
3.time: 处理时间相关操作,如获取当前时间、时间格式化、休眠等。
4.random: 生成随机数、随机选择等功能。
5.math: 提供数学运算功能,如三角函数、幂运算等。
6.datetime: 处理日期和时间的高级操作。
7.json: 处理 JSON 数据的编码和解码。

标准库的优势在于跨平台兼容性和稳定性,适合快速开发和原型设计。


1.2 导入标准库的方法


Python 的标准库使用 import 关键字导入。以下是常见的导入方式:

1.直接导入整个模块:

import time
   print(time.time())  # 获取当前时间戳


2.导入模块中的特定函数:

  from time import time, sleep
   print(time())  # 直接调用 time 函数
   sleep(1)       # 休眠 1 秒


3.为模块指定别名:

   import random as rd
   print(rd.randint(1, 10))  # 生成 1 到 10 的随机整数


4.导入所有函数(不推荐):

   from random import *
   print(randint(1, 10))  # 不推荐,可能导致命名冲突

注意事项:

1.使用 import * 可能导致命名冲突和内存溢出,建议明确导入所需函数。
2.标准库无需安装,直接导入即可,但某些功能可能依赖系统环境(如 os 的某些功能在 Windows 和 Linux 上表现不同)。


二、时间库 (time)


Python 的 time 模块提供了处理时间相关的功能,包括获取时间、格式化时间、休眠等。以下详细介绍 time 模块的核心函数。


2.1 时间戳:time()


time.time() 函数返回当前时间的 时间戳,即从 1970 年 1 月 1 日 00:00:00 (UTC) 到现在的秒数(浮点数形式)。

用法:time.time()
返回值:浮点数,表示时间戳。
应用场景:测量程序运行时间、记录事件发生时间等。

示例:
 

import time

start_time = time.time()
print(f"当前时间戳: {start_time}")

# 模拟一段代码运行
time.sleep(2)  # 休眠 2 秒
end_time = time.time()
print(f"程序运行时间: {end_time - start_time:.2f} 秒")

输出(示例):

当前时间戳: 1758772800.123456
程序运行时间: 2.00 秒

2.2 获取时间的三个函数:localtime()、gmtime()、ctime()


2.2.1 time.localtime([seconds])


返回指定时间戳的本地时间(以结构体形式返回)。如果不提供参数,则使用当前时间。

参数:
seconds:可选,时间戳(浮点数)。默认使用 time.time() 的值。
返回值:time.struct_time 对象(python内置属性),包含年、月、日、时、分、秒等信息。
包含属性:
(tm_year:年(如 2025)
tm_mon:月(1-12)
tm_mday:日(1-31)
tm_hour:时(0-23)
tm_min:分(0-59)
tm_sec:秒(0-59)
tm_wday:星期(0-6,0 表示周一)
tm_yday:一年中的第几天(1-366)
tm_isdst:是否夏令时(0 或 1))

示例:

import time

local_time = time.localtime()
print(f"本地时间: {local_time}")
print(f"年: {local_time.tm_year}, 月: {local_time.tm_mon}, 日: {local_time.tm_mday}")

输出(示例):

本地时间: time.struct_time(tm_year=2025, tm_mon=7, tm_mday=23, tm_hour=5, tm_min=6, tm_sec=0, tm_wday=2, tm_yday=204, tm_isdst=0)
年: 2025, 月: 7, 日: 23

2.2.2 time.gmtime([seconds])


返回指定时间戳的 UTC 时间(世界协调时间),格式与 localtime() 相同。

参数:同 localtime(),可选,时间戳(浮点数),默认使用 time.time() 的值
返回值:time.struct_time 对象,表示 UTC 时间。
应用场景:需要跨时区处理时间时使用。

示例:


import time

utc_time = time.gmtime()
print(f"UTC 时间: {utc_time}")

输出(示例):

UTC 时间: time.struct_time(tm_year=2025, tm_mon=7, tm_mday=22, tm_hour=21, tm_min=6, tm_sec=0, tm_wday=1, tm_yday=203, tm_isdst=0)

2.2.3 time.ctime([seconds])


将时间戳转换为易读的本地时间字符串。

参数:可选,时间戳(浮点数)。默认使用 time.time()。
返回值:字符串,如 "Wed Jul 23 05:06:00 2025"。
应用场景:快速显示可读时间。

示例:

import time

current_time = time.ctime()
print(f"当前时间: {current_time}")

输出(示例):

当前时间: Wed Jul 23 05:06:00 2025

2.3 时间的格式转换:mktime()、strftime()、strptime()


2.3.1 time.mktime(t)


作用:将 time.struct_time 对象转换为时间戳。

参数:
t:time.struct_time 对象,通常由 localtime() 生成。
返回值:浮点数时间戳。
应用场景:将结构化时间转换为时间戳以进行计算。

示例:

import time

local_time = time.localtime()
timestamp = time.mktime(local_time)
print(f"时间戳: {timestamp}")

输出(示例):

时间戳: 1758772800.0

2.3.2 time.strftime(format, t=None])


将 time.struct_time 对象格式化为指定格式的字符串。

参数:
format:格式化字符串,使用时间格式化指令(如 %Y 表示年,%m 表示月)。
t:可选,time.struct_time 对象,默认使用 localtime()。
返回值:格式化后的字符串。

常用格式化指令:
%Y:四位年份(如 2025)
%m:两位月份(01-12)
%d:两位日期(01-31)
%H:两位小时(00-23)
%M:两位分钟(00-59)
%S:两位秒(00-59)
%a:简写星期(如 Wed)
%b:简写月份(如 Jul)

示例:

import time

formatted_time = time.strftime("%Y-%m-%d %H:%M:%S")
print(f"格式化时间: {formatted_time}")

输出(示例):

格式化时间: 2025-07-23 05:06:00

2.3.3 time.strptime(string, format)


将时间字符串解析为 time.struct_time 对象。

参数:
string:时间字符串。
format:字符串的格式,与 strftime() 的格式化指令一致。
返回值:time.struct_time 对象。
应用场景:将用户输入的时间字符串转换为结构化时间。

示例:

import time
time_str = "2025-07-23 05:06:00"
parsed_time = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
print(f"解析结果: {parsed_time}")

输出(示例):

解析结果: time.struct_time(tm_year=2025, tm_mon=7, tm_mday=23, tm_hour=5, tm_min=6, tm_sec=0, tm_wday=2, tm_yday=204, tm_isdst=-1)

2.4 时间休眠函数:sleep(seconds)


time.sleep(seconds) 暂停程序执行指定的秒数。

参数:
seconds:浮点数或整数,表示休眠时间(秒)。
返回值:无。
应用场景:模拟延迟、控制程序执行节奏。

示例:

import time

print("开始")
time.sleep(2)  # 休眠 2 秒
print("2 秒后")

输出(示例):

开始
2 秒后


三、随机库 (random)


Python 的 random 模块提供了生成伪随机数的功能,广泛应用于游戏、模拟、测试等领域。以下详细介绍其核心函数。


3.1 随机生成数值


3.1.1 random.uniform(a, b)


生成 [a, b] 范围内的随机浮点数(包含 a,不一定包含 b)。

参数:
a:范围下界。
b:范围上界。
返回值:浮点数,a <= x <= b。

示例:


import random

num = random.uniform(1.5, 5.5)
print(f"随机浮点数: {num}")

输出(示例):


随机浮点数: 3.728194562

3.1.2 random.random()


生成 [0.0, 1.0) 范围内的随机浮点数。

参数:无。
返回值:浮点数,0.0 到 1.0之间的小数。

示例:
 

import random

num = random.random()
print(f"随机浮点数: {num}")

输出(示例):


随机浮点数: 0.6728194562

3.1.3 random.randint(a, b)


生成 [a, b] 范围内的随机整数(包含 a 和 b)。

参数:
a:整数下界。
b:整数上界。
返回值:整数,a <= x <= b。

示例:

import random

num = random.randint(1, 10)
print(f"随机整数: {num}")

输出(示例):


随机整数: 7

3.1.4 random.randrange(start, stop[, step])


生成 [start, stop) 范围内的随机整数,步长为 step(默认为 1)。

参数:
start:起始值(包含)。
stop:结束值(不包含)。
step:步长(可选)。
返回值:整数。

示例:

import random

num = random.randrange(0, 10, 2)  # 生成 0, 2, 4, 6, 8 中的随机数
print(f"随机偶数: {num}")

输出(示例):

随机偶数: 4

3.2 随机选择函数


3.2.1 random.choice(sequence)


从非空序列中随机选择一个元素。

参数:sequence:列表、元组、字符串等非空序列。
返回值:序列中的一个元素。

示例:

import random

items = ['苹果', '香蕉', '橙子']
choice = random.choice(items)
print(f"随机选择: {choice}")

输出(示例):

随机选择: 香蕉

3.2.2 random.shuffle(sequence)

将序列中的元素随机打乱(原地修改)。

参数:sequence:可变序列(如列表)。
返回值:无,直接修改原序列。

示例:

import random

items = [1, 2, 3, 4, 5]
random.shuffle(items)
print(f"打乱后: {items}")

输出(示例):

打乱后: [3, 1, 5, 2, 4]

3.2.3 random.sample(sequence, k)


从序列中随机选择 k 个不重复的元素。

参数:
sequence:序列(如列表、元组、字符串)。
k:选择元素的个数(不得超过序列长度)。
返回值:包含 k 个元素的列表。

示例:

import random

items = ['A', 'B', 'C', 'D']
selected = random.sample(items, 2)
print(f"随机选择 2 个: {selected}")

输出(示例):

随机选择 2 个: ['B', 'D']

3.3 随机种子:random.seed([a])


random.seed(a) 设置随机数生成器的种子,用于生成可重复的随机序列。相同的种子会产生相同的随机数序列。同一台计算机(准确说是服务器)设置的同一个种子返回的结果值是一样的,所以线上福彩系统的服务器多为虚拟的。

参数:a:可选,整数、浮点数或其他可哈希对象。默认使用系统时间。
返回值:无。
应用场景:调试或需要可重复随机数的场景(如线上抽奖或者福彩)。

3.3.1 示例1:

import random

random.seed(42)  # 设置种子
print(random.randint(1, 10))  # 输出固定随机数换行
random.seed(42)  # 再次设置相同种子
print(random.randint(1, 10))  # 输出相同随机数

输出:

7
7

3.3.2 综合示例2:

import random 
ls=['一等奖','二等奖','三等奖','谢谢惠顾']

i=0
ls1=[]
while i<15:
    ls1.append(random.choice(ls))
    i=i+1
print(ls1)


i=0
ls2=[]
random.seed('张三')
while i<15:
    ls2.append(random.choice(ls))
    i=i+1
print(ls2)

i=0
ls3=[]
random.seed('王五')
while i<15:
    ls3.append(random.choice(ls))
    i=i+1
print(ls3)

输出结果:

['一等奖', '三等奖', '二等奖', '二等奖', '三等奖', '二等奖', '谢谢惠顾', '二等奖', '二等奖', '谢谢惠顾', '三等奖', '一等奖', '谢谢惠顾', '一等奖', '三等奖']
['二等奖', '二等奖', '二等奖', '二等奖', '二等奖', '二等奖', '二等奖', '二等奖', '二等奖', '二等奖', '二等奖', '二等奖', '二等奖', '二等奖', '二等奖']
['谢谢惠顾', '谢谢惠顾', '谢谢惠顾', '谢谢惠顾', '谢谢惠顾', '谢谢惠顾', '谢谢惠顾', '谢谢惠顾', '谢谢惠顾', '谢谢惠顾', '谢谢惠顾', '谢谢惠顾', '谢谢惠顾', '谢谢惠顾', '谢谢惠顾']

小伙伴们可以自己在自己的电脑上运行一下,看看你的电脑上张三和王五拿了几等奖,是否符合预期呢,哈哈,其实seed没什么神秘的,底层就是通过一种比较复杂的算法,你输入一个数据(整数、浮点数或其他可哈希对象)通过特定的算法计算得到一个固定的值,你输入的值相同,自然得到的结果就相同啦,其实开头为什么叫随机值叫它伪随机值,就是因为其实他也是经过计算得来的(例如用时间戳计算),不是绝对意义上的'随机',这个涉及到数学和算法了,感兴趣的同学可以去深入研究一下

四、总结与展望
本篇介绍了 Python 标准库的基本概念,以及 time 和 random 两个常用标准库的核心功能。通过 time 模块,你可以轻松处理时间戳、格式化时间、休眠等操作;通过 random 模块,你可以生成随机数、随机选择元素或打乱序列。这些功能是 Python 编程的基础,广泛应用于数据分析、游戏开发、测试等领域。
在下篇中,我们将深入探讨正则表达式库正则表达式以及第三方库的安装和使用,敬请期待!如果你有任何问题或想了解更多,欢迎在评论区留言!

你可能感兴趣的:(python,开发语言,机器学习,人工智能,数据挖掘,深度学习,神经网络)