#学习python的第二周

——第一天

作业的修正

  • 输入三个整数,按照从大到小的顺序输出

    a = int(input('a = '))
    b = int(input('b = '))
    c = int(input('c = '))if a < b:a, b = b, aif a < c:a, c = c, aif c > b:b, c = c, bprint(a, b, c)
    
  • 向列表中添加10个随机整数,找出其中第2大的元素

    import randomnums = []
    for _ in range():temp = random.randrange(1,100)nums.append(temp)
    print(nums)max_value = max(nums)
    #通过remove操作从列表中删除指定的元素nums.remove(max_value)
    #删除列表中的最大值print(max(nums))
    

    这种方法其实不是最优,从这个可以通过思想的代码得出相对最优的代码

    nums = [random.randrange(1, 100) for _ in range(10)]
    # nums = [i for i in range(1, 101, 2)]
    print(nums)m1, m2 = nums[0], nums[1]
    if m1 < m2:m1, m2 = m2, m1
    for num in nums[2:]:if num > m1:m1, m2 = num, m1elif num == m1:passelif num > m2:m2 = num
    print(m2)
    

    生成推导式

    1.
    # 列表的生成式(推导式)---> 写法简明,效率更高
    nums = [random.randrange(1, 100) for _ in range(10)]
    等于for _ in range():temp = random.randrange(1,100)   nums.append(temp)2.nums = [i for i in range(1, 101, 2)]
    

列表

列表的定义

​ 在Python中,列表是由一系元素按特定顺序构成的数据序列,这样就意味着定义一个列表类型的变量,可以保存多个数据,而且允许有重复的数据。跟上一课我们讲到的字符串类型一样,列表也是一种结构化的、非标量类型,操作一个列表类型的变量,除了可以使用运算符还可以使用它的方法。

list()函数可以将序列变成列表——即创造列表的构造器。

1.列表的创造

items1 = list(range(1, 10))
print(items1)    # [1, 2, 3, 4, 5, 6, 7, 8, 9]
items2 = list('hello')
print(items2)    # ['h', 'e', 'l', 'l', 'o']# 创建列表的方式一:字面量语法
list1 = ['apple', 'orange', 'pitaya', 'durian']
print(list1)
#['apple', 'orange', 'pitaya', 'durian']# 创建列表的方式二:构造器语法
list2 = list(range(1, 10))
print(list2)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 创建列表的方式三:生成式(推导式)语法
list3 = [i ** 2 for i in range(1, 10)]
print(list3)
# [1, 4, 9, 16, 25, 36, 49, 64, 81]

2.列表的位置和切片,元素的次数

  • 位置

    items = ['Python', 'Java', 'Java', 'Go', 'Kotlin', 'Python']# 查找元素的索引位置print(items.index('Python'))       # 0
    # 从做开始找的第一个指定元素的位置print(items.index('Python', 2))    # 5
    # 从指定位置后开始找指定元素的位置# 注意:虽然列表中有'Java',但是从索引为3这个位置开始后面是没有'Java'的
    print(items.index('Java', 3))
    # ValueError: 'Java' is not in list
    
  • 切片

    根据列表元素的位置进行切片

    import randomnums = [random.randrange(1, 100) for _ in range(9)]
    print(nums)# 从位置二开始取到最后一个位置
    print(nums[2:])
    # 输出全部元素
    print(nums[::])
    # 反转
    print(nums[::-1])
    # 从位置1取到位置2
    print(nums[1:3])
    # 从位置2取到位置7,步长为2
    print(nums[2:7:2])
    # 位置输入错误,超出范围,切片位置不能这样写
    print(nums[10:15])
    print(nums[5:1])
    
  • 次数

    计算出指定位置的元素的出现总次数:count()函数

    items = ['banana', 'grape',                          'apple','waxberry','pitaya', 'apple']# count() ---> 统计元素在列表中出现的次数
    print(items.count('apple'))
    print(items.count('strawberry'))
    

