python基础知识 (五)--容器、索引、切片、字符串的遍历、查找、修改元素

目录

容器

容器大总结

索引

切片

字符串的遍历

for循环语法:

while循环语法:

查找元素

修改元素

例题

1.验证码

2.抽取大红包

3.a和b互换位置


容器

在Python中,常见容器有:

(1)字符串:str

(2)列表:list

(3)元组:tuple

(4)字典:dict

(1)字符串:使用双引号引起来的内容;
(2)列表:使用[ ]表示的内容;
(3)元组:使用( )表示的内容;
(4)字典:使用{ }表示,内部元素是键值对。

说明:

当要查看某数据的类型时,使用【type(x)】。

列表和字典是可变数据类型。

字符串和元组是不可变数据类型。

容器大总结

容器

类型

添加元素

修改元素

删除元素

查找元素

列表

可变数据类型

list.append('中国') 在结尾处添加数据

list.insert(1,'中国') 在列表索引index处,新增一个元素x

list.extend('中国') 给列表添加另一个列表的所有元素内容,并形成一个完整列表

根据索引值,来修改列表中的某个元素值。

list.remove(“英国”) 删除列表元素值x。

del list[1] 根据索引值,删除列表的某个元素

len(list) 返回s的长度或元素个数

In 判断指定数据是否在某个列表序列中。如果在就返回True,否则返回False

字典

可变数据类型

变量名[键] = 值 teacher["gender"] = "男"

变量名[键] = 值:

teacher["name"] = "健哥"

del 变量名[键]:删除指定元素

clear():清空字典的所有元素内容

get(key[, default]):

返回指定键key对应的值,若值不在字典中,则返回默认值

print(teacher["name"]) 没有报错

print(teacher.get("age")) 没有返回none

元组

不可变数据类型

×

×

×

元组变量名[索引]

index(x)

len(x)

in

字符串

不可变数据类型

×

replace(old, new):用于将字符串中的old内容替换成new内容

strs.replace(" ","666")

split(sep):使用指定内容sep来对字符串进行切割

ret2 = strs.split("a")

strip():用于去掉字符串前后的空白内容

print(strs.strip())

×

find(sub):检测sub是否包含在字符串中,如果是,则返回sub所在开始的索引,否则返回-1。name.find("and")

index(sub):与find()类似,只不过当sub在字符串中不存在时,会报错误 name.index("666")

rfind(sub):从右往左找子串在字符串的某个索引 name.rfind("and")

count(sub):计算sub在字符串中出现的总次数 name.count("and")

索引

获取字符串元素语法:

变量名[索引值]

说明:

索引值是从0开始计算的。

接着,来看一下字符串长度的表示方式。

函数名含义
len(s)返回变量s的长度或元素个数。

说明:

(1)长度值是从1开始计算的

(2)索引与长度的关系可表示为:【最大索引值 = 长度 - 1】。

==总结:==

(1)当使用超出最大索引的值去访问字符串的元素,会报错;

(2)注意:索引与长度的关系是:【最大索引值 = (长度 - 1)】

切片

切片指的是:截取字符串中的一部分内容。

切片语法,可以加入步长:

[起始:结束:步长]

说明:

(1)切片语法选取的范围是左闭右开型,即[起始, 结束);

(2)注意:截取内容时,包含起始位,但不包含结束位。

字符串的遍历

for循环语法:

for 临时变量 in 序列:
    满足条件时,执行的代码1
    满足条件时,执行的代码2
    ……
[else:
        当for循环正常执行结束后,执行代码]

==总结:==

(1)如果想快速获取字符串的所有元素,可以直接使用for循环;

(2)注意:使用for语句遍历字符串时,无法直接显示索引值

while循环语法:

初始化变量语句
while 循环条件:
    循环体语句
    改变循环条件的语句  # 先写
函数名含义
len(s)返回变量s的长度或元素个数。

==总结:==

(1)如果要获取字符串的所有元素,可以使用while循环;

(2)注意:我们会发现,可以使用for或while来遍历字符串,但优先考虑使用(==for==)循环来遍历。

例题:

# 遍历字符串/for循环
str='你好朋友'
for c in str:
    print(c)
print('-'*50)
#遍历字符串/while循环
str='你好朋友'
i=0
while i<len(str):
    print(str[i])
    i+=1
print('-'*50)
#倒序
str = '你好朋友'
i=len(str)-1
while i>=0:
    print(str[i])
    i-=1

查找元素

函数名含义
find(sub)检测sub是否包含在字符串中,如果是,则返回sub所在开始的索引,否则返回-1。
index(sub)与find()类似,只不过当sub在字符串中不存在时,会报错误。
rfind(sub)从右往左找子串在字符串的某个索引。
count(sub)计算sub在字符串中出现的总次数。
# 1.定义字符串
name = "hello world and itcast and nihao and Python"

# 2.and -find()  index()
print(name.find("and"))
print(name.index("and"))

