【深度学习】 Python 和 NumPy 系列教程(二):Python基本数据类型:3、字符串(索引、切片、运算、格式化)

目录

一、前言

二、实验环境

三、Python基本数据类型

3. 字符串(Strings)

1. 初始化

2. 索引

3. 切片

4. 运算

a. 拼接运算

b. 复制运算

c. 子串判断

d. 取长度

5. 格式化

a. 使用位置参数

b. 使用关键字参数

c. 使用属性访问

f-string方法


一、前言

        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的基本数据类型包括:

  1. 整数(int):表示整数值,例如1、2、-3等。
  2. 浮点数(float):表示带有小数点的数值,例如3.14、2.5等。
  3. 布尔值(bool):表示真(True)或假(False)的逻辑值。
  4. 字符串(str):表示文本数据,使用引号(单引号或双引号)括起来,例如"Hello"、'Python'等。
  5. 列表(list):表示一组有序的元素,可以包含不同类型的数据,用方括号括起来,例如[1, 2, 3]、['apple', 'banana', 'orange']等。
  6. 元组(tuple):类似于列表,但是不可修改,用圆括号括起来,例如(1, 2, 3)、('apple', 'banana', 'orange')等。
  7. 集合(set):表示一组唯一的元素,用大括号括起来,例如{1, 2, 3}、{'apple', 'banana', 'orange'}等。
  8. 字典(dict):表示键值对的映射关系,用大括号括起来,例如{'name': 'John', 'age': 25}等。

3. 字符串(Strings)

        字符串(Strings)是Python中的另一个基本数据类型,用于表示文本数据。字符串由一系列字符组成,并且可以使用单引号或双引号括起来。例如:"Hello World"是一个字符串。

        字符串可以进行多种操作,例如连接(通过加号运算符)、切片(通过索引和切片操作符)、长度计算(通过len()函数)等。还可以使用各种字符串方法来处理和转换字符串。

        字符串在Python中是不可变的,这意味着一旦创建了一个字符串对象,就不能修改它的值。但是可以通过字符串的方法和操作来创建新的字符串对象。

        字符串在Python中是非常常用的数据类型,用于处理文本数据、表示文件路径、存储用户输入等。它们提供了丰富的功能和操作,使得处理文本数据变得方便而高效。

1. 初始化

        字符串可以使用单引号或双引号括起来进行初始化。

str1 = 'Hello World'
str2 = "Python is awesome"

2. 索引

        可以使用索引操作符(方括号)来访问字符串中的单个字符。字符串的索引从0开始,最左边的字符索引为0,依次递增。例如,可以使用以下方式获取字符串中的字符:

str1 = 'Hello World'
print(str1[0])  # 输出:H
print(str1[6])  # 输出:W

3. 切片

  • 模式:<字符串>[begin: end: step]
    • ­左闭右开:以step为步长,取beginend-1处的全部元素
    • ­step的正负性代表了方向:当step为负时,需要反向输出
    • ­缺省值begin=0end=len(<字符串>)step=1

        可以使用切片操作符(冒号)来获取字符串的子串。切片操作可以指定起始索引和结束索引,其中起始索引包含在切片中,而结束索引不包含在切片中。例如,可以使用以下方式获取字符串的子串:

str1 = 'Hello World'
print(str1[0:5])      # 输出:Hello
print(str1[6:])       # 输出:World
print(str1[0:10:2])   # 输出:HloWr

4. 运算

a. 拼接运算

        可以使用加号运算符(+)将两个字符串进行拼接。

str1 = 'Hello'
str2 = 'World'
result = str1 + ' ' + str2
print(result)  # 输出:Hello World

b. 复制运算

        可以使用乘号运算符(*)将一个字符串复制多次。

str1 = 'Hello'
result = str1 * 3
print(result)  # 输出:HelloHelloHello

c. 子串判断

        可以使用innot in运算符来判断一个字符串是否是另一个字符串的子串。例如:

str1 = 'Hello World'
print('Hello' in str1)  # 输出:True,'Hello'是'Hello World'的子串
print('abc' not in str1)  # 输出:True,'abc'不是'Hello World'的子串

d. 取长度

        可以使用len()函数获取一个字符串的长度,即字符串中字符的个数。例如:

str1 = 'Hello World'
length = len(str1)
print(length)  # 输出:11

5. 格式化

        可以使用字符串的format()方法将变量的值插入到字符串中。可以使用占位符(花括号)来指定插入变量的位置。例如:

