Skip to main content

python学习之路☞20.standard library.md

python学习之路☞20.standard library

#python, #standard_library, #math, #random, #file_IO,
标准库 library 代码练习

'''
标准库:
    为日常编程提供的解决方案,让 Python 用起来得心应手。
    标准库非常广泛,包括许多开发者设计并抽象的第三方库,增强了 Python 的功能和可移植性。
官网参考:https://docs.python.org/3/library/index.html

常用:
round(number, ndigits=None)内置函数: 
    返回四舍五入到小数点后 ndigits 位精度的数字。
    如果ndigits被省略或者为None ,它将返回最接近其输入的整数。
    用于清除计算误差
参考:https://docs.python.org/3/library/functions.html#round

math:用于科学运算的标准库
    math.radians(x) # 将角度x从度数转换为弧度。
    math.sin(x) # 返回x弧度的正弦值。
    math.pi # 数学常数π = 3.141592…
    math.ceil(x) # 向上取整
    math.floor(x) # 向下取整
    math.pow() # 指数幂运算
    math.sqrt() # 开方运算
参考:https://docs.python.org/3/library/math.html

random:用于生成伪随机数的标准库
    random.random() # 返回0.0 <= X < 1.0范围内的下一个随机浮点数
    random.randint(a, b) # 返回一个随机整数N ,使得a <= N <= b 。 相当于randrange(a, b+1)。
    random.choice(seq) # 从非空序列seq返回一个随机元素。如果seq为空,则引发IndexError
    random.shuffle(x) # 将序列x打乱。洗牌算法
参考:https://docs.python.org/3/library/random.html

库的学习方法:知道如何更好地抄代码更为重要,写代码应该是非常简单的事情。
    查谷歌
    AI
    官方文档
    找源码

学习的理念:
    学习本应该是最简单的事
学习的方法:
    一直学,不抗拒新事物
    一直写,光看没有用
    一个可以指出有用错误的人,比一个技术大牛有用
    任何重复机械式的劳动,都应当考虑尝试使用自动化办法解决
疑问:
    标准库很多,全部都要学嘛?太痛苦了吧?
    遇到未知的问题怎么知道该用哪个库?以及如何使用?
    小数类型为什么计算总会产生误差?
    既然抄代码比较重要,那我学 python 又有什么意义?
至此学习结束了,唔,唉
接下来我应该学什么?我已经有了python基础了,是否可以发大财了?
'''
import math  # 导入数学运算库
import random  # 导入伪随机数库
print('------常用库使用-------')
print('------数学运算-------')
result_radians = math.radians(30)  # 将角度x从度数转换为弧度。
result_sin = math.sin(result_radians)  # 返回x弧度的正弦值。
result_round = round(result_sin, 1)  # 清除计算误差,取小数点1位
print('sin30° =', result_round)
print('π =', math.pi)  # 数学常数π = 3.141592…
print('3.9向上取整', math.ceil(3.9))  # 向上取整
print('3.9向下取整', math.floor(3.9))  # 向下取整
print('10³ =', math.pow(10, 3))  # 指数幂运算
print('√100 =', math.sqrt(100))  # 开方运算

print('------伪随机数-------')
print('伪随机数生成[0.0,1.0) ->', random.random())  # 返回0.0 <= X < 1.0范围内的下一个随机浮点数
# 返回一个随机整数N ,使得a <= N <= b 。 相当于randrange(a, b+1)。
print('伪随机数生成[0,2] ->', random.randint(0, 2))
make_list = [1, 2, True]
# 从非空序列 make_list 返回一个随机元素。如果 make_list 为空,则引发IndexError
print('伪随机抽取非空序列', make_list, '中的元素:', random.choice(make_list))
print('非空序列:', make_list)
random.shuffle(make_list)  # 将序列 make_list 打乱并返回给序列本身。洗牌算法
print('伪随打乱非空序列:', make_list)

"""
练习:
    创建一个 test.txt 文件,并写入 `hello world` 
要求:
    不需要任何基础知识,去网上搜索代码,复制 粘贴 修改 运行!
疑问:
    那我学习 python 真的有用吗?有意义吗?
解题:
    我用的 bing ai https://copilot.microsoft.com/ 搜索询问,
    得到代码,直接复制粘贴运行,没有用到任何知识,我好迷茫啊!这一切都有意义吗?
"""
with open('test.txt', 'w') as file:
    file.write('hello world')
print('文件创建成功并写入内容')

参考

Standard Library Index — Python 3 docs
math — Python 3 docs
random — Python 3 docs
Python Standard Library — python.land

Comments

Popular posts from this blog

python学习之路☞9.Comment, Primitive Data Types and Branch Conditional Structure if ... else ...