# 3.对比find  index
print(name.find("666"))  # 稳定
print(name.index("666"))  # 报错

# 4.从右往左    right
print(name.rfind("and"))
print(name.rindex("and"))
# 总次数
print(name.count("and"))

修改元素

函数名含义
replace(old, new)用于将字符串中的old内容替换成new内容。
split(sep)使用指定内容sep来对字符串进行切割。
strip()用于去掉字符串前后的空白内容。
# 1.定义字符串
strs = "hello itcast big data"
# 2.替换
ret1 = strs.replace("hello","666")
print(ret1)   #" "  -将“hello”替换成“666”
# 3.分割  -切割
ret2 = strs.split("a")
print(ret2)
# 4.去掉空白
strs = "  hello itcast big data    "
print(strs.strip())
result1 = strs.lstrip()
result2 = result1.rstrip()
print(result2)

例题

1.验证码

例如,一起来完成: (1)请生成一个由数字、字母组成的6位数的验证码; (2)文本内容:【抖音】验证码2943AD,用于手机验证码登录,5分钟内有效。验证码提供给他人可能导致账号被盗,请勿泄露,谨防被骗。

import random
list1=[]
str='1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
for i in range(6):
    r = random.randint(0,len(str)-1)
    list1.append(str[r])

print("".join(list1))

2.抽取大红包

抽取6个人去领大红包,去重

import random
list2=['小白','小黑','小红','小蓝','小黄','小紫','小青','小橙']
r=random.sample(list2,6)
print(f"请去领大红包:")
for list2 in r:
    print(list2)

3.a和b互换位置

对两个变量a和b进行互换顺序;

执行程序,观察效果。

# 互换位置
a = 18
b = 99
# 方式一:元组
# a,b = b,a
(a,b) = (b,a)
print(f"a = {a}")
print(f"ab = {b}")
# 其他语言: 引入第3方变量
temp = a
a = b
b = temp
print(f"a = {a}")
print(f"ab = {b}")
# 方式三:按位异或
a = a ^ b  # 位运算  -先把数据转换二进制
b = a ^ b
a = a ^ b

print(f"a = {a}")
print(f"ab = {b}")

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

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

相关文章

C++:类和对象全解

C&#xff1a;类和对象全解 一、类的定义和初始化&#xff08;一&#xff09;类的定义1、类的成员变量&#xff08;1&#xff09;成员变量&#xff08;2&#xff09;成员函数 2、实例化对象&#xff08;1&#xff09;采用普通构造函数&#xff08;2&#xff09;采用初始化列表 …

数据可视化与分析:数据时代的关键工具

一、引言 数据可视化与分析是大数据时代中最为重要的技术之一。随着数据量的不断增加&#xff0c;如何有效地理解、解释和利用数据&#xff0c;已经成为各行各业面临的关键挑战。数据可视化通过图表、图形和互动界面将数据以直观的方式呈现&#xff0c;帮助用户快速识别数据中…

SMA2:代码实现详解——Image Encoder篇(Hiera章)

SMA2:代码实现详解——Image Encoder篇&#xff08;Hiera&#xff09; 写在前面 大家在SMA2:代码实现详解——Image Encoder篇&#xff08;FpnNeck&#xff09;下的留言我已收到&#xff0c;感谢大家的支持&#xff0c;后面如果遇到比较难以讲清的部分可能会使用视频的形式。…

Python 课程9-資料庫操作

前言 在现代软件开发中&#xff0c;数据库是核心组件之一&#xff0c;它负责数据的存储、管理和检索。无论是简单的应用程序还是复杂的企业级系统&#xff0c;数据库操作都是必不可少的。本教程将深入讲解如何使用 Python 进行数据库操作&#xff0c;涵盖使用 sqlite3 进行本地…

OpenHarmony(鸿蒙南向开发)——轻量系统STM32F407芯片移植案例

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ OpenHarmony&#xff08;鸿蒙南向开发&#xff09;——轻量和小型系统三方库移植指南…

Android SystemUI组件(06)导航栏创建分析虚拟按键

该系列文章总纲链接&#xff1a;专题分纲目录 Android SystemUI组件 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节持续迭代之前章节的思维导图&#xff0c;主要关注左侧SystemBars分析中导航栏部分即可。 1 导航栏创建之makeStatusBarView 通过上一篇文章的…

代理IP设置后IP不变?可能的原因及解决方法

在使用代理IP时&#xff0c;有时会遇到代理设置后IP地址却没有变化的情况。这种问题可能会让人感到困惑&#xff0c;但其实背后有多种原因。本文将详细探讨这些原因&#xff0c;并提供相应的解决方法&#xff0c;帮助你顺利解决问题。 可能的原因 代理IP设置后IP地址不变的原…

Spring的核心思想

目录 一、Spring要解决的问题 二、Spring的核心结构 三、核心思想 3.1.1 什么是IOC 3.1.2 IOC解决的问题&#xff1a;耦合 3.1.3 IOC和DI的区别 3.2.1 什么是AOP 3.2.2 AOP解决的问题&#xff1a;耦合 3.2.3 为什么叫做面向切面编程 一、Spring要解决的问题 问题1&am…