name = 'Alice'
age = 25
message = 'My name is {} and I am {} years old.'.format(name, age)
print(message)  # 输出:My name is Alice and I am 25 years old.

        字符串的格式化可以使用槽格式控制来实现。槽是占位符,用于指定在格式化字符串中的变量值应该插入的位置。在槽中可以使用索引、关键字参数和属性访问等方式来控制格式化的方式。

        以下是几种常见的槽格式控制方法:

a. 使用位置参数

        可以使用索引来指定要插入的变量的位置。

name = 'Alice'
age = 25
message = 'My name is {0} and I am {1} years old.'.format(name, age)
print(message)  # 输出:My name is Alice and I am 25 years old.

b. 使用关键字参数

        可以使用变量名作为关键字参数来指定要插入的变量。

name = 'Alice'
age = 25
message = 'My name is {name} and I am {age} years old.'.format(name=name, age=age)
print(message)  # 输出:My name is Alice and I am 25 years old.

c. 使用属性访问

        如果要格式化的变量是对象的属性,可以使用点号(.)来访问属性。例如:

class Person:def __init__(self, name, age):self.name = nameself.age = ageperson = Person('Alice', 25)
message = 'My name is {p.name} and I am {p.age} years old.'.format(p=person)
print(message)  # 输出:My name is Alice and I am 25 years old.

f-string方法

        此外,还可以使用更高级的格式化方法,如f-string。f-string是Python 3.6及更高版本引入的一种字符串格式化方法,使用起来更加简洁和方便。

name = 'Alice'
age = 25
message = f'My name is {name} and I am {age} years old.'
print(message)  # 输出:My name is Alice and I am 25 years old.

  

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

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

相关文章

计算机毕设之基于Hadoop+springboot的物品租赁系统的设计与实现(前后端分离,内含源码+文档+教程)

该系统基于Hadoop平台&#xff0c;利用Java语言、MySQL数据库&#xff0c;结合目前流行的 B/S架构&#xff0c;将物品租赁管理的各个方面都集中到数据库中&#xff0c;以便于用户的需要。在确保系统稳定的前提下&#xff0c;能够实现多功能模块的设计和应用。该系统由管理员功能…

Mybatis 框架 ( 四 ) QueryWrapper

4.5.Wrapper条件构造器 Wrapper &#xff1a; 条件构造抽象类&#xff0c;最顶端父类 AbstractWrapper &#xff1a; 用于查询条件封装&#xff0c;生成 sql 的 where 条件 QueryWrapper &#xff1a; Entity 对象封装操作类&#xff0c;不是用lambda语法 UpdateWrapper &am…

android注解之APT和javapoet

前言 前面我们已经讲过注解的基本知识&#xff0c;对于注解还不太了解的&#xff0c;可以去看一下之前的文章&#xff0c; android 注解详解_袁震的博客-CSDN博客。 之前我们在讲注解的时候&#xff0c;提到过APT和JavaPoet&#xff0c;那么什么是APT和JavaPoet呢&#xff1…

【Mysql】Mysql获取排班时间段中的休息时间段方法

在MySQL中&#xff0c;可以使用自连接&#xff08;self-join&#xff09;来获取上一条记录的结束时间和下一条记录的开始时间&#xff0c;并将它们组合成一条记录。首先&#xff0c;需要为表创建一个包含记录ID和时间信息的临时表&#xff0c;然后使用自连接获取相邻记录的时间…

【面试经典150 | 数组】移除元素

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;原地操作 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等…

【STM32】常用存储器

常用存储器 RAM 存储器 RAM 是“Random Access Memory”的缩写&#xff0c;被译为随机存储器。所谓“随机存取”&#xff0c;指的是当存储器中的消息被读取或写入时&#xff0c;所需要的时间与这段信息所在的位置无关。而RAM可随读取其内部任意地址的数据&#xff0c;时间都是…

若依框架i18n国际化

需求背景 项目需求要做国际化&#xff0c;结果网上找了好几篇文章&#xff0c;没有一个可以一次性搞定&#xff0c;现在这里总结一下。首先&#xff0c;我们分为两部分处理&#xff0c;一个是前端页面的静态文字&#xff0c;这个由前端vue.json自行处理。第二部分就是后端的错…

Qt下SVG格式图片应用

