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 list1 根据索引值,删除列表的某个元素 | 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)文本内容:【抖音】验证码2943 AD ,用于手机验证码登录,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}")
相关推荐
2601_962099082 小时前
replit如何运行python
python·代码编辑器·编程环境·在线ide·replit
头发够用的程序员2 小时前
别被 TOPS 参数迷惑:手把手推导边缘 GPU 整型算力
人工智能·python·ubuntu·计算机视觉·硬件架构·边缘计算
TechWayfarer2 小时前
做IP归属地查询时总是查不准?IP纯净度检测实战:从“查归属地“到识别“脏IP“的四个维度
服务器·网络·python·tcp/ip·安全·web安全
小溪学编程3 小时前
Java InputStream 详解:从基础到实战
java·python·php
雪芽蓝域zzs3 小时前
第十六节:递归组件实现无限层级折叠侧边栏菜单
开发语言·javascript·ecmascript
神明不懂浪漫3 小时前
【第二章】库、表、增删改查操作
开发语言·数据库·经验分享·笔记
传奇开心果编程3 小时前
【Rust入门知识点学与练】第11课:HashMap 键值对集合
开发语言·学习·rust
笨笨饿3 小时前
#137_死机恢复现场_Armino平台AP系统swd调试
git·python·stm32·单片机·嵌入式硬件·物联网·vim
2601_962382433 小时前
python常用函数大全pdf-python函数大全.pdf
python·内置函数·io操作·集合操作·数学运算
yume_sibai4 小时前
03-Rust 函数式编程特性(闭包 + Iterator + Option/Result + 链式调用)
开发语言·后端·rust