python学习之路☞9.Comment, Primitive Data Types and Branch / Conditional Structure if … else … #python,#Comment,#data type,#branch/conditional structure,#input(),#int,#float,#complex,#boolean,#if … else …, 注释(Comment) 内置函数input()(input() Function) 基本数据类型整数(Primitive Data Types int) 基本数据类型小数(Primitive Data Types float) 基本数据类型复数(Primitive Data Types complex) 基本数据类型布尔(Primitive Data Types boolean) 分支结构if … else …(Branch / Conditional Structure if … else …) 参考 Comment ''' 注释: 给人看的说明文字,Python 解释器完全忽略 要点 # 让该行 # 之后的内容全部失效,解释器跳过。 行尾注释与代码在同一行,通常用于简短说明。 docstring(三引号字符串)放在函数/类/模块第一行时,可被 help() 和文档工具读取,有特殊意义。 好的注释解释"为什么",而不是"做了什么"(代码本身已经说明了做了什么): # ✗ i = i + 1 # i 加 1 # ✓ i += 1 # 跳过表头行 ''' # 这是单行注释,# 号后面全部忽略 x = 10 # 行尾注释,代码照常执行 # 多行注释:每行都加 # # 第一行说明 # 第二行说明 # 第三行说明 """ 这是多行字符串(docstring) 虽然常被当注释用, 但本质是字符串字面量,不是注释。 通常用于函数/类的文档说明。 """ def add ( a , b ) : """返回 a 与 b 的和。"...

OnePlus 7 Pro LineageOS 23.2 Android 16 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南

OnePlus 7 Pro LineageOS 23.2 Android 16 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南 OnePlus 7 Pro LineageOS 23.2 Android 16 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南 #docker,#linux,#termux,#android,#kernel,#lineageos,#oneplus,#git,#android16, gmkm6 x86_64 主机配置环境 安装配置 docker 防止污染环境 更新 docker 插件 compose 更新 docker 插件 buildx 创建编译容器 容器内编译镜像刷机 安装magisk,termux获取root termux检测内核docker缺失功能 根据内核docker缺失功能编译boot.img并获取root 开启全部必要扩展功能 下面的步骤是开启大部分非必要扩展功能 修补内核代码方案 下面的步骤是开启剩余部分非必要扩展功能 修补内核 安装测试运行 termux docker 其它关于termux的docker-compose和docker-buildx更新 安装用于校验的工具 开机自启动和容器化部署使用例子 Android16尝试开启KVM失败的例子(不用试了,唉) 内核修补 参考&感谢 gmkm6 x86_64 主机配置环境 注意,获取自己的手机型号代号,这一点很重要在后续的命令中都要用到 比如我的手机 oneplus7pro 是 guacamole 也可以尝试通过命令获取获取,但是我不知道是不是所有设备都是这样获取的 adb shell getprop ro.boot.project_codename 最重要的是,一定要找好固件包,免得变成砖头,有线刷包就可以怎么折腾都不怕 听我说,编译内核是一件很枯燥的核对过程,这个过程需要考虑到各项之间的互相依赖和冲突并以此作出取舍 这不是个简单的过程,这里只展示具有逻辑的依赖项,需要耐心和不断的试错总结 不得不说设计的内核是一件件精美的艺术品,从某种意义上来讲,万事万物皆为艺术,而探索艺术本身是...

OnePlus 7 Pro LineageOS 19.1 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南

OnePlus 7 Pro LineageOS 19.1 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南 OnePlus 7 Pro LineageOS 19.1 构建与内核 Docker 支持并在 Termux 上实现容器运行全流程指南 #docker,#linux,#termux,#android,#kernel,#lineageos,#oneplus,#git, gmkm6 x86_64 主机配置环境 安装配置 docker 防止污染环境 更新 docker 插件 compose 更新 docker 插件 buildx 创建编译容器 容器内编译镜像刷机 安装magisk,termux获取root termux检测内核docker缺失功能 根据内核docker缺失功能编译boot.img并获取root 安装测试运行 termux docker 其它关于termux的docker-compose和docker-buildx更新 参考&感谢 注意,获取自己的手机型号代号,这一点很重要在后续的命令中都要用到 比如我的手机 oneplus7pro 是 guacamole 也可以尝试通过命令获取获取,但是我不知道是不是所有设备都是这样获取的 adb shell getprop ro.boot.project_codename 最重要的是,一定要找好固件包,免得变成砖头,有线刷包就可以怎么折腾都不怕 最近 OP7P 设备型号是 guacamole 手机刷了 GM1910_11_H.40 即 android 12 https://gauss-componentotacostmanual-sg.allawnofs.com/remove-d74c973c240292cb011317bb07f424a2/component-ota/23/03/28/6d4604798d27450e8de05671d5effbae.zip 内核版本 4.14.180-perf+ 发现 github.com/OnePlusOSS 官方有相关的开放残缺的内核源码,但缺失了很多代码配置 https://github.com/OnePlusOSS/android_kernel_o...