SVG格式图片介绍 svg格式图片又称矢量图&#xff0c;该种格式的图片不同于png等格式的图片&#xff0c;采用的并不是位图的形式来组织图片&#xff0c;而是采用线条等组织图片&#xff0c;svg格式是图片的文件格式是xml&#xff0c;可以通过文件编译器打开查看svg格式内容。 …

使用Vagrant创建和管理本地Kubernetes(K8s)集群的步骤是什么

文章目录 步骤1&#xff1a;准备环境步骤2&#xff1a;创建Vagrantfile步骤3&#xff1a;启动虚拟机步骤4&#xff1a;安装Kubernetes步骤5&#xff1a;配置Kubernetes网络插件步骤6&#xff1a;将Worker节点加入集群步骤7&#xff1a;验证集群步骤8&#xff1a;部署应用步骤9&…

综合续航达1040公里:腾势计划2024年在香港上市,售价60-100 万

腾势汽车表示&#xff0c;他们计划于2024年在香港地区上市全新的D9车型。这款中大型高端新能源MPV是通过DM-i超级混动技术打造的&#xff0c;由于综合续航能力达到1040公里&#xff0c;且纯电续航最大可达190公里&#xff0c;这款车已经引起了广泛关注。据腾势销售事业部总经理…

[小尾巴 UI 组件库] 全屏响应式轮播背景图(基于 Vue 3 与 Element Plus)

文章归档于&#xff1a;https://www.yuque.com/u27599042/row3c6 组件库地址 npm&#xff1a;https://www.npmjs.com/package/xwb-ui?activeTabreadme小尾巴 UI 组件库源码 gitee&#xff1a;https://gitee.com/tongchaowei/xwb-ui小尾巴 UI 组件库测试代码 gitee&#xff1a…

在ExoPlayer中使用协程:构建强大的Android媒体播放器

在ExoPlayer中使用协程&#xff1a;构建强大的Android媒体播放器 现今的移动应用世界中&#xff0c;媒体消费是用户体验的核心部分。无论是流媒体视频、音乐播放还是处理自适应媒体格式&#xff0c;强大的媒体播放器对于提供无缝和愉悦的用户体验至关重要。而在安卓平台上&…

C高级day4循环语句

1&#xff0c;思维导图 运行结果为&#xff1a; 运行结果为&#xff1a;

CSS读书笔记

——————————————精华部分—————————————— 1、选择器 &#xff08;1&#xff09;基本选择器&#xff1a; 标签选择器 body{} 类选择器 class .class名称{} ID选择器 id #id名称{} 优先级&#xff1a;ID选择器 > 类选择器 > 标签选择器 &am…

cf 交互题

今天cf遇到了交互题&#xff0c;这个交互题的算法很很很简单&#xff0c;但是在交互上卡了&#xff0c;导致交上的代码都不算罚时。&#xff08;更伤心了。 所以&#xff0c;现在写一下交互题的做法&#xff0c;印象深刻嘛。 交互题&#xff0c;就是跟机器进行交互。你代码运…

道路积水监测-路面积水监测系统

随着城市化的不断发展&#xff0c;城市面临着越来越多的交通挑战&#xff0c;其中之一就是道路积水问题。道路积水不仅影响了交通安全&#xff0c;还会引发交通堵塞、交通事故和城市洪涝等问题。因此&#xff0c;开展道路积水监测是十分必要的。 城市排水、供水、燃气、供热、桥…

基于大规模MIMO通信系统的半盲信道估计算法matlab性能仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 %EM算法收敛所需的迭代 nIter 1; Yp Y(:,1:L_polit,:); %与导频序列相对应的部分 q…

建议收藏!TCP协议面试灵魂12 问

先亮出这篇文章的思维导图: TCP 作为传输层的协议&#xff0c;是一个IT工程师素养的体现&#xff0c;也是面试中经常被问到的知识点。在此&#xff0c;我将 TCP 核心的一些问题梳理了一下&#xff0c;希望能帮到各位。 001. 能不能说一说 TCP 和 UDP 的区别&#xff1f; 首先…

如何查询成绩或工资

为什么每次查询成绩或者工资的时候都觉得麻烦又耗时呢&#xff1f;在过去&#xff0c;我们可能需要去学校或公司的相关部门&#xff0c;填写繁琐的表格&#xff0c;然后等待工作人员进行查询和处理。这不仅浪费了我们宝贵的时间&#xff0c;还可能出现查询结果不准确或者遗漏的…