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

python基础学习笔记-day5

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

python基础学习笔记-day5

day5 1. 列表运算
  • 1.1 列表的重复
list1=[1,2,3,4]
print(list1*10)
  • 1.2 列表的拼接
list2=[4,5,6,7]
print(list1+list2)
  • 1.3 成员运算:in、not in

成员运算结果是布尔值

print(3in[1,3,4])#→True
print([3]in[1,3,4])#→False
print([3]in[1,3,4,[3]])#→True
  • 1.4 比较大小

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

list1=[1,2,3,4]
list2=[1,2,4,5]
print(list1 
  • 练习:.有两个列表A和B,使用列表C来获取两个列表中公共的元素
    例如: A = [1, ‘a’, 4, 90] B = [‘a’, 8, ‘j’, 1] --> C = [1, ‘a’]
#方法一:
A = [1, 'a', 4, 90]
B = ['a', 8, 'j', 1]
C = []
for i in A:
    for j in B:
        if i == j:
            C.append(j)
print(C)

#方法二:
A = [1, 'a', 4, 90]
B = ['a', 8, 'j', 1]
C = []
for i in A:
    if j in B:
		C.append(j)
print(C)
2. 列表的方法和函数
  • 2.1** max、min:获取同类型数据中最大、最小值**
num=[1,2,3,4]
print(max(num))
print(min(num))
  • 2.2 count:统计某个元素出现的个数
num=[1,2,3,4]
print(num.count(4))#→1
print(num.count(5))#→0
  • 2.3 sum:对列表元素求和
num=[1,2,3,4]
print(sum(num))#→13
  • 2.4 reverse:将列表倒序,返回值为None,直接修改列表本身
num = [1, 2, 3, 4]
print(num.reverse())
print(num)

print(num[::-1])#修改的非列表本身,需重新对列表元素赋值,使用append插入新元素
  • 2.5 sorted、sort:将列表元素排序
    • a. sorted→将列表从小到大排序,生成新的列表
      sorted:(列表,reverse=False)→从小到大排序
      reverse:(列表,reverse=True)→从大到小排序

    • b. sort→将列表从小到大排序,修改原列表。语法:
      列表.sort(reverse=False);
      列表.sort(reverse=True)

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))
print(num1)

print(num1.sort(reverse=True))
print(num1)
  • 2.6 extend():将一个容器中的元素添加到列表中
num1=[23,78,0,90]
num1.extend('abcde')  #将序列拆分后添加到列表元素中
print(num1)  #→[23,78,0,90,'a','b','c','d','e']
num1=[23,78,0,90]
num1.extend([1,2,3])  #将序列拆分后添加到列表元素中
print(num1)  #→[23,78,0,90,'a','b','c','d','e',1,2,3]
  • 2.7 index:查找元素

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

num1=[23,78,0,90,'a','b','c','d','e','a',1,2,3]
index1=num1.index('a')
#制定从下标为5的位置开始查找
index1=num1.index('a',5)
print(index1)
  • 练习:不使用index(),查找第二个a的下标
num1 = [23, 78, 0, 90, 'a', 'b', 'c', 'd', 'e', 'a', 1, 2, 3]
a_count = 0
for i in range(len(num1)):
    if num1[i] == 'a':
        a_count += 1#当a第一次出现
        if a_count == 2:#当a第二次出现
            print(i)
            break
3. 变量去重:
  • 3.1 有一个列表,要求去掉重复的人名

方法一:

names = ['张三', '李四', '大黄', '张三', '张三']
new_names = []
for i in names:
    if i not in new_names:
        new_names.append(i)
print(new_names)

方法二:

names = ['张三', '李四', '大黄', '张三', '张三']
for i in range(len(names) - 1, -1, -1):
	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)
4. 列表的推导式
  • 4.1 列表推导式(列表生成式)

作用:生成一个有元素的列表
for循环每执行一次,表达式就会将其生成的结果添加到列表中

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

num=[i for i in range(1,101)]
print(num)   #→[1,2,3,....100]元素从1-100
num_2=[1 for_in range(10)]
print(num_2)   #→[1,1,1,1...]元素1显示10次

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

  • 4.2 列表推导式和append性能对比
list1 = []
for i in range(1, 10000001):
    list1.append(i)
end = time.time()
print(f'append方法一共花费{end - start}秒')

start = time.time()
list2 = [i for i in range(1, 10000001)]
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以内所有孪生数
new_list = []
for i in range(2, 101):
    if i == 2:
        print('2是素数')
        new_list.append(2)
    else:
        # 判断[2,x-1]中有没有能将x整除的元素
        for j in range(2, i):
            if i % j == 0:
                print(f'{i}不是素数')
                break
        else:
            print(f'{i}是素数')
            new_list.append(i)
print(new_list)

for x in range(len(new_list) - 1):
    if new_list[x + 1] - new_list[x]==2:
        print(f'{new_list[x]}和{new_list[x+1]}是孪生数')
5. random:随机模块(俄罗斯轮盘、抽奖等)

import random

  • 5.1 randint(a,b)
    从[a,b]闭区间中随机获取一个整数

  • 5.2 randrange()
    约等于randint+range

print(random.randrange(1,4,2))
  • 5.3 choice()
    从容器中随机获取一个元素
print(random.choice([1,2,3,4)) 
  • 5.4 choices()
    从容器中随机获取K个元素,有放回的抽取元素
print(random.choices([1,2,3,4],k=3))
  • 5.5 sample()
    从有序容器中无放回的抽取k个元素
print(random.sample([1,2,3,4],k=3))
  • 5.6 shffule()
    将有序容器随机打乱顺序,无返回值,修改序列本身
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/994289.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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