python-基础篇-字符串、列表、元祖、字典-字符串

文章目录

    • 2.3字符串、列表、元祖、字典
      • 2.3.1字符串
        • 2.3.1.1字符串介绍
          • 2.3.1.1.1python中字符串的格式:
          • 2.3.1.1.2字符串在内存中的存储方式
        • 2.3.1.2字符串的输入输出
          • 2.3.1.2.1字符串输出
          • 2.3.1.2.2字符串输入
          • 2.3.1.2.3组字符串的方式
        • 2.3.1.3下标和切片
          • 2.3.1.3.1下标索引
          • 2.3.1.3.2切片
        • 2.3.1.4字符串常见操作
          • 2.3.1.4.1find
          • 2.3.1.4.2rfind
          • 2.3.1.4.3index
          • 2.3.1.4.4rindex
          • 2.3.1.4.5count
          • 2.3.1.4.6replace
          • 2.3.1.4.7split
          • 2.3.1.4.8capitalize
          • 2.3.1.4.9title
          • 2.3.1.4.10startswith
          • 2.3.1.4.11endswith
          • 2.3.1.4.12lower
          • 2.3.1.4.13upper
          • 2.3.1.4.14ljust
          • 2.3.1.4.15rjust
          • 2.3.1.4.16center
          • 2.3.1.4.17lstrip
          • 2.3.1.4.18rstrip
          • 2.3.1.4.19strip
          • 2.3.1.4.20partition
          • 2.3.1.4.21rpartition
          • 2.3.1.4.22splitlines
          • 2.3.1.4.23isalpha
          • 2.3.1.4.24isdigit
          • 2.3.1.4.25isalnum
          • 2.3.1.4.26isspace
          • 2.3.1.4.27join

2.3字符串、列表、元祖、字典

2.3.1字符串

2.3.1.1字符串介绍
2.3.1.1.1python中字符串的格式:

如下定义的变量a,存储的是数字类型的值
a = 100
如下定义的变量b,存储的是字符串类型的值
b = “hello itcast.cn”
或者
b = ‘hello itcast.cn’

小总结:
双引号或者单引号中的数据,就是字符串

2.3.1.1.2字符串在内存中的存储方式

在这里插入图片描述

在python中,字符串以字符形式存在内存中,一个字符占1个字节。字符串“100”在内存中占3个字节和一个”\0”共四个字节(其中“\0是底层c语句的知识”)。数字在内存中占1个字节(1个字节可以存储0-255的任意一个数值)。

2.3.1.2字符串的输入输出
2.3.1.2.1字符串输出
    name = 'xiaoming'position = '讲师'address = '北京市昌平区建材城西路金燕龙办公楼1层'print('--------------------------------------------------')print("姓名:%s"%name)print("职位:%s"%position)print("公司地址:%s"%address)print('--------------------------------------------------')
结果:--------------------------------------------------姓名: xiaoming职位: 讲师公司地址: 北京市昌平区建材城西路金燕龙办公楼1--------------------------------------------------
2.3.1.2.2字符串输入

注意:input获取的数据,都以字符串的方式进行保存,即使输入的是数字,那么也是以字符串方式保存

    userName = input('请输入用户名:')print("用户名为:%s"%userName)password = input('请输入密码:')print("密码为:%s"%password)
结果:(根据输入的不同结果也不同)请输入用户名:dongGe用户名为: dongGe请输入密码:haohaoxuexitiantianxiangshang密码为: haohaoxuexitiantianxiangshang
2.3.1.2.3组字符串的方式

“+”直接拼接
给字符串格式化

# Author:csz
a='lao'
b='wang'
c=a+b
print(c)  #字符串拼接A=100
B=200
C=A+B
print(C)  #数值相加conlecttionStr1="======"+a+b+"======"
print(conlecttionStr1)  #字符串拼接1conlecttionStr2="======%s======"%(a+b)
print(conlecttionStr1)  #字符串拼接2
结果:
laowang
300
======laowang======
======laowang======
2.3.1.3下标和切片
2.3.1.3.1下标索引

