PythonDay4——For循环,列表,元组

5 篇文章 0 订阅
3 篇文章 0 订阅

一、For循环(未完待补充)

(1). for循环和range函数
for循环除了创建方式以外,其余的都和while一样,包括 else,break,continue都可以在for循环中使用
**

range() 可以生成一个自然数序列
r = range(5) # 生成一个这样的序列
r = range(0, 10, 2)
该函数需要三个参数:
1.起始位置
2.结束位置
3.步长(可以省略,默认为1)(步长不能为0,为0会抛异常,可以为负数,会倒序输出

通过range()可以创建一个执行指定次数的for循环:
例如:

for i in range(5)
print(i,end = ‘ ’)

运行截图:
在这里插入图片描述

for i in range(10, 20, 2):
    print(i, end=' ')

运行截图:
在这里插入图片描述

for i in range(18, 8, -3):
    print(i, end=' ')

运行截图:
在这里插入图片描述

a = ['a', 'b', 2, 3]
for i in range(len(a)):
    print(a[i], end=' ')

运行截图:
在这里插入图片描述

二、列表(list)

**

列表

(list)
列表是Python中的一个对象
对象(object):就是内存中专门用来存储数据的一块区域
列表中可以保存
多个有序**的数据
列表的使用
1.列表的创建
2.操作列表中的数据
创建列表 ,通过[]来创建列表

列表存储的数据,我们称为元素
一个列表中可以存储多个元素,也可以在创建列表时,来指定列表中的元素
列表可以为,列表中添加多个元素时,多个元素之间用 , 隔开
列表可以保存任意类型对象
my_list = [10,‘Hello’, True, None, [1, 2, 3], print ]

#列表中的对象都会按照插入的顺序存储到列表中
#第一个的对象保存到第一个位置,第二个保存到第二个位置
#我们可以通过索引(index)来获取表中的元素
#索引是元素在列表中的位置,列表中的每一个元素都有一个索引
#索引是从 0 开始的整数,列表第一个位置的索引为0,第二个位置索引为1 以此类推
语法
my_list[0]
如果是使用的索引超过了最大的范围,会抛出异常
len()函数
#获取列表的长度,列表中的元素的个数
#len()函数,通过该函数可以获取列表的长度
获取到的长度的值,是列表的最大的索引 + 1

代码举例

a = []
b = [1, 2]
print(type(a), a)
print(type(b), b)

运行截图:
在这里插入图片描述

a = [1, 'a', 'b', 'c']
x = len(a)
print('长度', x)
print(a[0], a[1], a[2])

运行截图:
在这里插入图片描述

a = [1, 'a', 'b', 'c']
i = 0
while i < len(a):
    print('第', i + 1, '个值是:', a[i])
    i += 1

运行截图:

在这里插入图片描述

步长

语法:列表[起始:结束:步长]
步长表示,每次获取元素的间隔,默认值为1
步长可以是负数,但不能为0
如果是负数,则从列表的后部向前面取元素

+ 和 *

" + "可以将两个列表拼接为一个列表
" * "可以将列表重复指定的次数

a = [1, 2]
b = [3, 4, 5]
c = a + b
print(c )
d = a * 3
print(d)
x = a[1] + b[2]
print(x)

代码的拼接,重复打印,两个列表里的数值运算
运行截图:
在这里插入图片描述

切片

#切片指从现有的列表中,获取一个子列表
#创建一个列表,一般创建列表时,变量的名字会使用复数(多个数据)

#列表的索引可以是负数
#如果索引是负数,则从后向前获取元素, -1 表示倒数第一个,-2表示倒数第二个,以此类推

#通过切片来获取指定的元素
#语法:列表[起始 : 结束 ]
#通过切片获取元素时,会包括起始位置的元素不包括结束位置的元素
#做切片时 , 总会返回一个新的列表,不会影响原来的列表
#起始位置和结束位置的索引都可以省略不写
如果省略结束位置,会截取到最后,开始同理
如果开始位置和结束位置全部省略,则相当于创建了一个列表的副本

a = ['a', 'b', 'c', 1, 2, 3, 4, 5, 6, 7]
b = a[2:5]  # 根据索引
print(b)
c = a[2:8:2]
print(c)
d = a[2:]
print(d)
e = a[:3]  # 不包含索引为3的数据
print(e)

运行截图:
在这里插入图片描述

a = ['a', 'b', 'c', 1, 2, 3, 4, 5, 6, 7]
b = a[-1]
print(b)

在这里插入图片描述

a = ['a', 'b', 'c', 1, 2, 3, 4, 5, 6, 7]
for i in range(-1, -len(a) - 1, -1):
    print(a[i])

运行截图:
在这里插入图片描述

a, *b = [1, 2, 3]
print(a, b)

加上*号,会将列表中第二个开始到结束的数据以列表的形式给b
在这里插入图片描述

*a, b = [1, 2, 3]
print(a, b)

运行截图:
在这里插入图片描述

列表的方法

通过方法修改列表

append()方法

stus = ['孙悟空', '猪八戒', '沙僧']
stus.append('唐僧')	#在列表最后加上“唐僧”
print(stus)

运行截图;
在这里插入图片描述

a = [1, 2, 3, 4, 5]
a.append(9)
print(a)

运行截图:
在这里插入图片描述

a = [1, 2, 3]
b = a
a.append(4)		# a和b所指的地址一样,改变a,b也变
print(a)
print(b)

运行截图:
在这里插入图片描述

insert()方法

向列表的指定位置插入一个元素
#参数
#1.要插入的位置
#2.要插入的元素

stus = ['孙悟空', '猪八戒', '沙僧']
stus.insert(2, '唐僧')		# 2 为下标索引位置
print(stus)

运行截图:
在这里插入图片描述

extend()方法

#使用新的序列来扩展当前序列(extend改变了原来的列表,+ 号没有改变原来的列表)
#需要一个序列作为参数,它会将该序列的元素添加到当前列表中

a = [1, 2, 3, 4, 5]
b = [3, 4]
a.extend(b)
c = [5, 6]
print(a)

运行截图:
在这里插入图片描述
pop()方法

pop()根据索引删除并返回被删除的元素的值
括号里为空默认删除最后一个

a = [1, 2, 3, 4, 5]
b = a.pop()
print(b)
b = a.pop(2)
print(a, b)

运行截图:
在这里插入图片描述

remove()方法

#删除**指定值(不根据索引)**的元素
stus.remove(‘猪八戒’) 如果有重复元素,只会删除第一个,没有返回值

a = [1, 2, 3, 4, 5]
a.remove(3)
print(a)

运行截图:
在这里插入图片描述
del方法

根据索引来删除元素
c = [1, 2, 3, 4]
for i in range(len©):
del c[0]
print( c )
运行截图:
在这里插入图片描述

a = [1, 2, 3, 4, 5]
del a[2]
print(a)

运行截图:
在这里插入图片描述

reverse()方法

#用来反转列表

a = [1, 2, 3, 4, 5]
a.reverse()
print(a)

运行截图:
在这里插入图片描述
sort()方法

对列表中的数据进行排序(默认从小到大排序)

a = [3, 2, 1, 5, 7, 3, 8]
a.sort()
print(a)

运行截图:
在这里插入图片描述
逆序排序(利用reverse函数)

a = [3, 2, 1, 5, 7, 3, 8]
a.sort(reverse=True)
print(a)

运行截图:
在这里插入图片描述

sorted()方法

a = [3, 2, 1, 5, 7, 3, 8]
b = sorted(a)		 # 对a不改变,排序赋给b
print(b)

运行截图:
在这里插入图片描述

sort()方法和sorted()方法的区别
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

count()函数
count() 方法用于统计字符串里某个字符出现的次数。
可选参数为在字符串搜索的开始与结束位置。
count()方法语法:
str.count(sub, start= 0,end=len(string))
sub – 搜索的子字符串
start – 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
end – 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。

a = [3, 2, 1, 5, 7, 3, 8]
b = a.count(3)
print("3的个数:", b)

运行截图:
在这里插入图片描述

index()方法
Python index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
语法:
str.index(str, beg=0, end=len(string))
str – 指定检索的字符串
beg – 开始索引,默认为0。
end – 结束索引,默认为字符串的长度。

a = [3, 2, 1, 5, 7, 3, 8]
x = a.index(2)  # 返回第一次出现2的索引
print(x)

运行截图:
在这里插入图片描述
is 和 is not

is 和is not 比较的是对象的id是否相等

a = [1, 2, 3]
b = [1, 2, 3]
print(a == b)
print(a is b)
print(id(a))
print(id(b))

列表里的元素相同,但是内存地址不一致,所以a和b所指的内存地址不一样
运行截图:
在这里插入图片描述
copy()方法

copy()浅拷贝:只拷贝列表最外
deepcopy()深拷贝:由列表最内层向外拷贝,拷贝所有元素

import copy
a = [1, 2, 3, [4, 5], 6]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
a.append(7)
a[3].append(99)
print(a, id(a))
print(b, id(b))
print(c, id(c))
print(d, id(d))

运行结果:
在这里插入图片描述
原理图:
在这里插入图片描述

三、元组(tuple)

元组(tuple)

元组是一个不可变的序列
它的操作方式基本上和列表是一致的
所以在操作元组时,把元组当成不可变的列表就可以

一般当我们希望数据不改变时,就使用元组
在这里插入图片描述
创建元组
使用()来创建元组
my_tuple = (1, 2, 3, 4, 5) #创建了一个5个元素的元组
#元组是不可变对象, 不能尝试为了元组中的元素重新赋值
#my_tuple[3] = 10 NameError: name ‘my_tuple’ is not defined
print(my_tuple[3])

#当元组不是空元组时,括号可以省略
#如果元组不是空元组,它里面至少要有一个逗号

a = (1,)
b = (1)
c = 1, 2
print(type(a))
print(type(b))
print(type(c))

运行截图
在这里插入图片描述

a = (1, 2, 3, 4)
b = (1, 2)
i = 0
while i < len(a):
    print(a[i], end=' ')
    i += 1

在这里插入图片描述
切片一样可以用

a = (1, 2, 3, 4)
print(a[2::1])  # 运行结果:(3, 4)

运行截图
在这里插入图片描述
元组不可修改,但是元组中的列表可以修改

a = (1, 2, 3, [4, 5])
a[3].append(9)
print(a)

运行截图:
在这里插入图片描述

a = ('a', 'b', 'c', 'e')
for x in enumerate(a):  # 加上索引值
    print(x)

运行截图:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值