Python学习笔记 - 探索5种数据类型

news2024/9/21 15:27:57

Python作为一门易学且功能强大的编程语言,吸引了众多编程爱好者。在学习Python的过程中,了解其数据类型是十分重要的。这里将向大家介绍Python中的五种常见数据类型,分别是:整数、浮点数、字符串、列表和字典,并且将通过生动的例子来展示如何使用这些数据类型。
在这里插入图片描述

文章目录

  • 整数(int)
    • 整数的进制
  • float 浮点型
    • 特殊的浮点数
  • 复数型
  • 字符型
    • 字符串中的转义序列
    • 对字符应用特殊含义
    • 原始字符串
    • 三引号字符串
  • 布尔类型

整数(int)

在 Python 3 中,整数值的长度是动态的,可以根据需要而变化。这意味着你可以在程序中使用非常大的整数值,而不需要担心固定的长度限制。Python 3 中的整数类型是无限精度的,它可以表示任意大的整数。这与其他编程语言不同,其他编程语言通常有固定的整数长度限制(例如32位或64位)。

在 Python 3 中,整数的长度仅受系统内存的限制。只要你的系统有足够的内存来存储整数值就可以使用任意长度的整数。

print(123 + 1)
124

在Python中,如果一个数字没有任何前缀,它将被解释为十进制数。这意味着你可以直接在代码中使用不带前缀的数字,它们将被视为十进制值。

x = 10
print(x)  # 输出:10

y = 3.14
print(y)  # 输出:3.14

z = 100_000
print(z)  # 输出:100000

整数的进制

可以使用以下字符串来标识其他进制的数:

  • 二进制:以 0b 或者 0B 开头,例如"0b1010"表示十进制的10。
  • 八进制:以 0o 或者 0O 开头,例如"0o12"表示十进制的10。
  • 十六进制:以 0x 或者 0X 开头,例如"0xA"表示十进制的10。

这些前缀字符串可以在整数值之前添加,以表示不同的进制。Python中不论整数是几进制表示的,其数据类型都是int。

type(10)
<class 'int'>

type(0o10)
<class 'int'>

type(0x10)
<class 'int'>

type(0b10)
<class 'int'>

float 浮点型

Python中的浮点数可以使用小数点来指定,也可以使用科学记数法表示。科学记数法由基数(通常为10)乘以指数的形式来表示。在Python中,可以使用字符’e’或’E’来表示科学记数法。

num1 = 3.14  # 使用小数点表示浮点数
num2 = 2e3  # 2乘以10的3次方,即2000.0
num3 = -1.5E-2  # -1.5乘以10的-2次方,即-0.015

print(num1)  # 输出: 3.14
print(num2)  # 输出: 2000.0
print(num3)  # 输出: -0.015

特殊的浮点数

根据 IEEE 754 标准,几乎所有平台都将 Python 中的浮点数表示为 64 位双精度值。

浮点数的最大值约为 1.8 × 1 0 308 1.8 \times 10^{308} 1.8×10308

print(1.79e308)
1.79e+308

# 超出范围指向无穷大
print(1.8e308)
inf

浮点数的最小值约为 5.0 × 1 0 − 324 5.0 \times 10^{-324} 5.0×10324

print(5e-324)
5e-324

print(1e-325)
0.0

浮点数在内部以二进制(base-2)分数的形式表示,大多数十进制分数无法完全准确地表示为二进制分数,因此浮点数的内部表示是实际值的近似值。由于实际值与表示值之间的差异非常小,通常不会引起 BUG。

复数型

复数型(complex)表示复数,即有实部和虚部的数字。复数的表示方法是:a + bj,其中a是实部,b是虚部,j表示虚数单位。复数在科学计算、信号处理等领域有广泛应用。

g = 3 + 4j
h = -2 - 3J

计算两个复数的和。

x = 3 + 4j
y = 1 - 2j

z = x + y

print("复数和:", z)

字符型

Python使用字符串(str)来表示由字符数据组成的序列。字符串可以使用单引号或双引号进行分隔。

