前言

本文承接上文

for循环

之前我们提到过for循环是循环的一种,之前没有直接讲,是因为python中的for循环和其他语言的有一点不一样

for常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。

for循环的语法:

for 迭代变量 in 字符串|列表|元组|字典|集合:
代码块

格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值

流程如图:

mark

例如:

for循环循环字符串

url= "https://www.nghqqa.cn/"
#for循环,遍历 url字符串
for i in url:
print(i,end="")

运行结果为

https://www.nghqqa.cn/

for循环列表

my_list = [1,2,3,4,5]
for i in my_list:
print('sum =', i)

运行结果为

sum = 1
sum = 2
sum = 3
sum = 4
sum = 5

for循环元组和字典基本和上述两种都一样

for循环就提到这里

元组

元组是一个不可变的序列
它的操作的方式基本上和列表是一致的
所以你在操作元组时,就把元组当成是一个不可变的列表就可以了
一般当我们希望数据不改变时,就使用元组,其余情况都使用列表

定义:

与列表类似,只不过[]改成()

也是可以存储各种数据类型:整数、实数、字符串、列表、元组等任何类型的数据,并且在同一个元组中,元素的类型可以不同

例如:

test=( 1, [2,'a'], ("abc",3.0))
print(test)

运行结果为

(1, [2, 'a'], ('abc', 3.0))

创建元组

my_tuple = () # 创建了一个空元组
print(my_tuple,type(my_tuple))

运行结果为:

() <class 'tuple'>
my_tuple = (1,2,3,4,5) # 创建了一个5个元素的元组
# 元组是不可变对象,不能尝试为元组中的元素重新赋值
my_tuple[3] = 10
print(my_tuple[3])

运行结果为:

Traceback (most recent call last):
File "E:/code/python/test.py", line 3, in <module>
my_tuple[3] = 10 #TypeError: 'tuple' object does not support item assignment
TypeError: 'tuple' object does not support item assignment

你去给定义好的元组去赋值是会报错的

当元组不是空元组时,括号可以省略

如果元组不是空元组,它里边至少要有一个,不然 Python 解释器会将它视为字符

my_tuple = 10,20,30,40
my_tuple = 40,
print(my_tuple , type(my_tuple))

运行结果为

(40,) <class 'tuple'>

访问元组元素

和列表一样,我们可以使用索引(Index)访问元组中的某个元素(得到的是一个元素的值),也可以使用切片访问元组中的一组元素(得到的是一个新的子元组)。

使用索引访问元组元素的格式为:

tuplename[i]

其中,tuplename 表示元组名字,i 表示索引值。元组的索引可以是正数,也可以是负数。

使用切片访问元组元素的格式为:

tuplename[start : end : step]

其中,start 表示起始索引,end 表示结束索引,step 表示步长。

以上的方法我们在以前的文章中都提到过,就写个例子:

url = tuple("https://www.nghqqa.cn/")
#使用索引访问元组中的某个元素
print(url[3]) #使用正数索引
print(url[-4]) #使用负数索引
#使用切片访问元组中的一组元素
print(url[9: 18]) #使用正数切片
print(url[9: 18: 3]) #指定步长
print(url[-6: -1]) #使用负数切片

运行结果为

p
.
('w', 'w', '.', 'n', 'g', 'h', 'q', 'q', 'a')
('w', 'n', 'q')
('q', 'a', '.', 'c', 'n')

修改元组

前面我们已经说过,元组是不可变序列,元组中的元素不能被修改,所以我们只能创建一个新的元组去替代旧的元组。

tup = (100, 0.5, -36, 73)
print(tup)
#对元组进行重新赋值
tup = ("https://www.nghqqa.cn/")
print(tup)

运行结果为

(100, 0.5, -36, 73)
https://www.nghqqa.cn/

注意:元组本身不可变,如果元组中还包含其他可变元素,这些可变元素可以改变

tup = (100, 0.5, -36, 73,["url",123])
print(tup)
tup[4][0]="nghqqa.cn"
print(tup)

运行结果为

(100, 0.5, -36, 73, ['url', 123])
(100, 0.5, -36, 73, ['nghqqa.cn', 123])

这里可以解释一下元组中的可变元素为什么可以变这个问题

元组中的元素可以想象成一个房子,房子里的房间号是固定的,而如果那个元素是可变的,也就代表那个房间里面还有一个房间,而那个可变元素房间里的房间号是可以改变的,那个可变元素的固定的是在元组中的内存地址,而可变元素本身也是指向另外一个内存地址,那个内存地址指向的元素改不改变和元组的固定没有任何的关系

删除操作

删除元组

使用del关键字

tup = (100, 0.5, -36, 73)
print(tup)
#对元组进行重新赋值
del tup
print(tup)

运行结果为

(100, 0.5, -36, 73)
Traceback (most recent call last):
File "E:/code/python/test.py", line 5, in <module>
print(tup)
NameError: name 'tup' is not defined

本文到此结束,下文静等更新…(未完待续)

(下文更新字典)

感谢你的阅读