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)  #字符串拼接1

conlecttionStr2="======%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’分割后的倒数第二个子串

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

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

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

相关文章

vscode 连接远程服务器 服务器无法上网 离线配置

离线配置 vscode 连接远程服务器 .vscode-server 1. .vscode-server下载 使用vscode连接远程服务器时会自动下载配置.vscode-server文件夹,如果远程服务器无法联网,则需要手动下载 1)网址:https://update.code.visualstudio.com…

AttributeError: ‘Text‘ object has no property ‘FontSize‘

在学习《机器学习理论与实践》——1 机器学习编程语言基础中,使用Matplotlib画图(在坐标轴或绘图区显示中文)时,产生AttributeError: Text object has no property FontSize 错误解决。 AttributeError: Text object has no prop…

响应跨域的两种方式

第一种: Configuration public class CorsConfication {Beanpublic CorsWebFilter corsWebFilter() {UrlBasedCorsConfigurationSource source new UrlBasedCorsConfigurationSource();CorsConfiguration corsConfiguration new CorsConfiguration();//1、配置跨…

【随笔】Git 高级篇 -- 整理提交记录(上)(十五)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

蓝桥集训之垒骰子

蓝桥集训之垒骰子 核心思想&#xff1a;矩阵乘法 f[i]存顶面数值 构造a矩阵 使得*f[i] f[i-1]a 则f[i] f[1] * an 快速幂优化 #include <iostream>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;const int N 6,m…

虚良SEO-蜘蛛池的作用与工作原理

蜘蛛池是一种SEO优化工具&#xff0c;其主要作用是吸引搜索引擎蜘蛛到特定网站进行爬行和索引&#xff0c;从而提高网站的可见性和排名。下面分别介绍蜘蛛池的作用和工作原理。 蜘蛛池的作用&#xff1a; 提高网站收录&#xff1a; 当一个网站新发布时&#xff0c;或者长时间…

Revit模型进入虚幻引擎UE5教程

一、背景 小伙伴们是否有Revit进入虚幻引擎交互的需求呢&#xff1f; 二、实现功能 1.Revit进入虚幻UE5,包含模型属性&#xff0c;材质等 2.实现BIM构件点选&#xff0c;高亮&#xff0c;属性展示 3.实现BIM模型分层显示&#xff0c;爆炸等效果 三、教程地址 教程&#x…

前端三剑客 —— CSS (第四节)

目录 内容回顾&#xff1a; 1.常见样式 2.特殊样式 特殊样式 过滤效果 动画效果 动画案例&#xff1a; 渐变效果 其他效果&#xff1a; 多列效果 字体图标&#xff08;icon&#xff09; 内容回顾&#xff1a; 1.常见样式 text-shadow x轴 y轴 阴影的模糊程度 阴影的…

C++设计模式:策略模式(二)

1、定义与动机 定义一系列算法&#xff0c;把它们一个个封装起来&#xff0c;并且使它们可互相替换&#xff08;变化&#xff09;&#xff0c;该模式使得算法可独立于使用它的客户程序&#xff08;稳定&#xff09;而变化&#xff08;扩展&#xff0c;子类化&#xff09; 在软…

【QT入门】 Qt代码创建布局综合运用:仿写腾讯会议登陆界面

往期回顾&#xff1a; 【QT入门】 Qt代码创建布局之水平布局、竖直布局详解-CSDN博客 【QT入门】 Qt代码创建布局之栅格布局详解-CSDN博客 【QT入门】 Qt代码创建布局之分裂器布局详解-CSDN博客 【QT入门】 Qt代码创建布局综合运用&#xff1a;仿写腾讯会议登陆界面 一、界面分…

YOLO V8-Detection 【单张图片】 推理详解及部署实现

前言 在实际处理过程中&#xff0c;我们使用YOLO V8进行推理时&#xff0c;通常会针对一张图片进行推理。如果需要对多张图片进行推理&#xff0c;则可以通过一个循环来实现对图片逐张进行推理。 单张图片推理时&#xff0c;需要注意图片的尺寸必须是32的倍数&#xff0c;否则…

【氮化镓】缓冲层结构对GaN HEMT射频性能的影响

【Effect of different layer structures on the RF performance of GaN HEMT devices】 研究总结&#xff1a; 本研究探讨了不同缓冲层结构对氮化镓高电子迁移率晶体管&#xff08;GaN HEMT&#xff09;射频性能的影响。通过对比三种不同缓冲层结构的GaN HEMT设备&#xff0…

海外问卷调查项目拆解(操作全流程演示)保姆级攻略具体操作

海外问卷调查是怎么做的&#xff1f;好做吗&#xff1f; 关于这个问题&#xff0c;不管我说好做、或者不好做&#xff0c;都并不能解决问题&#xff1b; 所以&#xff0c;这篇文章直接把做题的全过程展现给你看&#xff0c;你自己去真实地感受一下&#xff0c;这个玩意儿到底…

【电商API数据采集接口接入】如何搭建电商数据指标体系?

01 什么是好的数据指标&#xff1f; 电商商品数据采集API接口接入 01 前言 做数据分析的工作已经将近6年了&#xff0c;形形色色的业务方也合作了不少。大部分业务方都给我一个感觉就是我什么数据指标都要看&#xff0c;越多越多好&#xff0c;即使看了这些指标之后什么事…

智慧开发平台免!费!申请试用

原创 F学社 F学社 2024-04-01 17:13 江苏 扫描二维码即可申请试用 01 智慧开发平台简介 F1 WIFI智慧教育平台是可支持线上线下联动的基于FPGA的口袋式数字系统学习平台。其采用了AMD、Altera、安路、高云等国外国内主流公司的FPGA进行数字系统方向的教学实验设计&#xff0c…

【力扣刷题日记】1421.净现值查询

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 1421.净现值查询 表&#xff1a;NPV 列名类型idintyearintnpvint (id, year) 是该表主键(具有唯一值的列的…

策略模式图

策略模式 小小的图解 主要的三个角色 Strategy—抽象策略角色ConcreateStrategy—具体策略角色Context—上下文角色 封装了对具体策略的调用可以使用set的依赖注入也可以使用构造方法 核心是上下文角色 只要调用上下文角色就行&#xff0c;实现解耦 策略 工厂 将上下文角…

【滑动窗口】Leetcode 最小覆盖子串

题目解析 76. 最小覆盖子串 本题将意思转换一下&#xff1a;寻找最小可重复字符的字串 算法讲解 使用滑动窗口哈希表&#xff0c;进行入窗口->判断哈希表中的元素是否符合最小可重复子串的条件->出窗口 class Solution { public://检查两个hash表中的字符bool check…

【快捷部署】011_PostgreSQL(16)

&#x1f4e3;【快捷部署系列】011期信息 编号选型版本操作系统部署形式部署模式复检时间011PostgreSQL16Ubuntu 20.04Docker单机2024-03-28 一、快捷部署 #!/bin/bash ################################################################################# # 作者&#xff1…

leetcode代码记录(买卖股票的最佳时机

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股…