当前位置: 首页 > news >正文

【Python学习笔记】46.Python3 math 模块和requests 模块

前言

本章介绍Python的math 模块和requests 模块。

Python math 模块

Python math 模块提供了许多对浮点数的数学运算函数。

math 模块下的函数,返回值均为浮点数,除非另有明确说明。

如果你需要计算复数,请使用 cmath 模块中的同名函数。

要使用 math 函数必须先导入:

import math

查看 math 模块中的内容:

>>> import math
>>> dir(math)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp']

math 模块常量

常量描述
math.e返回欧拉数 (2.7182…)
math.inf返回正无穷大浮点数
math.nan返回一个浮点值 NaN (not a number)
math.piπ 一般指圆周率。 圆周率 PI (3.1415…)
math.tau数学常数 τ = 6.283185…,精确到可用精度。Tau 是一个圆周常数,等于 2π,圆的周长与半径之比。
math 模块方法
方法描述
:----:----
math.acos(x)返回 x 的反余弦,结果范围在 0 到 pi 之间。
math.acosh(x)返回 x 的反双曲余弦值。
math.asin(x)返回 x 的反正弦值,结果范围在 -pi/2 到 pi/2 之间。
math.asinh(x)返回 x 的反双曲正弦值。
math.atan(x)返回 x 的反正切值,结果范围在 -pi/2 到 pi/2 之间。
math.atan2(y, x)返回给定的 X 及 Y 坐标值的反正切值,结果是在 -pi 和 pi 之间。
math.atanh(x)返回 x 的反双曲正切值。
math.ceil(x)将 x 向上舍入到最接近的整数
math.comb(n, k)返回不重复且无顺序地从 n 项中选择 k 项的方式总数。
math.copysign(x, y)返回一个基于 x 的绝对值和 y 的符号的浮点数。
math.cos()返回 x 弧度的余弦值。
math.cosh(x)返回 x 的双曲余弦值。
math.degrees(x)将角度 x 从弧度转换为度数。
math.dist(p, q)返回 p 与 q 两点之间的欧几里得距离,以一个坐标序列(或可迭代对象)的形式给出。 两个点必须具有相同的维度。
math.erf(x)返回一个数的误差函数
math.erfc(x)返回 x 处的互补误差函数
math.exp(x)返回 e 的 x 次幂,Ex, 其中 e = 2.718281… 是自然对数的基数。
math.expm1()返回 Ex - 1, e 的 x 次幂,Ex,其中 e = 2.718281… 是自然对数的基数。这通常比 math.e ** x 或 pow(math.e, x) 更精确。
math.fabs(x)返回 x 的绝对值。
math.factorial(x)返回 x 的阶乘。 如果 x 不是整数或为负数时则将引发 ValueError。
math.floor()将数字向下舍入到最接近的整数
math.fmod(x, y)返回 x/y 的余数
math.frexp(x)以 (m, e) 对的形式返回 x 的尾数和指数。 m 是一个浮点数, e 是一个整数,正好是 x == m * 2**e 。 如果 x 为零,则返回 (0.0, 0) ,否则返回 0.5 <= abs(m) < 1 。
math.fsum(iterable)返回可迭代对象 (元组, 数组, 列表, 等)中的元素总和,是浮点值。
math.gamma(x)返回 x 处的伽马函数值。
math.gcd()返回给定的整数参数的最大公约数。
math.hypot()返回欧几里得范数,sqrt(sum(x**2 for x in coordinates))。 这是从原点到坐标给定点的向量长度。
math.isclose(a,b)检查两个值是否彼此接近,若 a 和 b 的值比较接近则返回 True,否则返回 False。。
math.isfinite(x)判断 x 是否有限,如果 x 既不是无穷大也不是 NaN,则返回 True ,否则返回 False 。
math.isinf(x)判断 x 是否是无穷大,如果 x 是正或负无穷大,则返回 True ,否则返回 False 。
math.isnan()判断数字是否为 NaN,如果 x 是 NaN(不是数字),则返回 True ,否则返回 False 。
math.isqrt()将平方根数向下舍入到最接近的整数
math.ldexp(x, i)返回 x * (2**i) 。 这基本上是函数 math.frexp() 的反函数。
math.lgamma()返回伽玛函数在 x 绝对值的自然对数。
math.log(x[, base])使用一个参数,返回 x 的自然对数(底为 e )。
math.log10(x)返回 x 底为 10 的对数。
math.log1p(x)返回 1+x 的自然对数(以 e 为底)。
math.log2(x)返回 x 以 2 为底的对数
math.perm(n, k=None)返回不重复且有顺序地从 n 项中选择 k 项的方式总数。
math.pow(x, y)将返回 x 的 y 次幂。
math.prod(iterable)计算可迭代对象中所有元素的积。
math.radians(x)将角度 x 从度数转换为弧度。
math.remainder(x, y)返回 IEEE 754 风格的 x 除于 y 的余数。
math.sin(x)返回 x 弧度的正弦值。
math.sinh(x)返回 x 的双曲正弦值。
math.sqrt(x)返回 x 的平方根。
math.tan(x)返回 x 弧度的正切值。
math.tanh(x)返回 x 的双曲正切值。
math.trunc(x)返回 x 截断整数的部分,即返回整数部分,删除小数部分