3.列表也支持拼接、重复、成员运算、索引和切片以及比较运算

  • 拼接

    list5 = [1, 3, 5, 7]
    list6 = [4, 4, 8]# 1
    list5 += list6
    print(list5)# 2
    list5.extend(list6)
    print(list5)
    
  • 重复

    list4 = [1, 10, 100] * 5
    print(list4)
    
  • 比较

    # 比较 ---> 实际工作中使用较少(可以忽略不计)
    list7 = list(range(1, 8, 2))
    list8 = [0, 3, 5, 7, 9]# 比较两个列表的元素是否意义对应相等
    print(list5 == list7)![在这里插入图片描述](https://img-blog.csdnimg.cn/cover1/248667912046641316.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,image_MjAyMDA3MTUxNjIxMDEzOC5wbmc=,size_16,color_FFFFFF,t_70,image/resize,m_lfit,w_962#pic_center)print(list7 != list8)# 比较两个列表对应元素的大小,不是比较len()的大小
    print(list7 < list8)# False
    # True
    # False
    
  • 添加和删除,清除

    items = ['banana', 'grape', 'apple',                    'waxberry', 'pitaya', 'apple']# count() ---> 统计元素在列表中出现的次数
    print(items.count('apple'))
    print(items.count('strawberry'))# 添加元素
    items.append('blueberry')
    items.insert(1, 'watermelon')
    print(items)# 删除元素
    # pop()函数删除指定位置的元素,并返回该值
    items.pop()
    items.pop(4)
    # 删除指定位置的元素
    del items[0]
    # 删除该元素,但正向删除会打乱元素的位置,一般()是元素本身
    while 'apple' in items:items.remove('apple')
    print(items)# 清空列表元素
    items.clear()
    print(items)
    
  • 反转和排序

    items = ['banana', 'grape', 'apple', 'waxberry', 'pitaya', 'apple']
    # 反转
    items.reverse()
    print(items)# 排序(可以修改reverse参数控制排升序或者排降序)
    items.sort()
    print(items)
    
  • 随机抽取和乱序

    names = ['喜羊羊', '美羊羊', '懒洋洋', '沸羊羊',        '暖羊羊', '灰太狼', '小灰灰']
    # sample函数可以对列表元素进行无放回抽样,抽五个
    print(random.sample(names, k=5))
    # choices函数可以对列表元素进行有放回抽样(可以重复抽中),抽五个
    print(random.choices(names, k=5))
    # choice函数可以从列表中随机选择一个元素
    print(random.choice(names))
    # shuffle函数可以实现列表元素的随机乱序
    random.shuffle(names)
    print(names)
    

列表的生成式

1.用for循环的生成

# 1
nums = []
for x in range(1,10):nums.append(x)
print(nums)# 2
#对列表进行读写操作的for循环
for i in range(nums):print(nums[i])nums[i] = 100
print(nums)# 对列表进行读操作
for x in nums:print(x)x= 100
print(nums)# 3
# 创建一个由'hello world'中除空格和元音字母外的字符构成的列表
items2 = []
for x in 'hello world':if x not in ' aeiou':items2.append(x)
print(items2)# 创建一个由个两个字符串中字符的笛卡尔积构成的列表
items3 = []
for x in 'ABC':for y in '12':items3.append(x + y)
print(items3)

2.通过生成式创建列表。

# 创建一个由1到9的数字构成的列表
items1 = [x for x in range(1, 10)]
print(items1)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]# 创建一个由'hello world'中除空格和元音字母外的字符构成的列表
items2 = [x for x in 'hello world' if x not in ' aeiou']
print(items2)
# ['h', 'l', 'l', 'w', 'r', 'l', 'd']# 创建一个由个两个字符串中字符的笛卡尔积构成的列表
items3 = [x + y for x in 'ABC' for y in '12']
print(items3)
# ['A1', 'A2', 'B1', 'B2', 'C1', 'C2']

总结

以一个程序结尾:

​ 有15个男人和15个女人坐船出海,船坏了,需要把其中15个人扔到海里,其他人才能活下来;
所有人围成一圈,由某个人从1开始依次报数,报到9的人被扔到海里,下一个人重新从1开始报数,
直到将15个人扔到海里。最后,15个女人都幸存了下来,15个男人都被扔到了海里。
问原先哪些位置是男人,哪些位置是女人

persons = [True] * 30
index, counter, number = 0, 0, 0
while counter < 15:if persons[index]:number += 1if number == 9:persons[index] = Falsecounter += 1number = 0index += 1if index == 30:index = 0
for person in persons:# 三元条件运算 ---> if后面的表达式为True,取if前面的值,否则取else后面的值# 相当于简写版(精简版)的if...else...结构print('女' if person else '男', end='')

