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.hqwc.cn/news/593424.html

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

相关文章

挖一挖:PostgreSQL Java里的double类型存储到varchar精度丢失问题

前言 大概故事是这样的,PostgreSQL数据库,表结构: create table t1(a varchar);然后使用标准的Java jdbc去插入数据,其基本代码如下: import java.sql.*; public class PgDoubleTest {public static void main(Stri…

聊聊测试用例评审流程

测试人员将需求熟悉完成后,开始编写相应的测试用例,待测试用例编写完成后只是测试用例完成前的第一步,后边的流程需要组织线上或线下评审会议等等。 首先要了解测试用例评审的最终目的是什么:提高测试用例的质量和覆盖率&#xff…

学浪里面的视频怎么保存到本地

很多人都在学浪里面买了课程,可是却找不到下载学浪课程的方法,这里Leo小黑教大家如何把学浪里购买的视频课程下载下来 注意:此方法不可以下载直播回放 1.解压我给大家准备的小浪助手.exe 2.打开小浪助手.exe 3.要是有抖音账号和学浪绑定的手机账号一样那就可以直接…

3.6k star, 免费开源跨平台的数据库管理工具 dbgate

3.6k star, 免费开源跨平台的数据库管理工具 dbgate 分类 开源分享 项目名: dbgate -- 免费开源跨平台的数据库管理工具 Github 开源地址: GitHub - dbgate/dbgate: Database manager for MySQL, PostgreSQL, SQL Server, MongoDB, SQLite and others. Runs under…

Python如何解决“滑动拼图”验证码(8)

前言 本文是该专栏的第67篇,后面会持续分享python爬虫干货知识,记得关注。 做过爬虫项目的同学,或多或少都会接触到一些需要解决验证码才能正常获取数据的平台。 在本专栏之前的文章中,笔者有详细介绍通过python来解决多种“验证码”(点选验证,图文验证,滑块验证,滑块…

【Java笔记】多线程0:JVM线程是用户态还是内核态?Java 线程与OS线程的联系

文章目录 JVM线程是用户态线程还是内核态线程什么是用户态线程与内核态线程绿色线程绿色线程的缺点 线程映射稍微回顾下线程映射模型JVM线程映射 线程状态操作系统的线程状态JVM的线程状态JVM线程与OS线程的状态关系 Reference 今天复盘一下Java中,JVM线程与实际操作…

全流程基于GIS、python机器学习技术的地质灾害风险评价与信息化建库应用

入门篇,ArcGIS软件的快速入门与GIS数据源的获取与理解;方法篇,致灾因子提取方法、灾害危险性因子分析指标体系的建立方法和灾害危险性评价模型构建方法;拓展篇,GIS在灾害重建中的应用方法;高阶篇&#xff1…

(三)LTspice学习交流分析

文章目录 前言一、Edit simulation cmd二、添加激励总结 前言 上一节我们学习了LTspice的安装,很简单,无脑安装 (一)LTspice简介 (二)LTspice学习之简介2 今天我们来学习一下LTspice另一个非常重要的仿真功…

改进YOLO:YOLOv8结合swin transformer

目录 1、修改yaml文件 2、添加 SwinTransformer.py 3、修改 tasks.py 4、根目录增加文件 1、修改yaml文件 修改 ultralytics/cfg/models/v8/yolov8.yaml backbone:# [from, repeats, module, args]- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2- [-1, 1, Conv, [128, 3, 2]] #…

node.js的模块化 与 CommonJS规范

一、node.js的模块化 (1)什么是模块化? 将一个复杂的程序文件依据一定的规则拆分成为多个文件的过程就是模块化 在node.js中,模块化是指把一个大文件拆分成独立并且相互依赖的多个小模块,将每个js文件被认为单独的一个模块;模块…

【C++】vector问题解决(非法的间接寻址,迭代器失效 , memcpy拷贝问题)

送给大家一句话: 世界在旋转,我们跌跌撞撞前进,这就够了 —— 阿贝尔 加缪 vector问题解决 1 前言2 迭代器区间拷贝3 迭代器失效问题4 memcpy拷贝问题 1 前言 我们之前实现了手搓vector,但是当时依然有些问题没有解决&#xff…

异地组网怎么管理?

在当今信息化时代,随着企业的业务扩张和员工的分布,异地组网已经成为越来越多企业的需求。异地组网管理相对来说是一项复杂而繁琐的任务。本文将介绍一种名为【天联】的管理解决方案,帮助企业更好地管理异地组网。 【天联】组网的优势 【天联…