Python requests 模块

Python 内置了 requests 模块,该模块主要用来发 送 HTTP 请求,requests 模块比 urllib 模块更简洁。

实例

# 导入 requests 包
import requests# 发送请求
x = requests.get('https://www.csdn.com/')# 返回网页内容
print(x.text)

每次调用 requests 请求之后,会返回一个 response 对象,该对象包含了具体的响应信息。

响应信息如下:

属性或方法说明
apparent_encoding编码方式
close()关闭与服务器的连接
content返回响应的内容,以字节为单位
cookies返回一个 CookieJar 对象,包含了从服务器发回的 cookie
elapsed返回一个 timedelta 对象,包含了从发送请求到响应到达之间经过的时间量,可以用于测试响应速度。比如 r.elapsed.microseconds 表示响应到达需要多少微秒。
encoding解码 r.text 的编码方式
headers返回响应头,字典格式
history返回包含请求历史的响应对象列表(url)
is_permanent_redirect如果响应是永久重定向的 url,则返回 True,否则返回 False
is_redirect如果响应被重定向,则返回 True,否则返回 False
iter_content()迭代响应
iter_lines()迭代响应的行
json()返回结果的 JSON 对象 (结果需要以 JSON 格式编写的,否则会引发错误)
links返回响应的解析头链接
next返回重定向链中下一个请求的 PreparedRequest 对象
ok检查 “status_code” 的值,如果小于400,则返回 True,如果不小于 400,则返回 False
raise_for_status()如果发生错误,方法返回一个 HTTPError 对象
reason响应状态的描述,比如 “Not Found” 或 “OK”
request返回请求此响应的请求对象
status_code返回 http 的状态码,比如 404 和 200(200 是 OK,404 是 Not Found)
text返回响应的内容,unicode 类型数据
url返回响应的 URL

实例

# 导入 requests 包
import requests# 发送请求
x = requests.get('https://www.csdn.com/')# 返回 http 的状态码
print(x.status_code)# 响应状态的描述
print(x.reason)# 返回编码
print(x.apparent_encoding)

输出结果如下:

200
OK
utf-8

请求 json 数据文件,返回 json 内容:

实例

# 导入 requests 包
import requests# 发送请求
x = requests.get('https://www.csdn.com/try/ajax/json_demo.json')# 返回 json 数据
print(x.json())

输出结果如下:

{'name': '网站', 'num': 3, 'sites': [{'name': 'Google', 'info': ['Android', 'Google 搜索', 'Google 翻译']}, {'name': 'csdn', 'info': ['csdn教程', '菜鸟工具', '菜鸟微信']}, {'name': 'Taobao', 'info': ['淘宝', '网购']}]}

requests 方法
requests 方法如下表:

方法描述
delete(url, args)发送 DELETE 请求到指定 url
get(url, params, args)发送 GET 请求到指定 url
head(url, args)发送 HEAD 请求到指定 url
patch(url, data, args)发送 PATCH 请求到指定 url
post(url, data, json, args)发送 POST 请求到指定 url
put(url, data, args)发送 PUT 请求到指定 url
request(method, url, args)向指定的 url 发送指定的请求方法

使用 requests.request() 发送 get 请求:

实例

# 导入 requests 包
import requests# 发送请求
x = requests.request('get', 'https://www.csdn.com/')# 返回网页内容
print(x.status_code)

输出结果如下:

200

设置请求头:

实例

# 导入 requests 包
import requestskw = {'s':'python 教程'}# 设置请求头
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}# params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
response = requests.get("https://www.csdn.com/", params = kw, headers = headers)# 查看响应状态码
print (response.status_code)# 查看响应头部字符编码
print (response.encoding)# 查看完整url地址
print (response.url)# 查看响应内容,response.text 返回的是Unicode格式的数据
print(response.text)

输出结果如下:

200
UTF-8
https://www.csdn.com/?s=python+%E6%95%99%E7%A8%8B... 其他内容...

post() 方法可以发送 POST 请求到指定 url,一般格式如下:

requests.post(url, data={key: value}, json={key: value}, args)
  • url 请求 url。
  • data 参数为要发送到指定 url 的字典、元组列表、字节或文件对象。
  • json 参数为要发送到指定 url 的 JSON 对象。
  • args 为其他参数,比如 cookies、headers、verify等。

实例

# 导入 requests 包
import requests# 发送请求
x = requests.post('https://www.csdn.com/try/ajax/demo_post.php')# 返回网页内容
print(x.text)

输出结果如下:

<p style='color:red;'>本内容是使用 POST 方法请求的。</p><p style='color:red;'>请求时间:
2022-05-26 17:30:47</p>

post 请求带参数:

实例

# 导入 requests 包
import requests# 表单参数,参数名为 fname 和 lname
myobj = {'fname': 'csdn','lname': 'Boy'}# 发送请求
x = requests.post('https://www.csdn.com/try/ajax/demo_post2.php', data = myobj)# 返回网页内容
print(x.text)

输出结果如下:

<p style='color:red;'>你好,csdn Boy,今天过得怎么样?</p>

相关文章:

【Python学习笔记】46.Python3 math 模块和requests 模块

前言 本章介绍Python的math 模块和requests 模块。 Python math 模块 Python math 模块提供了许多对浮点数的数学运算函数。 math 模块下的函数&#xff0c;返回值均为浮点数&#xff0c;除非另有明确说明。 如果你需要计算复数&#xff0c;请使用 cmath 模块中的同名函数…...

页面导航-yang

这就是一个简单的导航 &#x1f440; 机器视觉&#xff1f; &#x1f468;‍&#x1f527; 环境搭建 &#x1f468;‍&#x1f527; 关与Tensorflow-gpu Anaconda Pycharm配置问题解决方案 &#x1f47c; 口罩识别 &#x1f4bb; 实时口罩检测mp4视频识别 Ⅰ &#x1f4bb…...

Mac配置homebrew

mac配置homebrew Homebrew是一款Mac OS平台下的软件包管理工具&#xff0c;拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令&#xff0c;就可以实现包管理&#xff0c;而不用你关心各种依赖和文件路径的情况&#xff0c;十分方便快捷。Homebrew主要有四个部…...

如何无报错运行代码YOLOv6,实现目标识别?

YOLOv6是由美团视觉团队开发的1.环境配置我们先把YOLOv6的代码clone下来git clone https://github.com/meituan/YOLOv6.git安装一些必要的包pip install pycocotools2.0作者要求pytorch的版本是1.8.0,我的环境是1.7.0&#xff0c;也是可以正常运行的pip install -r requirement…...

SQL91 返回购买价格为 10 美元或以上产品的顾客列表

描述OrderItems表示订单商品表&#xff0c;含有字段订单号&#xff1a;order_num、订单价格&#xff1a;item_price&#xff1b;Orders表代表订单信息表&#xff0c;含有顾客id&#xff1a;cust_id和订单号&#xff1a;order_numOrderItems表order_numitem_pricea110a21a21a42a…...

Goreplay使用教程0221

1、简介Goreplay 是用 Golang 写的一个HTTP 实时流量复制工具。功能更强大&#xff0c;支持流量的放大、缩小&#xff0c;频率限制&#xff0c;还支持把请求记录到文件&#xff0c;方便回放和分析&#xff0c;也支持和 ElasticSearch 集成&#xff0c;将流量存入 ES 进行实时分…...

9、GPT-1-2-3

GPT GPT系列即基于Transformer Decoder实现的预训练语言模型&#xff0c;在各类复杂的NLP任务中都取得了不错的效果&#xff0c;如文章生成、代码生成、机器翻译&#xff0c;Q&A等。 对于一个新的任务&#xff0c;GPT仅仅需要非常少的数据便可以理解该任务&#xff0c;并…...

Python-四分位数计算

怎么计算四分位数先理解四分位数怎么计算&#xff1a;可参考https://zhuanlan.zhihu.com/p/235345817&#xff0c;假设数列一共有n个数1&#xff09;当 &#xff08;n1&#xff09;/4可以整除时&#xff0c;Q1第在&#xff08;n1&#xff09;/4位Q2第 (n1)/2位Q3第(n1)/4*3位举…...

一个简单的步骤让你的 Python 代码更干净

说起来容易做起来难&#xff0c;我们都知道代码可读性非常重要&#xff0c;但是写的时候总是随心所欲&#xff0c;不考虑类型提示、import 排序、PEP8 规范。今天分享一个小技巧&#xff0c;通过一个简单的步骤就可以让你的 Python 代码更干净。这就是 pre-commit&#xff1a;可…...

linux集群技术(二)--keepalived(高可用集群)(一)

