第六次作业

序列

序列的概念:

  • 序列是Python中最基本的⼀种数据结构。序列⽤于保存⼀组有序的数据,所
    有的数据在序列当中都有⼀个唯⼀的位置(索引)并且序列中的数据会按照添加的顺序来分配索引
  • 数据结构指计算机中数据存储的⽅式
    序列的分类:
  • 可变序列(序列中的元素可以改变):例如 列表(list)
  • 不可变序列(序列中的元素不能改变):例如 字符串(str)元组(tuple)

列表

# 列表是Python中的⼀个对象
# 列表的作⽤
# 列表中可以保存多个有序的数据
# 列表是⽤来存储对象的对象
# 列表的创建:通过[]来创建⼀个空列表
a = []

1. 列表的切片

a = [1, 2, 3, 4, "345", 6]
# 切⽚是指从现有列表中获得⼀个⼦列表
# 通过切⽚来获取指定的元素
# 语法: 列表[起始 : 结束 : 步⻓]
# 通过切⽚获取元素时,会包括起始位置的元素,不会包括结束位置的元素
# 起始位置和结束位置的索引可以不写
# 如果省略结束位置, 则会从当前的开始位置⼀直截取到最后
# 如果省略开始位置, 则会从第⼀个元素截取到结束的元素,但是不包括结
# 束的元素
# 如果开始位置和结束位置都省略, 则则会从第⼀个元素开始截取到最后⼀
# 个元素
# 步⻓表示每次获取元素的间隔,默认是1(可以省略不写)
# 步⻓不能是0,但可以是是负数
print(a[-1:-7:-1])
print(a[1])
print(a[1::1])
print(a[:5:1])
print(a[::])
print(a[-2][1])

输出结果:

D:\shihaoqing\venv\Scripts\python.exe D:/shihaoqing/上课资料/第六讲内容练习.py
[6, '345', 4, 3, 2, 1]
2
[2, 3, 4, '345', 6]
[1, 2, 3, 4, '345']
[1, 2, 3, 4, '345', 6]
4

2.列表的通用操作

a = [1, 2, 3] + [4, 5, 6]
print(a)
a = [1, 2, 3] * 2
print(a)
a = [1, 2, 3] * [4, 5, 6]   报错
print(a)
Traceback (most recent call last):
  File "D:/shihaoqing/上课资料/第六讲内容练习.py", line 29, in <module>
    a = [1, 2, 3] * [4, 5, 6]
TypeError: can't multiply sequence by non-int of type 'list'
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 1, 2, 3]
#in和not in  检测数据是否在列表当中
a = [1, 2, 3, 3]
print(1 in a)
#len()获取了表中元素个数
print(len(a))
#max()和min()获取列表中最大值和最小值
print(max(a))
#index()查找数据索引位置
print(a.index(2))
#count()统计元素在列表中出现的次数
print(a.count(3))

输出结果:

True
4
3
1
2

3.修改列表

list1 = [1, 2, 3, 4, 5, 6]
# del 关键字删除
del list1[2]
print(list1)
# 通过切片的方式修改列表 替换的必须为序列
list1[0:1:] = '5'
print(list1)

结果

[1, 2, 4, 5, 6]
['5', 2, 4, 5, 6]

Process finished with exit code 0

list1.append(2)
# append() 像列表的最后添加⼀个元素
print(list1)
list1.insert(1, 5)#insert(arg1,arg2) 像列表指定位置插⼊⼀个元素  参数1:要插⼊的位置 参数
# 2:要插⼊的元素
print(list1)
list2 = [1, 2, 3]
list1.extend(list2)#extend( iterable ) 使⽤⼀个新的序列来扩展当前序列(它会将该序列的中元素
# 添加到列表中) 参数需要传递⼀个序列
print(list1)
a = list2.pop(1)#pop() 根据索引删除并返回指定元素
print(a)
print(list2)
# list2.remove(6) 删除指定元素 (如果相同值的元素有多个,只会删除第⼀个)
# print(list2)
list2.clear()#清空列表
#reverse() 翻转列表
a = [1, 2, 3, 4]
a.reverse()
print(a)
#sort(key=None,reverse=False) ⽤来对列表中的元素进⾏排序 reverse:True反序;False 正序
a = [1, 2, 3, 4]
a.sort(reverse=True)
print(a)

for循环和range函数

list1 = [1, 2, 3, 4, 5, 6, 6]
for i in list1:#for 变量 in 序列(遍历的规则)#对于这个数据在列表中挨个访问称呼为遍历
    print(i)

结果

1
2
3
4
5
6
6

Process finished with exit code 0

range(开始数据,结束数据) 左闭右开(取头不去尾)

for i in range(0, 9):
    print(i)
0
1
2
3
4
5
6
7
8

Process finished with exit code 0

作业

#反转列表
a = [1, 2, 3, 5, 6, 7, 8]
b = list(reversed(a))
print(b)
a = [1, 2, 3, 5, 6, 7, 8]
b = a[-1:-8:-1]
print(b)
a = [1, 2, 3, 5, 6, 7, 8]
a.sort(reverse=True)
print(a)

#取两个列表内相同元素
lst1 = [11, 22, 33]
lst2 = [22, 33, 44]
i = 0
while i < 3:
    if lst1[i] in lst2:
        print(lst1[i])
    i += 1
lst1 = [11, 22, 33]
lst2 = [22, 33, 44]
for i in lst1:
    for s in lst2:
        if i == s:
            print(s)
#给用户九次机会猜1-10个
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
i = 0
while i < 9:
    player = int(input('请输入1-10的数字:'))
    print('对不起您猜错了')
    lst.remove(player)
    i += 1
print('正确答案是%s' % lst[0])

验证用户名,密码
while True:
    user = input('请输入用户名:')
    num = len(user)
    if 6 <= len(user) <= 20:
        if user[0].isalpha():
            print('符合要求')
        else:
            print('用户名不是以字母开头请重新输入')
            continue
    else:
        print('用户名长度不是6-20请重新输入')
    break
while True:
    password = input('请输入密码:')
    if not password.isdigit():
        print()
        if len(password) >= 6:
            print()
        else:
            print('长度错误')
            continue
    else:
        print('不能全为数字')
        continue
    for i in password:
        # password = input('请输入密码:')
        if i == ' ':
            print('密码中不能有空格请重新输入')
    continue
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值