print("name 張郃 is a string.")
name 張郃 is a string.

type("name 張郃 is a string.")
<class 'str'>

print('name 曹操 is too.')
name 曹操 is too.

print(type('name 曹操 is too.'))
<class 'str'>

字符串也可以为空。

print('')

在字符串中包含与分隔符相同的引号字符时,最简单的方法是使用另一种类型的引号进行分隔。如果字符串需要包含单引号,则使用双引号进行分隔,反之亦然。

# 错误的方法
print('私は趙雲('ちょううん)です')
SyntaxError: invalid syntax

print('私は趙雲("ちょううん")です')
'私は趙雲("ちょううん")です'

print("私は趙雲('ちょううん')です")
"私は趙雲('ちょううん')です"

字符串中的转义序列

字符串中可以使用转义序列来表示特殊字符或字符序列。抑制某些字符通常在字符串中具有特殊意义的解释。

转义字符解释说明可视化结果
用单引号开始分隔符终止字符串文字单引号 ( ') 字符
"用双引号开始分隔符终止字符串文字双引号 ( ") 字符
<newline>终止输入线换行被忽略
\引入转义序列文字反斜杠 ( \ ) 字符
# 错误的方法
print('私は趙雲('ちょううん)です')
SyntaxError: invalid syntax

# 正确的方法
print('私は趙雲(\'ちょううん)です')
私は趙雲('ちょううん)です

print('私は趙雲(\"ちょううん)です')
私は趙雲("ちょううん)です

print('私は趙雲(\\ちょううん)です')
私は趙雲(\ちょううん)です

# 换行符终止行输入的错误
print('私は
SyntaxError: EOL while scanning string literal


# 换行符正确的用法
print('私は趙雲(\
ちょううん)です')
私は趙雲(ちょううん)です

对字符应用特殊含义

在Python中,可以使用转义序列\t来表示制表符。

转义字符解释说明
\aASCII 响铃 (BEL) 字符
\bASCII 退格 (BS) 字符
\fASCII 换页符 (FF) 字符
\nASCII 换行 (LF) 字符
\N{}Unicode 数据库中给定的字符
\rASCII 回车 (CR) 字符
\tASCII 水平制表符 (TAB) 字符
\uxxxx具有 16 位十六进制值的 Unicode 字符xxxx
\Uxxxxxxxx具有 32 位十六进制值的 Unicode 字符xxxxxxxx
\vASCII 垂直制表符 (VT) 字符
\ooo八进制字符ooo
\xhh具有十六进制值的字符hh

以下是创建包含制表符的字符串的示例代码:

print('私は趙雲\tです')
私は趙雲	です

原始字符串

在处理字符串时,如果想保留转义序列并且反斜杠字符不被解释,请在字符串前加上 r 或 R。这样可以确保原始字符串文字中的转义序列保持不变。

print('趙雲\n字:子龍')
趙雲
字:子龍

print(r'趙雲\n字:子龍')
趙雲\n字:子龍

print('趙雲\\字:子龍')
趙雲\字:子龍

print(R'趙雲\\字:子龍')
趙雲\\字:子龍

三引号字符串

在Python中,还有一种使用三引号(单引号或双引号)来分隔字符串的方法。这种方法可以包含单引号、双引号和换行符,而无需对它们进行转义。

print('''趙雲 "字:'子龍''')
趙雲 "字:'子龍

print("""趙雲
字:
子龍""")
趙雲
字:
子龍

布尔类型

布尔类型表示逻辑值,只有两个取值:TrueFalse。布尔类型通常用于条件判断、循环控制等场景。以下是一些布尔类型的例子:

l = True
m = False

print(type(True))
<class 'bool'>

print(type(False))
<class 'bool'>

判断一个数是否为偶数。

num = 6
is_even = (num % 2 == 0)
print("是否为偶数:", is_even)

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

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

相关文章

【华为新版模拟器eNSP Lite实验界面一览,赶紧来学习】

eNSP Lite是华为新开发的数据通信领域网络环境模拟软件&#xff0c;用于支持数通领域的考试认证、网络环境模拟和技术学习而开发的新版模拟器。相比于旧版模拟器eNSP的本地部署模式&#xff0c;新版模拟器eNSP Lite基于云端部署的模式使得软件在使用的过程中变得更加灵活&#…

使用Socket技术进行数据传输、传输文件;浏览器访问Socket服务器

文章目录 计算机网络基础IP地址和端口TCP和 UDP Socket技术使用Socket进行数据传输使用Socket传输文件使用浏览器访问Socket服务器 计算机网络基础 利用通信线路和通信设备&#xff0c;将地理位置不同的、功能独立的多台计算机互连起来&#xff0c;以功能完善的网络软件来实现…

Visual Studio 2022 v17.6 正式发布

Visual Studio 17.6 正式发布&#xff0c;这个最新版本提供了一系列强大的工具和功能&#xff0c;旨在使你能够制作出最先进的应用程序。 提高生产力 通过 Visual Studio 2022&#xff0c;目标是帮助你在更短的时间内完成 IDE 内的所有开发任务&#xff0c;在这个版本中&…

Vue3 QQ登录

Vue3 QQ登录 开发前需要去 QQ互联平台申请认证&#xff0c;创建应用 拿到对应的APPID、APPKey 一、引用QQjsdk 1、可直接引用 QQjsdk //绑定对应的APPID跟页面回调地址 <script type"text/javascript" charset"utf-8" src"https://connect.qq…

图像识别和计算机视觉:如何应用人工智能技术实现自动化检测和识别

章节一&#xff1a;引言 在数字化时代&#xff0c;图像数据成为了我们日常生活中不可或缺的一部分。然而&#xff0c;随着图像数据的急剧增加&#xff0c;传统的手动处理和分析方法已经无法满足我们的需求。这就引出了图像识别和计算机视觉技术的重要性。本文将介绍人工智能技…

程序员降薪40%去国企,只因要35岁了!值得吗?

说到程序员&#xff0c;大家首先想到的就是“高薪”&#xff0c;“有实力”&#xff0c;程序员是个比较吃香的职业&#xff0c;发展前景和薪资待遇都非常可观。 但是在程序员的世界里&#xff0c;一直有一个传言&#xff0c;35岁是技术人的天花板。这个观点&#xff0c;无意中…

君正X2000 Linux SDK

一、测试所用的硬件 深圳君正开发板&#xff1a;PD_X2000_EVB_CORE_V1P1 二、SDK源码下载 参考君正官方教程&#xff1a;君正全平台linux源码同步教程&#xff08;除X1830人脸识别板&#xff09;_君正a1n linux_北京君正的博客-CSDN博客 教程中要求的系统为Ubuntu20.4&#…

批量提取某音文案

牙叔教程 简单易懂 我想学习某个人的文案, 怎么把它的文案全下载下来? 批量下载视频和音频批量音频转文字 下载视频和音频 我在github找到的是这个仓库 GitHub - Johnserf-Seed/TikTokDownload: 抖音去水印批量下载用户主页作品、喜欢、图文、音频 经过实际测试, 可以使用,…

[FMC149】基于VITA57.1标准的16通道65MSPS 14位直流耦合AD采集FMC子卡

板卡概述 FMC149是一款16通道65MHz采样率14位直流耦合AD采集FMC子卡&#xff0c;符合VITA57.1规范&#xff0c;可以作为一个理想的IO模块耦合至FPGA前端&#xff0c;16通道AD通过FMC连接器&#xff08;HPC&#xff09;连接至FPGA从而大大降低了系统信号延迟。 该板卡支持板上可…

【STL】vector的模拟实现

目录 前言 结构解析 构造析构 构造 默认构造 初始化成 n 个 val 以迭代器区间构造 拷贝构造 析构 运算符重载 赋值重载 下标访问 迭代器 const迭代器 容量操作 查看大小和容量 容量修改 数据修改 尾插尾删 指定位置插入和删除 insert erase 清空 判空 …

Redis系列--主从复制

一、redis主从复制介绍 在 Redis 复制的基础上&#xff0c;使用和配置主从复制非常简单&#xff0c;能使得从 Redis 服务器&#xff08;下文称 slave&#xff09;能精确得复制主 Redis 服务器&#xff08;下文称 master&#xff09;的内容。每次当 slave 和 master 之间的连接断…

chatGpt 对前端的开发帮助

chatGpt 是 什么&#xff1f; ChatGPT是一个基于GPT-3的聊天机器人&#xff0c;可以用来帮助前端开发人员解决各种问题。它可以回答关于前端开发的各种问题&#xff0c;包括HTML、CSS、JavaScript、React、Vue等等。它可以提供代码片段、示例代码、文档链接等等&#xff0c;帮助…

javascript 创建 array

javascript 创建 array 补一下笔记&#xff0c;constructor 这块之前还真没怎么太琢磨过…… 最常见的就是 literal array syntax: const arr1 [1, 2, 3];console.log(arr1);这是最主流的用法&#xff0c;也是目前最推荐的用法&#xff0c;原因有以下几点&#xff1a; 这是…

SOLIDWORKS 30个使用技巧

很多人在学习SolidWorks时&#xff0c;会有很多疑问&#xff0c;都不知道如何解答&#xff0c;所以走了很多弯路。今天&#xff0c;我们就来讲讲在学习SolidWorks中的那些小技巧吧&#xff01; 1、按“空格键&#xff1a;”弹出快捷菜单双击某一视图&#xff0c;模型将转向某一…

3分钟带你入门接口自动化测试(建议收藏)

接口测试简介 1&#xff09; 什么是接口测试 开始学习接口自动化测试之前&#xff0c;我们先要来了解什么是接口&#xff0c;以及什么是接口测试。 我们都知道&#xff0c;测试从级别上划分可以分为 ◆ 组件测试 ◆ 集成测试 ◆ 系统测试 ◆ 验收测试 其中在集成测试这个…

Vue3系列——computed、watch

目录 Computed watch 侦听单个数据 侦听多个数据 immediate deep 精确侦听对象的某个属性 Computed 计算属性computed是依赖于使用它的数据&#xff0c;当数据发生变化时&#xff0c;自定义方法重新调用执行一次计算属性&#xff0c;监测的是依赖值&#xff0c;依赖值不…

GPT专业应用:生成会议通知

正文共 917 字&#xff0c;阅读大约需要 3 分钟 公务员/文秘必备技巧&#xff0c;您将在3分钟后获得以下超能力&#xff1a; 快速生成会议通知 Beezy评级 &#xff1a;B级 *经过简单的寻找&#xff0c; 大部分人能立刻掌握。主要节省时间。 推荐人 | Kim 编辑者 | Linda ●图…

Qt6之万能数据类型QVariant详解

QVariant&#xff0c;被称为万能数据类型&#xff0c;实际上它是类似C的联合union类型。简单的说自定义性能强就像一个盒子几乎可以让你放任意的qt类型&#xff0c;同时可以轻松构造任意类型的任意复杂数据结构&#xff0c;但请注意复杂类型意味着性能和效率的让步。 qt6在文档…

好的CRM系统拥有哪些功能

随着客户对企业的重要性越来越高&#xff0c;他们需要一款好用的CRM系统来帮助他们管理客户、销售管道和营销活动。那么国内目前比较好的CRM系统有哪些&#xff1f;下面我们来详细说一下。 国内有很多知名的CRM系统&#xff0c;从本土品牌到国际厂商都有。选择 CRM以高性价比、…

永久免费域名PP.UA最新注册指南

PP.UA是乌克兰个人的域名&#xff0c;支持CF托管&#xff0c;可用于建站或者个人代理用&#xff0c;其永久免费&#xff08;每年续期即可&#xff09;。不过网上关于这个免费域名的申请教程已经全部过期了&#xff0c;多数都是2021年的&#xff0c;本次我来做一个最新的可用教程…