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

news/2024/9/19 0:13:15 标签: python, 开发语言

目录

容器

容器大总结

索引

切片

字符串的遍历

for循环语法:

while循环语法:

查找元素

修改元素

例题

1.验证码

2.抽取大红包

3.a和b互换位置


容器

在Python中,常见容器有:

(1)字符串:str

(2)列表:list

(3)元组:tuple

(4)字典:dict

python">(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")

索引

获取字符串元素语法:

python">变量名[索引值]

说明:

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

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

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

说明:

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

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

==总结:==

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

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

切片

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

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

python">[起始:结束:步长]

说明:

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

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

字符串的遍历

for循环语法:

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

==总结:==

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

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

while循环语法:

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

==总结:==

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

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

例题:

python"># 遍历字符串/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在字符串中出现的总次数。
python"># 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()用于去掉字符串前后的空白内容。
python"># 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分钟内有效。验证码提供给他人可能导致账号被盗,请勿泄露,谨防被骗。

python">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个人去领大红包,去重

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

3.a和b互换位置

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

执行程序,观察效果。

python"># 互换位置
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}")

http://www.niftyadmin.cn/n/5659419.html

相关文章

k8s的基础

[rootk8s-master ~]# vim /etc/docker/daemon.json 2.加载启动docker服务 [rootk8s-master ~]# systemctl daemon-reload [rootk8s-master ~]# systemctl start docker 3.拉取常用的镜像 docker pull ... [rootk8s-master ~]# docker images REPOSITORY TAG IMA…

【Qt笔记】QToolBox控件详解

目录 引言 一、QToolBox的基本功能 1.1 分页布局 1.2 可点击标签 1.3 图标支持 1.4 信号与槽 二、 QToolBox的属性设置 2.1 设置指定索引位置可用性 2.2 设置指定索引位置图标 2.3 设置标题 2.4 设置提示信息 2.5 获取信息 三、QToolBox的常用API 3.1 构造函数…

1405 问题 E: 世界杯

废话 这个题&#xff0c;我估计 22 22 22 年的时候写过一次&#xff0c;当时应该是搞明白了&#xff0c;现在重新写还是不会写&#xff0c;有点无奈 题目 问题 E: 世界杯&#xff1a;现在的 OJ 把题目加到一个活动里面去之后&#xff0c;感觉之后这个链接就访问不了了。题目…

第4步CentOS配置SSH服务用SSH终端XShell等连接方便文件上传或其它操作

宿主机的VM安装CENTOS文件无法快速上传&#xff0c;也不方便输入命令行&#xff0c;用SSH终端xshell连接虚拟机的SSH工具就方便多了&#xff0c;实现VM所在宿主机Win10上的xshell能连接vm的centos要实现以下几个环节 1、确保宿主机与虚拟机的连通性。 2、虚拟机安装SSH服务&…

【Go - 超实用,3行代码实现个自增器】

场景 自增器的作用是生成一个唯一的递增序列号。这在一些需要生成自增id的场景十分有用&#xff0c;比如自增的订单号&#xff0c;任务号&#xff0c;序列号。 要点 全局统一&#xff1a;在整个服务体系下&#xff0c;多个服务或者进程&#xff0c;都统一调用这个自增器&…

玄机科技浪漫绘情缘:海神缘下,一吻定情

在史莱克学院那片璀璨星空的见证下&#xff0c;《斗罗大陆II绝世唐门》第65集“海神缘相亲大会”的浪漫序幕&#xff0c;温柔地触动了每一位观众的心弦。 本集中&#xff0c;霍雨浩与王冬之间那段跨越重重障碍、终得相守的浪漫告白&#xff0c;在玄机科技独特的审美视角、精细…

CSS 响应式设计(补充)——WEB开发系列36

随着移动设备的普及&#xff0c;网页设计的焦点逐渐转向了响应式设计。响应式设计不仅要求网页在各种屏幕尺寸上良好展示&#xff0c;还要适应不同设备的特性。 一、响应式设计之前的灵活布局 在响应式设计流行之前&#xff0c;网页布局通常是固定的或流动的。固定布局使用固定…

人工智能物联网的去中心化和分布式学习:全面综述、新兴挑战和机遇

这篇论文的标题是《Decentralized and Distributed Learning for AIoT: A Comprehensive Review, Emerging Challenges, and Opportunities》&#xff0c;作者是Hanyue Xu, Kah Phooi Seng, Li Minn Ang, 和 Jeremy Smith。论文发表在IEEE Access期刊上&#xff0c;接收日期为2…