学习python的第二周 第一天相关推荐

  1. 吴恩达深度学习 | (2) 神经网络与深度学习专项课程第二周学习笔记

    课程视频 第二周PPT汇总 吴恩达深度学习专项课程共分为五个部分,本篇博客将介绍第一部分神经网络和深度学习专项的第二周课程:神经网络基础.由于逻辑回归算法可以看作是一个单神经元(单层)的网络结构,为了 ...

  2. 人类社会发明的第一台计算机是什么,第二周第一课概述计算机

    <第二周第一课概述计算机>由会员分享,可在线阅读,更多相关<第二周第一课概述计算机(18页珍藏版)>请在人人文库网上搜索. 1.电子计算机是20世纪最伟大的发明之一,半个世纪的 ...

  3. 学习Python第三周总结

    学习Python第三周总结 一.函数和模块 1.1 函数的定义 ​ Python中的函数的自变量称为函数的参数,而因变量称为函数的返回值 在Python中可以使用def关键字来定义函数,命名规则跟变量 ...

  4. 小马同学 学习python实操的第一天

    学习python实操的第一天 第一个实操案例 任务1:向文件输出"一段属于你自己的话" ##方法一 fp= open('d:/test.txt','w') ##open('文件存储 ...

  5. Python课程第二周笔记及作业练习

    Python第二周 第二周笔记 作业 练习 第二周笔记 机器语言:代码直接执行,与CPU型号有关: 汇编语言:有助记符,汇编器,与CPU型号有关: 高级语言:接近自然语言,编译器或解释器,与CPU型号 ...

  6. 工作室课题学习情况总结(第二周)

    第二周的工作室课题主要学习练习的内容是查找这一块的内容,其中我选取了个在做题是碰到的例子来展开讲解: 一.彩票 Description 为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下: 1.每张 ...

  7. 零基础入门学python 第二版-《零基础入门学习Python》第二版和第一版的区别在哪里呢?...

    第一版 时光荏苒,一晃间,距离<零基础入门学习 Python>出版(2016年11月)已经过去两年多了,在这段时间里, Python 逐步走入了大家的视野,这门语言因其简洁的语法风格,在云 ...

  8. 零基础学python鱼c-《零基础入门学习Python》第二版和第一版的区别在哪里呢?...

    第一版 时光荏苒,一晃间,距离<零基础入门学习 Python>出版(2016年11月)已经过去两年多了,在这段时间里, Python 逐步走入了大家的视野,这门语言因其简洁的语法风格,在云 ...

  9. 菜鸟学习Python+Selenium遇到的第一个要崩溃的问题

    本人菜鸟,毫无计算机语言基础知识,连Windows系统知识了解的也不多.因为学习软件测试才接触到Python的.对Python的了解也仅在于方便简洁,适合没有编程基础的人学.然后,就屁颠屁颠开始学习P ...

  10. Hubble Zhang的学习日记(第二周)

    为了督促自己每天都有进步,在这里记录下每天遇到的问题和学到的新知识,仅作为个人回顾使用. 目录 日记(第二周) 20201005 20201007 20201008 20201009 日记(第二周) ...

最新文章

  1. python3读写csv
  2. 为什么我们喜欢用 sigmoid 这类 S 型非线性变换?
  3. C#中计时器Stopwatch的使用
  4. [转]T4模版引擎之基础入门
  5. eclipse maven项目 class类部署不到tomcat下_Servlet tomcat部署
  6. 使用spring jdbc的batchUpdate功能提高性能
  7. 从SNP_VCF文件提取SNV
  8. 为什么公务员需要考MPA?
  9. Colab运行沐神《动手学深度学习》:ImportError: cannot import name ‘_check_savefig_extra_args‘ from ‘matplotlib.back
  10. 妈妈,我以后也要上南邮!
  11. 史上最全网络通讯(IIOT、工业控制、5G、区块链)协议全景图
  12. 怎样制作一个漂亮的艺术二维码?
  13. AfterShip陈龙生:如何把SaaS做成一门好生意?
  14. 成佩涛-项目管理类经理必须了解的工具
  15. camera调试:RK3588 MIPI/DVP camera关键配置
  16. 基于.net6.0在wpf桌面应用中发布webApi服务示例
  17. android 类似微信的摇晃触发事件(确认可行,已封装,可直接调用)
  18. 微型计算机控制系统优缺点,微型计算机控制系统习题总结精华要点.pdf
  19. 网络原理 | 传输层重点协议之TCP协议(TCP连接的三次握手与四次挥手、TCP的安全机制与效率机制)
  20. 使用 edge 或 chrome 调试 安卓app/手机网页

热门文章

  1. vs2008 html5 的安装,vs2008安装教程,详细教您vs2008安装教程
  2. Google I/O 2021:在重要时刻提供帮助
  3. php jquery 时间轴,jquery时间轴
  4. python爬虫-urllib-handler和代理
  5. 虚拟摄像头之一: android8.1 移植 v4l2loopback 虚拟摄像头
  6. oplayer 文件服务器,iPad万能播放器(OPlayer HD)
  7. java guardedby_java并发编程之Guarded Suspention
  8. 力扣刷题 DAY_66 回溯
  9. 使用npm安装下载jQuery
  10. representation learning的理解