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

[Python 基础课程]数字

数字

数字数据类型用于存储数值,比如整数、小数、复数。

var1 = 1
var2 = 10

创建完变量后,如果想废弃掉这个变量(比如后面不再使用),可以使用 del 关键字删除这个变量:

del var1
del var1,var2

:::warning
需要注意的是,del 删除的是名称的绑定,而不是对象本身。 如果没有任何其他名称引用该对象,那么该对象最终会被 Python 的垃圾回收机制回收,释放其占用的内存

:::

数字类型的变量可以通过之前讲过的运算符对其进行操作:

var1 = 1
var2 = 2var3 = var1 + var2

数字的类型转换

Python 提供了一些内置函数用于数字类型之间的转换:

  • int(x): 将 x 转换为整数。
  • float(x): 将 x 转换为浮点数。
# 将浮点数转换为整数(截断小数部分)
int_from_float = int(3.9) # 结果为 3# 将整数转换为浮点数
float_from_int = float(5) # 结果为 5.0# 将字符串转换为整数
int_from_string = int("123") # 结果为 123# 将字符串转换为浮点数
float_from_string = float("45.67") # 结果为 45.67

数字的不可变性

Python 中的数字类型是不可变的。这意味着一旦一个数字对象被创建,它的值就不能被改变。当你对一个数字变量进行重新赋值时,实际上是创建了一个新的数字对象,并让变量指向这个新对象,而不是修改了原有的对象。

# num 变量指向存储 10 的对象
num = 10# 实际上是创建了一个新的存储 20 的对象,并让 num 指向它
num = 20

id() 函数是 Python 中用于获取对象内存地址的工具,你可以通过 id 函数来判断 num 前后的内存地址是否发生了改变:

# num 变量指向存储 10 的对象
num = 10
print(id(num))# 实际上是创建了一个新的存储 20 的对象,并让 num 指向它
num = 20
print(id(num))

随机数

Python 中的 random 类中提供了常用的关于生成随机数或挑选随机的一个值的相关的方法。

函数描述
choice(seq)从序列的元素中随机挑选一个元素。例如:random.choice(range(10)),从 0到 9中随机挑选一个整数
randrange([start,] stop [,step])从指定范围内,按指定基数递增的集合中获取一个随机数。基数默认值为 1
random()随机生成下一个实数,范围在 [0, 1)内
randint(a,b)随机生成指定范围内的一个整数,范围在 [a, b]内,这里是左闭右闭
seed([x])改变随机数生成器的种子 seed。如果不了解原理,通常不需要特别设定,Python 会自动选择
shuffle(lst)将序列的所有元素随机排序
uniform(x, y)随机生成下一个实数,范围在 [x, y]内

:::warning
random() 的范围是左闭右开区间 [0, 1),而 uniform(x, y) 是 闭区间 [x, y]

shuffle(lst) 会直接修改原列表,而非返回一个新列表

:::

比如生成一个随机的在 1 到 10 之间的整数:

import random
random_num = random.randint(1, 10)  # 生成 1~10 之间的随机整数(包括 1 和 10)
print(random_num)
http://www.xdnf.cn/news/14868.html

相关文章:

  • 【学习笔记】Python中主函数调用的方式
  • AngularJS 安装使用教程
  • kubernetes pod调度基础
  • Ubuntu系统开发板借助windows中转上网
  • 类加载生命周期与内存区域详解
  • [特殊字符] 分享裂变新姿势:用 UniApp + Vue3 玩转小程序页面分享跳转!
  • CAU数据挖掘实验 表分析数据插件
  • AILiquid线上AMA首秀,全链AI驱动的去中心化合约平台引发关注
  • 解决 GitHub Actions 中 S3 部署文件堆积问题的完整指南
  • php数据导出pdf文件
  • Vue-16-前端框架Vue之应用基础集中式状态管理pinia(一)
  • Linux 系统管理:高效运维与性能优化
  • MySQL索引失效场景
  • OpenWrt | 使用 Docker 运行 iperf3
  • 深度解析基于贝叶斯的垃圾邮件分类
  • android BottomSheet及AlertDialog的几种material3 常见ui的用法
  • 链表题解——设计链表【LeetCode】
  • 贪心算法在C++中的应用与实践
  • 机器学习-- 神经网络
  • 认识 Spring AI
  • 【Springai】项目实战进度和规划
  • Android阴影效果的艺术与实现:从入门到精通
  • 【冷知识】Spring Boot 配置文件外置
  • [15-2] 读写内部FLASH读取芯片ID 江协科技学习笔记(20个知识点)
  • YOLOv13:最新的YOLO目标检测算法
  • AlpineLinux安装部署MongoDB
  • Flutter 布局之 IntrinsicHeight 组件
  • 浪潮和曙光服务器的ipmi配置教程
  • jenkins集成sonarqube(使用token进行远程调用)
  • 【硬核数学 · LLM篇】3.1 Transformer之心:自注意力机制的线性代数解构《从零构建机器学习、深度学习到LLM的数学认知》