所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间
字符串中"下标"的使用:
列表与元组支持下标索引好理解,字符串实际上就是字符的数组,所以也支持下标索引。
如果有字符串:name = ‘abcdef’,在内存中的实际存储如下:
在这里插入图片描述

如果想取出部分字符,那么可以通过下标的方法,(注意python中下标从 0 开始)

# Author:csz
name = 'abcdef'
print(name[0])
print(name[1])
print(name[2])
运行结果: 
a
b
c
2.3.1.3.2切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长]
注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。
如果取出一部分,则可以在中括号[]中。

name = 'abcdef'
print(name[3:5])    # 取下标为3、4 的字符
print(name[2:])     # 取下标为2到最后一个的字符
print(name[1:-1])   #取 标为1开始 到 最后第2个之间的字符
print(name[-1])     #取最后第一个字符
print(name[1:5:2])  #第一个为起始位置,第二个为终止点,第三个参数为步长

结果:

de
cdef
bcde
f
bd

demo:给定一个字符串aStr, 请反转字符串
方式一:

name = 'abcdef'
i = len(name)-1
while i>0:ch1 = str(name[i])print("%s\t"%ch1,end="")i-=1
结果:
f	e	d	c	b	

方式二:

name = 'abcdef'print(name[-1:0:-1])
print(name[-1::-1])
print(name[::-1])
print(name[-1:-3:-1])
结果:
fedcb
fedcba
fedcba
fe
2.3.1.4字符串常见操作

如有字符串mystr = ‘hello world itcast and itcastcpp’,以下是常见的操作
根据一下操作,可以查处字符串的方法
在这里插入图片描述

2.3.1.4.1find

检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1
mystr.find(str, start=0, end=len(mystr))
在这里插入图片描述

2.3.1.4.2rfind

类似于 find()函数,不过是从右边开始查找.
mystr.rfind(str, start=0,end=len(mystr) )

2.3.1.4.3index

跟find()方法一样,只不过如果str不在 mystr中会报一个异常.
mystr.index(str, start=0, end=len(mystr))
在这里插入图片描述

2.3.1.4.4rindex

类似于 index(),不过是从右边开始.
mystr.rindex( str, start=0,end=len(mystr))

2.3.1.4.5count

返回 str在start和end之间 在 mystr里面出现的次数
mystr.count(str, start=0, end=len(mystr))
在这里插入图片描述

2.3.1.4.6replace

把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.
mystr.replace(str1, str2, mystr.count(str1))
在这里插入图片描述

数字、字符串、元组为不可变类型,替换后不会改变原字符串的值,只会重新生成一个变量的值。
在这里插入图片描述

2.3.1.4.7split

以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串
mystr.split(str=" ", 2)
在这里插入图片描述在这里插入图片描述

2.3.1.4.8capitalize

把字符串的第一个字符大写
mystr.capitalize()

2.3.1.4.9title

把字符串的每个单词首字母大写
在这里插入图片描述

2.3.1.4.10startswith

检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False
mystr.startswith(obj)
在这里插入图片描述

2.3.1.4.11endswith

检查字符串是否以obj结束,如果是返回True,否则返回 False.
mystr.endswith(obj)
在这里插入图片描述

2.3.1.4.12lower

转换 mystr 中所有大写字符为小写
mystr.lower()

2.3.1.4.13upper

转换 mystr 中的小写字母为大写
mystr.upper()

2.3.1.4.14ljust

返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
mystr.ljust(width)

2.3.1.4.15rjust

返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
mystr.rjust(width)

2.3.1.4.16center

返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
mystr.center(width)
在这里插入图片描述

2.3.1.4.17lstrip

删除 mystr 左边的空白字符
mystr.lstrip()

2.3.1.4.18rstrip

删除 mystr 字符串末尾的空白字符
mystr.rstrip()

2.3.1.4.19strip

删除mystr字符串两端的空白字符
在这里插入图片描述

2.3.1.4.20partition

把mystr以str分割成三部分,str前,str和str后
mystr.partition(str)
在这里插入图片描述

2.3.1.4.21rpartition

类似于 partition()函数,不过是从右边开始.
mystr.rpartition(str)
在这里插入图片描述

2.3.1.4.22splitlines