高可用集群简介keepalived简介 1.高可用集群简介 1.1什么是高可用集群 高可用集群&#xff08;High Availability Cluster&#xff0c;简称HA Cluster&#xff09;&#xff0c;是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务&am…...

C++中的类型转换

目录 一、C语言中的类型转换 二、C中的类型转化 2.1 static_cast 2.2 const_cast2.2 const_cast 2.3reinterpret_cast 重解释转换 2.4 dynamic_cast 动态转换&#xff08;&#xff01;&#xff01;&#xff01;&#xff09; 3. explicit 防止隐式类型转化 一、C语言…...

如何使用raw socket发送UDP报文

前面写的一篇《Linux下如何在数据链路层接收原始数据包》举了一个实例,使用raw socket接收UDP数据报,但是发送一个数据包比接收要复杂一些,本文以一个实例说明如何使用raw socket发送一个UDP报文。 1. 前言 阅读本文前可以考虑先阅读一下我的另外一篇文章《Linux下如何在数据…...

【C++】文件IO流

一起来康康C中的文件IO操作吧 文章目录1.operator bool2.C文件IO流3.文件操作3.0 关于按位与的说明3.1 ifstream3.2 ofstream流插入文本3.3 ostringstream/istringstream3.4 stringstream3.5使用stringstream的注意事项结语1.operator bool 之前写OJ的时候&#xff0c;就已经用…...

JavaScript高级程序设计读书分享之4章——4.2执行上下文与作用域

JavaScript高级程序设计(第4版)读书分享笔记记录 适用于刚入门前端的同志 执行上下文 变量或函数的上下文决定 了它们可以访问哪些数据&#xff0c;以及它们的行为。在浏览器中&#xff0c;全局上下文就是我们常说的 window 对象&#xff08;第 12 章会详细介绍&#xff09;&am…...

函数的定义与声明

目录 1.函数的定义 2.函数声明 2.1 函数本地声明 2.2 函数外部声明 2.2.1函数的外部声明的好处和坏处 3.变量定义与声明 3.1变量定义 3.2变量声明 4.结构体的定义与声明 4.1结构体的定义 4.2结构体的声明 1.函数的定义 函数的定义即函数的具体实现。 2.函数声明 函数…...

C#部署非安装版(绿色版)mysql

C#部署非安装版&#xff08;绿色版&#xff09;mysql场景实现步骤场景 项目由bs和cs端组成&#xff0c;bs端的数据存储在了mysql中&#xff0c;cs依赖bs运行&#xff0c;bs会显示一些实时的信息。 需求是给客户一个安装包&#xff0c;简易操作就可安装完成。 使用版本&#xf…...

【RecBole-GNN/源码】RecBole-GNN中lightGCN源码解析

如果觉得我的分享有一定帮助&#xff0c;欢迎关注我的微信公众号 “码农的科研笔记”&#xff0c;了解更多我的算法和代码学习总结记录。或者点击链接扫码关注【RecBole-GNN/源码】RecBole-GNN中lightGCN源码解析 【RecBole-GNN/源码】RecBole-GNN中lightGCN源码解析 原文&…...

基于UIAutomation+Python+Unittest+Beautifulreport的WindowsGUI自动化测试框架common目录解析

文章目录1 框架工具说明2 技术栈说明3 框架截图4 源码解析/common目录4.1 common/baseinfo.py4.2 common/creenShot.py4.3 common/logOut.py4.4 common/reportOut.py4.5 common/sendMail.py注&#xff1a; 1、本文为本站首发&#xff0c;他用请联系作者并注明出处&#xff0c;谢…...

c++提高篇——queque容器

一、queque容器基本概念 Queue是一种先进先出(FIFO)的教据结构&#xff0c;它有两个出口 队列容器允许从一端新增元素&#xff0c;从另一端移除元素。队列中只有队头和队尾才可以被外界使用&#xff0c;因此队列不允许有遍历行为队列中进数据。 queque容器可以形象化为生活中…...

MyBatis-XML映射文件详解

一、XML 映射器 1.概述 使用 xml 文件去配置 SQL 代码&#xff0c;比传统的 jdbc 简单方便&#xff0c;能够少写代码&#xff0c;减少使用成本&#xff0c;提高工作效率。 1.1SQL 映射文件中的顶级元素 cache – 该命名空间的缓存配置。 cache-ref – 引用其它命名空间的缓…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

6.9-QT模拟计算器

源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...

Python学习(8) ----- Python的类与对象

Python 中的类&#xff08;Class&#xff09;与对象&#xff08;Object&#xff09;是面向对象编程&#xff08;OOP&#xff09;的核心。我们可以通过“类是模板&#xff0c;对象是实例”来理解它们的关系。 &#x1f9f1; 一句话理解&#xff1a; 类就像“图纸”&#xff0c;对…...