Python基础知识:数字类型及数学函数详解

在开启Python系列学习之后,我们就大概讲了数字类型及数学函数的基础语法。这一篇博客,我们就将详细介绍Python中的数字类型、数学函数、随机数函数、三角函数以及数学常量,同时,为大家提供一些示例代码帮助大家更好地理解它们的用法。

目录

1. 数字类型(Numeric Types)

2. 数字运算符的应用

3. 数学函数

4. 随机数函数

5. 数学常量


1. 数字类型(Numeric Types)

前面我们讲过,Python中有几种主要的数字类型,包括整数(int)、浮点数(float)、复数(complex),三大类型,其中int类型又包括一个子类bool(布尔值)。那么对于这三种类型,介绍大概如下:

  • 整数:不包含小数点的数字,用于表示整数值。例如 1-51000 等。
  • 浮点数:包含小数点的数字,用于表示带有小数点的数字。例如 3.14-0.651e6 等。
  • 复数:由实数部分和虚数部分组成的数字,虚数部分以 "j" 或 "J" 结尾。例如 1+2j3-4j 等。

让我们一起来看看它们的用法和示例代码:

# 判断数字类型
print(type(1))  # <class 'int'>
print(type(3.14))  # <class 'float'>
print(type(1+2j))  # <class 'complex'># 数字类型转换
a = 10
b = 3.14
c = 1+2jprint(int(b))  # 3
print(float(a))  # 10.0
print(complex(a))  # (10+0j)

输出结果:

<class 'int'>
<class 'float'>
<class 'complex'>
<class 'bool'>
3
10.0
(10+0j)

这里可以看到,type()函数,用于判断数字的类型。下面我们使用issubclass() 函数来检查 bool 是否是 int 的子类。

# 使用 issubclass() 函数来检查 bool 是否是 int 的子类
print(issubclass(bool, int))  # 输出:True

这里大家可以去试试。

2. 数字运算符的应用

算术运算符用于执行数学运算,逻辑就是按照数学逻辑处理,包括加减乘除、幂运算、取余数等。下面这张列表列出了一些常用的算术运算。

运算符含义示例
+加法1 + 2 = 3
-减法5 - 3 = 2
*乘法4 * 3 = 12
/浮点除10 / 3 = 3.3333333333333335
//整除10 // 3 = 3
%取余数10 % 3 = 1
**幂运算2 ** 3 = 8

示例代码:

a = 10
b = 3# 加法
print(a + b)  # 输出:13# 减法
print(a - b)  # 输出:7# 乘法
print(a * b)  # 输出:30# 除法
print(a / b)  # 输出:3.3333333333333335# 整除
print(a // b)  # 输出:3# 取模
print(a % b)  # 输出:1# 指数
print(a ** b)  # 输出:1000

3. 数学函数

这里我们主要讲两个数学函数,一个是Python标准库中的数学函数,另一个是math模块中的数学函数。

下表列出了 Python 标准库中常用的数学函数对比math模块的数学函数,包括函数说明和示例代码。

标准库的函数名说明math模块的函数
acos(x)返回x的反余弦值(弧度)math.acos(0.5)
asin(x)返回x的反正弦值(弧度)math.asin(0.5)
atan(x)返回x的反正切值(弧度)math.atan(0.5)
atan2(y, x)返回以y/x为参数的反正切值(弧度)math.atan2(1, 1)
ceil(x)返回x向上取整的整数math.ceil(3.14)
cos(x)返回x的余弦值math.cos(math.pi / 2)
cosh(x)返回x的双曲余弦值math.cosh(1)
degrees(x)将弧度转换为角度math.degrees(math.pi)
exp(x)返回e的x次方math.exp(1)
fabs(x)返回x的绝对值math.fabs(-1)
floor(x)返回x向下取整的整数math.floor(3.14)
fmod(x, y)返回x除以y的余数math.fmod(5, 2)
frexp(x)将x分解为尾数和指数math.frexp(1.2345)
gcd(x, y)返回x和y的最大公约数math.gcd(12, 18)
hypot(x, y)返回x和y的平方和的平方根math.hypot(3, 4)
isfinite(x)判断x是否为有限数math.isfinite(1)
isinf(x)判断x是否为无穷大math.isinf(float('inf'))
isnan(x)判断x是否为NaNmath.isnan(float('NaN'))
ldexp(x, i)将x乘以2的i次方math.ldexp(1.2345, 2)
log(x)返回x的自然对数math.log(10)
log10(x)返回x的以10为底的对数math.log10(100)
modf(x)将x分解为整数部分和小数部分math.modf(1.2345)
pow(x, y)返回x的y次方math.pow(2, 3)
radians(x)将角度转换为弧度math.radians(90)
remainder(x, y)返回x除以y的余数math.remainder(5, 2)
sin(x)返回x的正弦值math.sin(math.pi / 2)
sinh(x)返回x的双曲正弦值math.sinh(1)
sqrt(x)返回x的平方根math.sqrt(4)
tan(x)返回x的正切值math.tan(math.pi / 4)
tanh(x)返回x的双曲正切值math.tanh(1)
trunc(x)返回x的截断值math.trunc(3.14)

 

注意: math模块主要包含围绕平台C数学库函数的简单包装器。特殊情况下的行为在适当情况下遵循C99标准的附录F。
math模块中的函数,返回值均为浮点数,除非另有明确说明。
如果你需要计算复数,请使用 cmath 模块中的同名函数。
以上表格仅列出了部分常用的数学函数,更多函数请参考Python官方文档:  https://docs.python.org/zh-cn/3/library/math.html。

以下是几个数学函数的示例代码:

a. `log(x)`:返回x的自然对数

# 计算10的自然对数
x = 10
result = math.log(x)
print(f"log({x}) = {result}")# 计算e的自然对数
x = math.e
result = math.log(x)
print(f"log({x}) = {result}")

b. `radians(x)`:将角度转换为弧度

import math
# 将90度转换为弧度
angle = 90
result = math.radians(angle)
print(f"radians({angle}) = {result}")# 将180度转换为弧度
angle = 180
result = math.radians(angle)
print(f"radians({angle}) = {result}")

c. `cos(x)`:返回x的余弦值

import math# 计算π/2的余弦值
x = math.pi / 2
result = math.cos(x)
print(f"cos({x}) = {result}")# 计算π的余弦值
x = math.pi
result = math.cos(x)
print(f"cos({x}) = {result}")

d. `sin(x)`:返回x的正弦值

import math# 计算π/2的正弦值
x = math.pi / 2
result = math.sin(x)
print(f"sin({x}) = {result}")# 计算π的正弦值
x = math.pi
result = math.sin(x)
print(f"sin({x}) = {result}")

e. `sqrt(x)`:返回x的平方根

import math# 计算4的平方根
x = 4
result = math.sqrt(x)
print(f"sqrt({x}) = {result}")# 计算9的平方根
x = 9
result = math.sqrt(x)
print(f"sqrt({x}) = {result}")

f. `exp(x)`:返回e的x次方

import math# 计算e的1次方
x = 1
result = math.exp(x)
print(f"exp({x}) = {result}")# 计算e的2次方
x = 2
result = math.exp(x)
print(f"exp({x}) = {result}")

以上代码演示了如何使用Python math 模块中的几个数学函数,标准库中的也类似,不需要math即可。


4. 随机数函数

在许多应用中,我们需要生成随机数。Python的random模块提供了丰富的随机数函数,用于生成随机的整数胡或则随机的浮点数等。

函数描述
random.random()返回[0.0, 1.0)范围内的随机浮点数
random.randint(a, b)返回a,b范围内的随机整数
random.uniform(a, b)返回a,b范围内的随机浮点数
random.choice(seq)从序列中随机选择一个元素
random.shuffle(seq)将序列中的元素随机排序
random.sample(population, k)从总体中选择k个独立的随机元素

示例代码:

# 返回[0.0, 1.0)范围内的随机浮点数
import random
num = random.random()
print(num)#返回[a, b]范围内的随机整数
num = random.randint(1, 10)
print(num)#返回[a, b]范围内的随机浮点数
num = random.uniform(1.5, 5.5)
print(num)#从序列中随机选择一个元素
items = [1, 2, 3, 4, 5]
chosen = random.choice(items)
print(chosen)#将序列中的元素随机排序
items = [1, 2, 3, 4, 5]
random.shuffle(items)
print(items)#从总体中选择k个独立的随机元素
items = [1, 2, 3, 4, 5]
chosen = random.sample(items, 3)
print(chosen)

5. 数学常量

Python中一些数学常量,也是数字运算中常用的,在Python中math模块中定义的常用数学常量。通过导入math模块,可以使用这些常量进行数学运算和计算。下面列出一些,供大家参考:

常数描述
math.pi圆周率(π)
math.e自然对数的底(e)
math.tau2π(双倍圆周率)
math.inf无穷大(正无穷)
math.nan非数字(NaN,Not a Number)

示例代码:

import math# 数学常量示例
print("圆周率 (π) =", math.pi)
print("自然对数的底 (e) =", math.e)
print("双倍圆周率 (τ) =", math.tau)
print("无穷大 =", math.inf)
print("非数字 =", math.nan)

那么,关于数字及其数学函数的讲解和示例代码,基本上讲完了,大家可以尝试着跟着代码一起学习,如果后面还有补充的,我将继续为大家分享。

感谢您的关注,我们下一篇文章将继续学习记录python的下一个知识点。

如果感觉阅读对您还有些作用,可以评论留言,关注我。谢谢您的阅读!

往期学习:

Python安装教程(版本3.8.10)windows10

Linux系统:安装Conda(miniconda)

Conda快速安装的解决方法(Mamba安装)

VSCode安装教程(版本:1.87.0)Windows10

Python基础语法:从入门到精通的必备指南

Python的基本数据类型

Python数据类型间的转换(隐式、显式)-CSDN博客

Python基础知识:运算符详解-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/735172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#拾遗补漏之goto跳转语句

前言 在我们日常工作中常用的C#跳转语句有break、continue、return&#xff0c;但是还有一个C#跳转语句很多同学可能都比较的陌生就是goto&#xff0c;今天大姚带大家一起来认识一下goto语句及其它的优缺点。 goto语句介绍 goto 语句由关键字 goto 后跟一个标签名称组成&…

视频产品介绍:AS-VCVR-N多协议视频接入网关

目 录 一、产品概述 &#xff08;一&#xff09;非标设备接入 &#xff08;二&#xff09;信令流转换 &#xff08;三&#xff09;媒体流转发 二、网关特性 三、技术参数 一、产品概述 视频接入网关服务是终端用户与视频源的传输枢纽&#xff0c;实现把前端不同…

AI训练数据处理和读取

AI训练数据处理和读取 AI数据处理 AI数据处理概述 AI数据处理是指对原始数据进行一系列的操作&#xff0c;以便机器学习算法能够从中提取有用的信息&#xff0c;进而进行模型的训练、验证和部署。数据处理是机器学习流程中的关键步骤&#xff0c;其质量直接影响到模型的性能…

手把手一起开发SV4E-I3C设备(四)

JEDEC DDR5 SPD Hub Devices例程 所有例程&#xff0c;SV4E-I3C设备连接器件均为SPD5芯片&#xff0c;Reg表示MR寄存器&#xff0c;Mem表示NVM存储器 1、ENEC CCC ENEC 启用事件中断&#xff0c;ENEC CCC 仅在设备置于 I3C 基本模式后才受支持。当 SPD5 注册 ENEC CCC 时&am…

如何删除github中已经被追踪的文件

以.idea目录为例,如果在添加.gitignore规则之前已经将.idea目录或其下的某些文件添加到了版本控制中,那么这些文件将会被追踪,即使后来添加了.gitignore规则,它们仍然会出现在Changes中。您需要先将这些文件从版本控制中移除,然后再次提交。可以使用以下命令将已追踪的文件…

AcWing算法基础课——简单数据结构模板

说明 本篇文章只给出代码模板&#xff0c;以及自己对该模板的理解。如果想看正确的算法思路&#xff0c;可以移步AcWing官网看详情。链接&#xff1a;常用代码模板2——数据结构 - AcWing 如有错误&#xff0c;欢迎大家批评指正。 简单数据结构模板 一、链表 1.1 数组模拟单…

【CSS面试题】高度塌陷问题及解决

什么情况下产生 (when 父盒子没有定义高度&#xff0c;但是子元素有高度&#xff0c;希望用子盒子撑起父盒子的高度&#xff0c;但是子盒子添加了浮动属性之后&#xff0c;父盒子高度为0 <template><div class"father"><div class"son"&…

pyqt QPlainTextEdit 中捕获回车

pyqt QPlainTextEdit 中捕获回车 在PyQt的QPlainTextEdit控件中&#xff0c;可以通过重写keyPressEvent()函数来捕获键盘事件。当按下回车键时&#xff0c;会发送一个Key_Return信号&#xff0c;我们可以连接这个信号到自定义的槽函数上进行处理。 以下是示例代码&#xff1a;…

Java 继承与多态

一、继承 在Java中&#xff0c;继承是一种重要的面向对象编程概念&#xff0c;它允许一个类&#xff08;称为子类或派生类&#xff09;继承另一个类&#xff08;称为父类或基类&#xff09;的属性和方法。这意味着子类可以使用父类的成员变量和方法&#xff0c;并且可以添加自…

算法第二十六天-删除有序数组中的重复项Ⅱ

删除有序数组中的重复项 题目要求 解题思路 题目要求中提到原地修改&#xff0c;那么肯定需要一个指针指向当前即将放置元素的位置&#xff0c;需要另外一个指针向后遍历所有元素&#xff0c;所以[双指针]解法呼之欲出。 慢指针slow&#xff1a;指向当前元素放置的位置&…

F - Earn to Advance

解题思路 由于对于一点不知道后面得花费&#xff0c;所以无法决策当前是否要停下赚钱或要停下多久考虑一点&#xff0c;可以由其左上方的所有点到达所以从往前推&#xff0c;得出到的总花费然后考虑从之后不赚钱直接到最终所用次数和剩余钱若存在&#xff0c;在后面点赚钱更优…

Python错题集-8:AttributeError(找不到对应的对象的属性)

1问题描述 AttributeError: AxesSubplot object has no attribute arc 2代码详情 import matplotlib.pyplot as plt# 创建一个新的图形和坐标轴 fig, ax plt.subplots()# 定义弧线的参数 center (0.5, 0.5) # 圆心坐标 (x, y) width 1.0 # 半径 height 0.5 # 半径 ang…

沁恒CH32V307VCT6开发板记录---kalrry

沁恒CH32V307VCT6开发板记录---kalrry 一、官网申请开发板二、环境准备图一 一、官网申请开发板 1.沁恒官网 二、环境准备 1.数据手册&#xff1a;CH32V307DS0.PDF&#xff0c;CH32FV2x_V3xRM.PDF 2.CH32V307评估板说明及参考应用例程&#xff1a;CH32V307EVT_ZIP 3.集成开…

【kvm企业级虚拟化】之初级篇

目录 一、kvm介绍二、kvm软件安装三、GuestOS安装第一种方式&#xff1a;图形化安装第二种方式&#xff1a;命令行模式安装 四、GuestOS升级配置五、KVM存储六、磁盘格式七、创建磁盘文件八、KVM基本管理九、虚拟机克隆十、虚拟机快照十一、KVM网络管理1、kvm修改virbr0地址段&…

每日一面——封装、继承和多态

写前声明&#xff1a;参考链接 C面经、面试宝典 等 ✊✊✊每日一面——封装、继承和多态 一、简述一下什么是面向对象&#xff1f;二、讲一讲封装、继承、多态是什么&#xff1f;三、C的多态怎么实现&#xff1f;四、C中类成员的访问权限和继承权限问题五、C中的重载、重写&…

腾讯云拼了99元服务器老用户能买,续费不涨价!

良心腾讯云推出99元一年服务器&#xff0c;新用户和老用户均可以购买&#xff0c;续费不涨价&#xff0c;续费也是99元&#xff0c;配置为轻量2核2G4M、50GB SSD盘、300GB月流量、4M带宽&#xff1a;优惠价格99元一年&#xff0c;续费99元&#xff0c;官方活动页面 txybk.com/g…

C++类和对象(中篇)

目录 1. 类的6个默认成员函数 2. 构造函数 3.析构函数 4.拷贝构造函数 5.赋值运算符重载 6.const成员 7.取地址及const取地址操作符重载 1. 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#…

OpenMP

介绍 OpenMP 是一个应用程序接口 &#xff08;API&#xff09;&#xff0c;由一组主要的计算机硬件和软件供应商共同定义。OpenMP 为共享内存并行应用程序的开发人员提供了一个可移植、可扩展的模型。该 API 支持各种架构上的 C/C 和 Fortran。 OpenMP是&#xff1a; 一个可…

基于动态内存设计的通讯录

test.c #define _CRT_SECURE_NO_WARNINGS 1 #include"contact.h"void menu(){printf("\n");printf("1.增加联系人\n");printf("2.删除联系人\n");printf("3.查找联系人\n");printf("4.修改联系人\n");printf(&qu…

python学习笔记------字典

字典的定义 字典的定义&#xff0c;同样是使用{}&#xff0c;不过存储的元素是一个个的键值对 基本语法&#xff1a; #定义字典字面量 {key:value,key:value,key:value,......key:value} #定义字典变量 my_dict{key:value,key:value,key:value,......key:value} #定义空…