按照行分隔,返回一个包含各行作为元素的列表
mystr.splitlines()
在这里插入图片描述

2.3.1.4.23isalpha

如果 mystr 所有字符都是字母 则返回 True,否则返回 False
mystr.isalpha()

2.3.1.4.24isdigit

如果 mystr 只包含数字则返回 True 否则返回 False.
mystr.isdigit()

2.3.1.4.25isalnum

如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False
mystr.isalnum()
在这里插入图片描述

2.3.1.4.26isspace

如果 mystr 中只包含空格,则返回 True,否则返回 False.
mystr.isspace()
在这里插入图片描述

2.3.1.4.27join

mystr 中每个字符后面插入str,构造出一个新的字符串
mystr.join(str)
在这里插入图片描述

面试题:(面试题)给定一个字符串aStr,返回使用空格或者’\t’分割后的倒数第二个子串

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Android 系统大致启动流程

Android启动流程大体为:BootRom -> BootLoader -> Kernel -> Init -> Zygote -> SystemServer ->Launcher 1、Loader层 1.1、Boot ROM 电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行&#xff0…

Unity入门

Unity入门学习 知识概述: Unity环境搭建 1.Unity引擎是什么 2.软件下载安装 下载最新的长期支持版即可 3.新工程和工程文件夹 Unity界面基础 1.Scene场景和Hierachy层级窗口 练习: 2.Game游戏和Project工程 3.Inspector检查和Console控制台 练习&#…

医疗器械5G智能制造工厂数字孪生可视化平台,推进行业数字化转型

医疗设备5G智能制造工厂数字孪生可视化平台,推进行业数字化转型。在数字化浪潮的推动下,医疗设备行业正迎来一场深刻的变革。5G技术的崛起,智能制造工厂的兴起,以及数字孪生可视化平台的出现,正在共同推动医疗设备行业…

Xshell Plus 详细安装教程以及附带使用图文教程

一、下载 Xshell Plus 6 完成后,请按照下面教程操作 1、下载 Xshell Plus 6 完成后,并解压 zip 包: 2、进入解压后的文件夹后,如果你之前安装了 Xshell, 先点击 !卸载.bat 卸载 xshell, 然后再点击 !绿化.bat; 如果是…

二分答案(砍树,借教室)

二分的两种情况附代码&#xff1a; 二分查找条件&#xff1a;单调&#xff0c;二段性 例题1&#xff1a;P1873 [COCI 2011/2012 #5] EKO / 砍树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 上代码&#xff1a; #include<bits/stdc.h> using namespace std; const …

校招说明书

3400字的详细说明&#xff0c;介绍了程序员类岗位校招的整体时间节点和招聘流程。还对一些常见的问题进行讨论&#xff0c;例如内推、offer和三方、实习等。 第一章介绍基本的术语&#xff0c;第二章介绍整个校招的重要流程及时间点&#xff0c;然后第三章介绍每次招聘要经过的…

MySql 实战大数据查询-(表分区实现)

一 mysql分区&#xff1a; 分区是将单个表按照某种规则划分成多个子集&#xff0c;每个子集称为一个分区。常见的分区策略包括按照时间范围、范围值、列表等进行分区。 优点&#xff1a; 查询性能更好&#xff0c;涉及分区键的查询&#xff0c;数据库引擎可以只扫描特定分区&…

易宝OA ExecuteQueryForDataSetBinary SQL注入漏洞复现

0x01 产品简介 易宝OA系统是一种专门为企业和机构的日常办公工作提供服务的综合性软件平台,具有信息管理、 流程管理 、知识管理(档案和业务管理)、协同办公等多种功能。 0x02 漏洞概述 易宝OA ExecuteQueryForDataSetBinary 接口处存在SQL注入漏洞,未经身份认证的攻击者…

Word中插入Endnote参考文献时显示乱码

近期在写文章需要插入参考文献&#xff0c;使用Endnote插入时显示乱码&#xff0c;如下图所示&#xff1a; 文章末尾显示{ADDIN EN REFILIST } 解决方法 在网上找了诸多方法尝试也没有解决&#xff0c;最终找到一篇博客介绍了一种方法&#xff1a; word选项—高级&#xff1…

openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint

文章目录 openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint256.1 功能描述256.2 语法格式256.3 参数说明 openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint 256.1 功能描述 设置本次查询执行内生效的…

LAN和WAN, 调制解调器, 路由器,交换机 区别

LAN LAN&#xff08;Local Area Network&#xff09;是指在相对较小的地理范围内&#xff08;如办公室、学校、实验室、家庭等&#xff09;连接在一起的计算机和网络设备的集合。LAN通常由路由器、交换机、网线、无线路由器等设备组成&#xff0c;用于连接多台计算机、打印机、…

react状态管理库---zustand

一个简单的&#xff0c;快速的状态管理解决方案&#xff0c;api设计基于函数式和hooks 安装&#xff1a; npm install zustand 基础使用 让我们实现一个非常简单的计数器案例完成我们的第一个store 1- 创建一个counterStore create( ) 有三个参数&#xff1a;函数、布尔值…

Leetcode - 127双周赛

目录 一&#xff0c;3095. 或值至少 K 的最短子数组 I 二&#xff0c;3096. 得到更多分数的最少关卡数目 三&#xff0c;3097. 或值至少为 K 的最短子数组 II 四&#xff0c;3098. 求出所有子序列的能量和 一&#xff0c;3095. 或值至少 K 的最短子数组 I 本题需要知道一个知…

先进电气技术 —— (控制理论)何为稳定性?

一、系统稳定性 在控制理论中&#xff0c;系统稳定性是一个非常关键的概念&#xff0c;它主要涉及系统对外界扰动或内部变动的响应行为。以下是与系统稳定性相关的一些核心名词及其解释&#xff1a; 基本概念 稳定性&#xff08;Stability&#xff09; 系统稳定性是指当系统受…

Midjourney艺术家分享|By Moebius

Moebius&#xff0c;本名让吉拉德&#xff08;Jean Giraud&#xff09;&#xff0c;是一位极具影响力的法国漫画家和插画师&#xff0c;以其独特的科幻和幻想风格而闻名于世。他的艺术作品不仅在漫画领域内受到高度评价&#xff0c;也为电影、时尚和广告等多个领域提供了灵感。…

鸿蒙OS开发实例:【应用状态变量共享】

平时在开发的过程中&#xff0c;我们会在应用中共享数据&#xff0c;在不同的页面间共享信息。虽然常用的共享信息&#xff0c;也可以通过不同页面中组件间信息共享的方式&#xff0c;但有时使用应用级别的状态管理会让开发工作变得简单。 根据不同的使用场景&#xff0c;ArkT…

Redis 主从复制,哨兵模式,集群

目录 主从复制 主从复制 作用 缺陷 主从复制流程 实现Redis主从复制 哨兵模式 主从复制切换的缺点 哨兵的核心功能 哨兵模式原理 哨兵模式的作用 哨兵结构组成 故障转移机制 主节点的选举 实现哨兵模式 集群(Cluster) redis群集有三种模式&#xff0c;主从复制…

电脑硬件 -CPU

决定性能&#xff1a;CPU&#xff0c;内存&#xff0c;显卡&#xff0c;硬盘 保证性能&#xff1a;主板&#xff0c;电源&#xff0c;CPU散热器 英特尔&#xff1a;赛扬&#xff0c;奔腾&#xff0c;酷睿&#xff0c;至强&#xff08;从低到高&#xff09; 赛扬和奔腾&#…

电荷泵如何实现升压原来

电荷泵如何实现升压原来 某芯片自举栅极驱动内部原理图迪克森电荷泵 某芯片自举栅极驱动内部原理图 迪克森电荷泵 迪克森电荷泵&#xff08;Dickson Charge Pump&#xff09;是一种电压倍增器电路&#xff0c;可以将低电压升高到较高电压&#xff0c;相对于其他电压升压电路&a…

00-JAVA基础-反射机制

反射 什么是反射 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是Java语言的一个特性&#xff0c;它允许程序在运行时检查类、接口、字段和方法的信息。通过反射&#xff0c;Java代码能够动态地创建对象、调用方法、改变字段的值等&#xff0c;而无需在编译时…