【深度学习】 Python 和 NumPy 系列教程(一):Python基本数据类型:1、数字(整数、浮点数)及相关运算;2、布尔值
目录
一、前言
二、实验环境
三、Python基本数据类型
1. 数字
a. 整数(int)
b. 浮点数(float)
c. 运算
运算符
增强操作符
代码整合
d. 运算中的类型转换
e. 运算函数abs、max、min、int、float
2. 布尔值(bool)
a. 运算
b. 类型转换
一、前言
Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。
Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:
- Python:基本数据类型、容器(列表、字典、集合、元组)、函数、类
- Numpy:数组、数组索引、数据类型、数组数学、广播
- Matplotlib:绘图,子图,图像
- IPython:创建笔记本,典型工作流程
二、实验环境
Python 3.7
运行下述命令检查Python版本
python --version
三、Python基本数据类型
Python的基本数据类型包括:
- 整数(int):表示整数值,例如1、2、-3等。
- 浮点数(float):表示带有小数点的数值,例如3.14、2.5等。
- 布尔值(bool):表示真(True)或假(False)的逻辑值。
- 字符串(str):表示文本数据,使用引号(单引号或双引号)括起来,例如"Hello"、'Python'等。
- 列表(list):表示一组有序的元素,可以包含不同类型的数据,用方括号括起来,例如[1, 2, 3]、['apple', 'banana', 'orange']等。
- 元组(tuple):类似于列表,但是不可修改,用圆括号括起来,例如(1, 2, 3)、('apple', 'banana', 'orange')等。
- 集合(set):表示一组唯一的元素,用大括号括起来,例如{1, 2, 3}、{'apple', 'banana', 'orange'}等。
- 字典(dict):表示键值对的映射关系,用大括号括起来,例如{'name': 'John', 'age': 25}等。
1. 数字
-
a. 整数(int)
-
整数是没有小数部分的数字,可以是正数、负数或零。
-
没有取值范围限制
-
-
b. 浮点数(float)
- 浮点数则包括整数部分和小数部分,可以表示小数和科学计数法形式的数字。
- 取值范围和小数精度都存在限制,但常规计算可忽略
-
c. 运算
-
运算符
-
加(+)、减(-)、乘(*)、除(/)、取模(%)、整除(//)、幂运算(**)
-
-
注:以下运算过程连续进行
-
加法运算符(+):
x = x + 10 print(x) # 输出 531 -
减法运算符(-):
x = x - 100 print(x) # 输出 431 -
乘法运算符(*):
x = x * 2 print(x) # 输出 862 -
除法运算符(/):
x = x / 3 print(x) # 输出 287.3333333333333 -
取模运算符(%):
x = x % 100 print(x) # 输出 87.3333333333333 -
整除运算符(//):
x = x // 10 print(x) # 输出 8.0 -
幂运算符(**):
x = x ** 3 print(x) # 输出 512
增强操作符
-
+=、-=、*=、/=、%=、//=、**=
-
+=增强操作符:x += 10 # 等同于 x = x + 10 print(x) # 输出 522 -
-=增强操作符:x -= 100 # 等同于 x = x - 100 print(x) # 输出 422 -
*=增强操作符:x *= 2 # 等同于 x = x * 2 print(x) # 输出 844 -
/=增强操作符:x /= 3 # 等同于 x = x / 3 print(x) # 输出 281.3333333333333 -
%=增强操作符:x %= 100 # 等同于 x = x % 100 print(x) # 输出 81.33333333333331 -
//=增强操作符:x //= 10 # 等同于 x = x // 10 print(x) # 输出 8.0 -
**=增强操作符:x **= 3 # 等同于 x = x ** 3 print(x) # 输出 512.0
代码整合
x = 521
print(x, type(x))# 使用运算符对 x 进行操作
x = x + 10
print(x) # 输出 531x = x - 100
print(x) # 输出 431x = x * 2
print(x) # 输出 862x = x / 3
print(x) # 输出 287.3333333333333x = x % 100
print(x) # 输出 87.3333333333333x = x // 10
print(x) # 输出 8.0x = x ** 3
print(x) # 输出 512.0# 使用增强操作符对 x 进行操作
x += 10
print(x) # 输出 522.0x -= 100
print(x) # 输出 422.0x *= 2
print(x) # 输出 844.0x /= 3
print(x) # 输出 281.3333333333333x %= 100
print(x) # 输出 81.3333333333333x //= 10
print(x) # 输出 8.0x **= 3
print(x) # 输出 512.0
d. 运算中的类型转换
注意到,上述运算中除了整数与整数之间的运算以外,运算结果均为浮点数;
(特例:整数与整数之间的除法)
e. 运算函数abs、max、min、int、float
- abs():绝对值;
- max(x1,x2,…,xn):返回最大值;
- min(x1,x2,…,xn) :返回最小值;
- int(x):将x强制转换为整数类型;
- float(x):将x强制转换为浮点数类型;
# 绝对值
abs_value = abs(-10)
print(abs_value) # 输出: 10# 最大值
max_value = max(5, 8, 2, 10)
print(max_value) # 输出: 10# 最小值
min_value = min(5, 8, 2, 10)
print(min_value) # 输出: 2# 强制转换为整数
integer_value = int(3.14)
print(integer_value) # 输出: 3# 强制转换为浮点数
float_value = float("3.14")
print(float_value) # 输出: 3.14
2. 布尔值(bool)
布尔值(Booleans)是Python中的一种基本数据类型,用于表示真(True)或假(False)的值。布尔值通常用于条件判断和逻辑运算。
布尔值在Python中非常重要,因为它们在控制流语句(例如if语句和while循环)中扮演着关键角色。条件表达式的结果可以是布尔值,根据条件表达式的真假来执行不同的代码块。
布尔值有两个可能的取值:True和False。它们是Python中的关键字,不同于其他变量名。
下面是一些布尔运算符和布尔表达式的例子:
- 逻辑与(and):如果两个条件都为True,结果为True。例如:True and False 的结果是 False。
- 逻辑或(or):如果至少一个条件为True,结果为True。例如:True or False 的结果是 True。
- 逻辑非(not):对布尔值取反。例如:not True 的结果是 False。
布尔值可以与其他数据类型进行比较和运算。例如,可以将布尔值与整数、浮点数或字符串进行比较,或者在条件表达式中使用布尔值来控制程序的执行流程。
t, f = True, False
print(type(t))
a. 运算
print(t and f) # 逻辑与运算,输出:False
print(t or f) # 逻辑或运算,输出:True
print(not t) # 逻辑非运算,输出:False
print(t != f) # 不等于比较运算,输出:True
b. 类型转换
布尔类型可以转换为int类型
print(t, t+0) # 输出:True 1,因为True可以表示为1,所以t+0的结果是1
print(f, f+0) # 输出:False 0,因为False可以表示为0,所以f+0的结果是0
print(t, t+1) # 输出:True 2,因为True可以表示为1,所以t+1的结果是2
print(f, f+1) # 输出:False 1,因为False可以表示为0,所以f+1的结果是1
相关文章:
【深度学习】 Python 和 NumPy 系列教程(一):Python基本数据类型:1、数字(整数、浮点数)及相关运算;2、布尔值
目录 一、前言 二、实验环境 三、Python基本数据类型 1. 数字 a. 整数(int) b. 浮点数(float) c. 运算 运算符 增强操作符 代码整合 d. 运算中的类型转换 e. 运算函数abs、max、min、int、float 2. 布尔值(…...
无swing,高级javaSE毕业之贪吃蛇游戏(含模块构建,多线程监听服务)
JavaSE,无框架实现贪吃蛇 文章目录 JavaSE,无框架实现贪吃蛇1.整体思考2.可能的难点思考2.1 如何表示游戏界面2.2 如何渲染游戏界面2.3 如何让游戏动起来2.4 蛇如何移动 3.流程图制作4.模块划分5.模块完善5.0常量优化5.1监听键盘服务i.输入存储ii.键盘监…...
HDD-FAT32 ZIP-FAT32 HDD-FAT16 ZIP-FAT16 HDD-NTFS
FAT32、FAT16指的是分区格式, FAT16单个文件最大2G FAT32单个文件最大4G NTFS单个文件大于4G HDD是硬盘启动 ZIP是软盘启动 U盘选HDD HDD-NTFS...
王道数据结构编程题 二叉树
二叉树定义 以下为本文解题代码的二叉树定义。 struct TreeNode {int val;TreeNode* left, *right;TreeNode(int val 0, TreeNode* left nullptr, TreeNode* right nullptr): val(val), left(left), right(right) {} };非递归后序遍历 题目描述 编写后序遍历二叉树的非递…...
登录怎么实现的,密码加密了嘛?使用明文还是暗文,知道怎么加密嘛?
在Java中登录功能的实现通常包括以下步骤,其中密码应该以加密形式存储在数据库中,而不以明文形式存储,以增强安全性: 登录功能的实现步骤: 用户输入: 用户在登录页面上输入用户名和密码。 传输到服务器&a…...
Nginx和Tomcat负载均衡实现session共享
以前的项目使用Nginx作为反向代理实现了多个Tomcat的负载均衡,为了实现多个Tomcat之间的session共享,使用了开源的Memcached-Session-Manager框架。 此框架的优势: 1、支持Tomcat6和Tomcat7 2、操作粘性或不黏性Session 3、没有单点故障 4、T…...
【算法题】210. 课程表 II
题目: 现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1。给你一个数组 prerequisites ,其中 prerequisites[i] [ai, bi] ,表示在选修课程 ai 前 必须 先选修 bi 。 例如,想要学习课程 0 ,…...
“数据类型不一致”会走索引吗?
分析&回答 字符串类型的索引 id_1 varchar(20) NOT NULL这样下面两条语句的结果是一样的: SELECT * FROM ix_test WHERE id_11; SELECT * FROM ix_test WHERE id_11;执行计划是不同的: mysql> explain select * from ix_test where id_11; | 1 …...
Leetcode 1572.矩阵对角线元素之和
给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例 1: 输入:mat [[1,2,3],[4,5,6],[7,8,9]] 输出:25 解释:对角线的和为ÿ…...
[PG]将一行数据打散成多行数据
原始数据 比如有如此表结构定义: 假如查询数据如下: select dt as "日期",bj_count as "北京", sh_count as "上海",gz_count as "广州", sz_count as "深圳" from city_stats order by dt--------------------…...
二蛋赠书一期:《快捷学习Spring》
文章目录 前言活动规则参与方式本期赠书《快捷学习Spring》关于本书作者介绍内容简介读者对象 结语 前言 大家好!我是二蛋,一个热爱技术、乐于分享的工程师。在过去的几年里,我一直通过各种渠道与大家分享技术知识和经验。我深知,…...
Threejs汽车展厅
2023-09-06-16-29-40 预览:https://9kt8fy-1234.csb.app/ 源码链接...
LeetCode:207. 课程表、210. 课程表 II(拓扑排序 C++)
目录 207. 课程表 题目描述: 实现代码与解析: 拓扑排序 210. 课程表 II 题目描述: 实现代码与解析: 拓扑排序 原理思路: 207. 课程表 题目描述: 你这个学期必须选修 numCourses 门课程࿰…...
如何使用组件
可以复用的代码写到组件里面,比如左侧的导航栏 1.写好一个组件 记得结构写在template标签里面,当然div也可以 2.在需要使用的地方,用标签使用组件 3.在使用的文件内import此组件 import CommonAside from /components/CommonAside.vue; …...
Android 13.0 Launcher3定制之双层改单层(去掉抽屉式二)
1.概述 在13.0的系统产品开发中,对于在Launcher3中的抽屉模式也就是双层模式,在系统原生的Launcher3中就是双层抽屉模式的, 但是在通过抽屉上滑的模式拉出app列表页,但是在一些产品开发中,对于单层模式的Launcher3的产品模式也是常用的功能, 所以需要了解抽屉模式,然后修…...
对卷积的一点具象化理解
前言 卷积的公式一般被表示为下式: 对新手来说完全看不懂这是干什么,这个问题需要结合卷积的应用场景来说。 原理 卷积比较广泛的应用是在信号与系统中,所以有些公式的定义会按照信息流的习惯。假设存在一串信号g(x)经过一个响应h(x)时他的响…...
NV12数据格式转H265编码格式实现过程
一、需求 在视频处理和传输应用中,将视频数据编码为高效的格式是非常重要的。H.265(也称为HEVC)是一种先进的视频编码标准,具有更好的压缩性能和图像质量,相比于传统的编码标准(如H.264)&#…...
ubuntu 22.04 深度学习环境配置
第一步 安装驱动 网址:https://www.nvidia.com/download/index.aspx 根据硬件选择,我这里是 ubuntu 服务器,显卡是v100 sudo su root chmod ax NVIDIA //按 TAB 即可 加运行权限 # 禁用原显卡驱动 vim /etc/modprobe.d/blacklist.conf # 在最后一行…...
支付宝小程序集成mqtt兼容IOS和安卓
1. 前言 去年就想做支付宝小程序接入mqtt协议。但最终多方咨询,问客服问社区得到的答案都是支付宝小程序不能直接支持mqtt协议。偶然间发现徐宏大神的佳作,终于发现了xmqtt.js这个好东西。它实现了支付宝小程序完美接入mqtt协议,设备可以…...
在Qt5中SQLite3的使用
一、SQLite简要介绍 什么是SQLite SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 就像其他数据库,S…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