maya-vray渲染蒙版

要用一个叫vrayMulWrapper的材质球&#xff0c;把alpha Conterbution调到-1&#xff0c;勾选matte surface启用蒙版物体。

爬虫逆向学习(六):补环境过某数四代

声明&#xff1a;本篇文章内容是整理并分享在学习网上各位大佬的优秀知识后的实战与踩坑记录 引用博客&#xff1a; https://blog.csdn.net/shayuchaor/article/details/103629294 https://blog.csdn.net/qq_36291294/article/details/128600583 https://blog.csdn.net/weixin_…

时序预测 | Matlab实现GA-CNN遗传算法优化卷积神经网络时间序列预测

时序预测 | Matlab实现GA-CNN遗传算法优化卷积神经网络时间序列预测 目录 时序预测 | Matlab实现GA-CNN遗传算法优化卷积神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Matlab实现GA-CNN遗传算法优化卷积神经网络时间序列预测&#xff…

巴西电商市场规模、前景及支付方式(pix、Boleto)

一、巴西电商市场分析 作为拉丁美洲最大经济体&#xff0c;巴西在拉丁美洲经济中占据领先地位&#xff0c;根据巴西地理与统计研究所(IBGE)的数据&#xff0c;2023年巴西GDP达到2.2万亿美元&#xff0c;跃居世界第九大经济体。数字化进程以及经济多元化推进正在推动该国中产阶…

TiDB 数据库核心原理与架构_Lesson 01 TiDB 数据库架构概述课程整理

作者&#xff1a; 尚雷5580 原文来源&#xff1a; https://tidb.net/blog/beeb9eaf 注&#xff1a;本文基于 TiDB 官网 董菲老师 《TiDB 数据库核心原理与架构&#xff08;101) 》系列教程之 《Lesson 01 TiDB 数据库架构概述》内容进行整理和补充。 课程链接&#xff1a;…

PowerBI 关于FILTERS函数和VALUES函数

本人是powerbi新手&#xff0c;最近在使用Filters()函数和Values()函数时&#xff0c;有点不太明白它们之间的区别&#xff0c;u有时它们得到的结果是一样的&#xff0c;有时却不一样。 官方文档里&#xff0c;Filters()是表示返回直接作为筛选器应用到 columnName 的值 FILT…

凸优化学习(1)——什么是凸优化、凸集、凸函数

&#x1f345; 写在前面 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;这里是hyk写算法了吗&#xff0c;一枚致力于学习算法和人工智能领域的小菜鸟。 &#x1f50e;个人主页&#xff1a;主页链接&#xff08;欢迎各位大佬光临指导&#xff09; ⭐️近…

Python之NumPy超详细学习指南:从入门到精通(上篇)

文章目录 Python NumPy学习指南&#xff1a;从入门到精通第一部分&#xff1a;NumPy简介与安装1. 什么是NumPy&#xff1f;2. 安装NumPy使用pip安装&#xff1a;使用Anaconda安装&#xff1a; 第二部分&#xff1a;NumPy数组基础1. NumPy数组的创建从列表创建一维数组&#xff…

OpenCV结构分析与形状描述符(14)拟合直线函数fitLine()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 拟合一条直线到2D或3D点集。 fitLine 函数通过最小化 ∑ i ρ ( r i ) \sum_i \rho(r_i) ∑i​ρ(ri​)来拟合一条直线到2D或3D点集&#xff0c…

FishAudio发布了 Fish Speech V1.4

还记得今年OpenAI 刚推出 gpt4o 不久&#xff0c;开源界就出现了 ChatTTS 和 FishSpeech 这些不错的 TTS 项目。 而 Fish Speech V1.4 是一个领先的文本到语音&#xff08;TTS&#xff09;模型&#xff0c;它是在 700,000 小时的多语言音频数据基础上训练出来的。 该模型支持八…

K8s 之Pod的定义及详细资源调用案例

资源管理介绍 在kubernetes中&#xff0c;所有的内容都抽象为资源&#xff0c;用户需要通过操作资源来管理kubernetes。kubernetes的本质上就是一个集群系统&#xff0c;用户可以在集群中部署各种服务所谓的部署服务&#xff0c;其实就是在kubernetes集群中运行一个个的容器&a…

[XILINX] 正点原子ZYNQ7015开发板!ZYNQ 7000系列、双核ARM、PCIe2.0、SFPX2,性能强悍,资料丰富!

正点原子ZYNQ7015开发板&#xff01;ZYNQ 7000系列、双核ARM、PCIe2.0、SFPX2&#xff0c;性能强悍&#xff0c;资料丰富&#xff01; 正点原子Z15 ZYNQ开发板&#xff0c;搭载Xilinx Zynq7000系列芯片&#xff0c;核心板主控芯片的型号是XC7Z015CLG485-2。开发板由核心板&…