栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

学习python的第五天

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学习python的第五天

列表的运算 1.列表的重复
list1 = [1, 2, 3, 4]
print(list1 * 3)    # [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4] (* 后面只能写整数)
2.列表的拼接
list2 = [4, 5, 6, 7]
print(list1 + list2)  # [1, 2, 3, 4, 4, 5, 6, 7]
3.成员运算:in, not in

成员运算的结果是布尔值

print(3 in [1, 3, 4])   # True
print([3] in [1, 3, 4])   # False
print([3] not in [1, 3, 4])   # True
print([3] in [1, 3, 4, [3]])   # True
4.比较大小

a.比较大小的元素必须是同类型的
b.比较大小比较的是第一对不相等元素的大小(容器)
c.数组正常比较大小

# list1 = [1, 2, 3, 4]
# list2 = [1, 2, 4, 5]
# list1 = [1, 2, '3', 4]
# list2 = [1, 2, '4', 5]
# list1 = ['1', 2, '3', 4]
# list2 = [1, 2, '4', 5]   # TypeError: '<' not supported between instances of 'str' and 'int'
# print((list1 < list2))
列表的方法和函数 max,min - 获取同类型数据中最大,最小值
num = [1, 2, 3, 4]
print(max(num))
print(min(num))
count - 统计某个元素出现个数
print(num.count(4))    # 1
print(num.count(5))    # 0
sum - 求和
print(sum(num))
reverse - 将列表倒序,返回值为None,直接修改列表本身
print(num.reverse())   # None
print(num)    # [4, 3, 2, 1]
print(num[::-1])    # [1, 2, 3, 4]
print(num)    # [4, 3, 2, 1] 切片是产生了新的列表,原列表没变
sorted - 将列表从小到大排序,生成新的列表

sorted(列表,reverse=False) -> 从小到大排序
sorted(列表,reverse=True) -> 从大到小排序

sort - 将列表从小到大排序,修改原列表

列表.sort(reverse=False)和sorted一样
列表.sort(reverse=True)和sorted一样

num1 = [23, 78, 0, 90]
print(sorted(num1))   # [0, 23, 78, 90]
print(sorted(num1, reverse=True))   # [90, 78, 23, 0]
print(num1)  # [23, 78, 0, 90]
print(num1.sort(reverse=False))   # None
print(num1)    # [0, 23, 78, 90]
print(num1.sort(reverse=True))   # None
print(num1)   # [90, 78, 23, 0]
extend() - 将一个容器中的元素添加到列表中
num1.extend('abcdea')
num1.extend([1, 2, 3])
print(num1)   # [90, 78, 23, 0, 'a', 'b', 'c', 'd', 'e', 'a',  1, 2, 3]
index - 查找元素

从左向右查找,找到元素立刻停止,返回下标
如果查找的元素不存在,将报错

index1 = num1.index('a')

指定从下标为5的位置开始查找

index1 = num1.index('a', 5)
print(index1)
练习:不适应index,查找第二个a的下标。
num1 = [90, 78, 23, 0, 'a', 'b', 'c', 'd', 'e', 'a',  1, 2, 3]
a_count = 0  # 目的是查找第二个a
for i in range(len(num1)):
    if num1[i] == 'a':
        a_count += 1
        if a_count == 2:  # 判断a出现的个数
            print(i)
            break
列表去重

有一个列表,要求去掉重复的人名
例如:names = [‘张三’, ‘李四’, ‘大黄’, ‘张三’, ‘张三’] -> names = [‘张三’, ‘李四’, ‘大黄’]

方法一:
names = ['张三', '李四', '大黄', '张三', '张三']
name_list = []
for i in names:
    if i not in name_list:
        name_list.append(i)
print(name_list)
方法二:
names = ['张三', '李四', '大黄', '张三', '张三', '李四', '李四']
for i in range(len(names) - 1, -1, -1):
    print(i, names)
    if names.count(names[i]) > 1:
        del names[i]
print(names)
方法三:
names = ['张三', '李四', '大黄', '张三', '张三', '李四', '李四']
index = 0
while index <= len(names) - 1:
    if names.count(names[index]) > 1:
        del names[index]
    else:
        index += 1
print(names)
列表推导式 列表推导式(列表生成式)

作用:生成一个有元素的列表。

语法一:[表达式 for 变量 in 容器]

for循环每执行一次,表达式就会将其生成的结果添加到列表中。

num = [i for i in range(1, 101)]
print(num)
num_2 = [1 for _ in range(10)]
print(num_2)

append()适用于所有象列表中追加元素的操作;
列表推导式在某些情况下可以替代append()
性能:列表推导式 > append()
列表推导式和append()性能对比

import time

start = time.time()
list1 = []
for i in range(1, 100000001):
    list1.append(i)
end = time.time()
print(f'append方法一共花费{end - start}秒')

start = time.time()
list2 = [i for i in range(1, 100000001)]
end = time.time()
print(f'列表推导式方法一共花费{end - start}秒')
语法二:[表达式 for 变量 in 容器 if 条件]

for循环执行一次,if分支判断一次,条件成立时,表达式执行。

list3 = [i for i in range(1, 101) if i % 2 == 0]
print(list3)
语法三:[表达式 for 变量 in 容器 for 变量 in 容器]
list4 = [i for _ in range(3) for i in range(1, 11)]
print(list4)
练习:孪生数:两个素数的差等于2.

找出100以内所有的孪生数。

list5 = []
for i in range(2, 101):
    if i == 2:
        list5.append(2)
    else:
        for j in range(2, i):
            if i % j == 0:
                break
        else:
            list5.append(i)
print(list5)
for x in range(len(list5) - 1):
    if list5[x + 1] - list5[x] == 2:
        print(f'{list5[x]}和{list5[x + 1]}是孪生数')
随机模块 random:随机模块

例如:俄罗斯轮盘、抽奖等。

import random
randint(a, b) -> 从[a, b]闭区间中随机获取一个整数。 randrange() -> 约等于randint + range
print(random.randrange(1, 4, 2))
choice() -> 从容器中随机获取一个元素
print(random.choice([1, 2, 3, 4]))
choices() -> 从容器中随机获取k个元素
random.choices([1, 2, 3, 4], k=3)
sample() -> 从有序容器中无放回的抽取元素
print(random.sample([1, 2, 3, 4], k=3))
shuffle() -> 将有序容器随机打乱顺序,无返回值,修改序列本身。
list1 = [1, 2, 3, 4]
print(random.shuffle(list1))
print(list1)
练习:课堂点名器
names = ['张三', '李四', '王五', '刘二麻子']
random.shuffle(names)
while True:
    result = random.sample(names, k=1)
    if result == ['刘二麻子']:  # 内定,选择的人永远是’刘二麻子‘
        break
print(f'被抽中的同学:{result}')

使用PyQt/wxpython等GUI(图形可视化)进行可视化
使用pyinstall将程序封装成windows的exe可视化文件

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/994855.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号