一.sys库

Python的内置库之一的sys模块主要用于与Python解释器进行交互,提供对解释器使用或维护的一些变量以及与解释器强烈交互的函数

它在脚本中常用于获取系统信息,获取程序行为,处理命令行参数等等

sys.stdin.read()用于从标准输入(stdin)一次性读取全部内容直到文件结束(EOF)的方法,它返回一个字符串,包含从当前输入位置到EOF之间的所有字符

📌 基本作用

  • 读取完整输入流:适用于需要一次性获取全部输入的场景(如处理 JSON、XML、多行文本、配置数据等)。
  • 阻塞等待输入:在交互式终端中,程序会一直等待用户输入,直到用户发送 EOF 信号(Ctrl+D 在 Linux/macOS,Ctrl+Z + Enter 在 Windows)。

二.内置函数

1.sort()

列表的一个原地排序的方法,会直接修改原列表,返回None

基本语法:

list.sort(key=None,reverse=False)

参数说明:

  • key(可选):一个函数,用于从每个元素中提取比较键。常用于自定义比较逻辑。
  • reverse(可选):布尔值。为True则按降序排序;为False按升序排序。
fruits = ['pear', 'banana', 'apple', 'watermelon', 'cherry', 'orange']
#fruits.sort(key=lambda x: len(x))
fruits.sort(key=len) # 按字符串长度默认升序排序
print(fruits) #['pear', 'apple', 'banana', 'cherry', 'orange', 'watermelon']

students = [
   { 'name':'Alice', 'age':23},
   {'name':'Bob', 'age':20},
   {'name':'Charile','age':21}
]
students.sort(key=lambda x:x['age'], reverse=True) # 按年龄降序排序
print(students) # [{'name': 'Alice', 'age': 23}, {'name': 'Charile', 'age': 21}, {'name': 'Bob', 'age': 20}]

2.sorted()

用于对任何可迭代对象(列表、元组、字符串、字典等进行排序),并返回一个新的已排序的列表,不会修改原始对象。

基本语法:

sorted(iterable, key=None,  reverse=False)

参数说明:

  • iterable:要排序的可迭代对象
  • key(可选):一个函数,用于从每个元素中提取比较键(常用于自定义排序)
  • reverse:为True降序排序,为False升序排序
nums = [4,3,1,6,-4,7,2]
print(sorted(nums))
print(nums)
##输出
##[-4, 1, 2, 3, 4, 6, 7]
##[4, 3, 1, 6, -4, 7, 2]
# 对字典排序(默认对键排序)
d = {'b':2, 'a':3, 'c':1}
print(sorted(d)) # ['a', 'b', 'c']

# 按键排序并保留键值对
print(sorted(d.items())) #[('a', 3), ('b', 2), ('c', 1)]
# 按值降序排序
print(sorted(d.items(), key=lambda x:x[1], reverse=False)) # [('c', 1), ('b', 2), ('a', 3)]
print(d.items()) # dict_items([('b', 2), ('a', 3), ('c', 1)])

三.datetime库

datetime模块提供了时间与日期的类和函数

  • datetime.date:表示日期(年、月、日)
  • datetime.time:表示时间(时、分、秒、微秒)
  • datetime.datetime:表示日期和时间的结合
  • datetime.timedelta:表示两个日期或时间之间的差值
  • datetime.timezone:表示时区信息

from datetime import date, time, datetime

# 当前本地日期和时间
now = datetime.now()
print(type(now)) # <class 'datetime.datetime'>
print(now) # 2026-01-16 13:31:36.329921
today = date.today()
print(type(today)) # <class 'datetime.date'>
print(today) # 2026-01-16
# 创建日期、时间对象
d = date(2020, 12, 25)
print(type(d)) # <class 'datetime.date'>
print(d) # 2020-12-25
t = time(15,30,30,30) # 可选微秒,1秒等于10^6微秒
print(type(t)) # <class 'datetime.time'>
print(t)# 15:30:30.000030
dt = datetime(2020,12,25,15,30,30)
print(type(dt)) # <class 'datetime.datetime'>
print(dt) # 2020-12-25 15:30:30
# 格式化与解析字符串 
s = dt.strftime("%Y/%m/%d %H:%M:%S") # 格式化为字符串 format 格式化
print(type(s)) # <class 'str'>
print(s) # 2020/12/25 15:30:30
dt2 = datetime.strptime(s,"%Y/%m/%d %H:%M:%S") # 从字符串中解析(需指定格式,格式必须和输入字符串的日期时间格式一样)parse 解析
print(type(dt2)) # <class 'datetime.datetime'>
print(dt2) # 2020-12-25 15:30:30
dt = datetime.now()

dt.year      # 年
dt.month     # 月
dt.day       # 日
dt.hour      # 小时
dt.minute    # 分钟
dt.second    # 秒
dt.weekday() # 星期几(周一为0,周日为6)
dt.isoweekday() # 星期几(周一为1,周日为7)

更多推荐