学习python的第二周 第一天
#学习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的第二周 第一天相关推荐
- 吴恩达深度学习 | (2) 神经网络与深度学习专项课程第二周学习笔记
课程视频 第二周PPT汇总 吴恩达深度学习专项课程共分为五个部分,本篇博客将介绍第一部分神经网络和深度学习专项的第二周课程:神经网络基础.由于逻辑回归算法可以看作是一个单神经元(单层)的网络结构,为了 ...
- 人类社会发明的第一台计算机是什么,第二周第一课概述计算机
<第二周第一课概述计算机>由会员分享,可在线阅读,更多相关<第二周第一课概述计算机(18页珍藏版)>请在人人文库网上搜索. 1.电子计算机是20世纪最伟大的发明之一,半个世纪的 ...
- 学习Python第三周总结
学习Python第三周总结 一.函数和模块 1.1 函数的定义 Python中的函数的自变量称为函数的参数,而因变量称为函数的返回值 在Python中可以使用def关键字来定义函数,命名规则跟变量 ...
- 小马同学 学习python实操的第一天
学习python实操的第一天 第一个实操案例 任务1:向文件输出"一段属于你自己的话" ##方法一 fp= open('d:/test.txt','w') ##open('文件存储 ...
- Python课程第二周笔记及作业练习
Python第二周 第二周笔记 作业 练习 第二周笔记 机器语言:代码直接执行,与CPU型号有关: 汇编语言:有助记符,汇编器,与CPU型号有关: 高级语言:接近自然语言,编译器或解释器,与CPU型号 ...
- 工作室课题学习情况总结(第二周)
第二周的工作室课题主要学习练习的内容是查找这一块的内容,其中我选取了个在做题是碰到的例子来展开讲解: 一.彩票 Description 为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下: 1.每张 ...
- 零基础入门学python 第二版-《零基础入门学习Python》第二版和第一版的区别在哪里呢?...
第一版 时光荏苒,一晃间,距离<零基础入门学习 Python>出版(2016年11月)已经过去两年多了,在这段时间里, Python 逐步走入了大家的视野,这门语言因其简洁的语法风格,在云 ...
- 零基础学python鱼c-《零基础入门学习Python》第二版和第一版的区别在哪里呢?...
第一版 时光荏苒,一晃间,距离<零基础入门学习 Python>出版(2016年11月)已经过去两年多了,在这段时间里, Python 逐步走入了大家的视野,这门语言因其简洁的语法风格,在云 ...
- 菜鸟学习Python+Selenium遇到的第一个要崩溃的问题
本人菜鸟,毫无计算机语言基础知识,连Windows系统知识了解的也不多.因为学习软件测试才接触到Python的.对Python的了解也仅在于方便简洁,适合没有编程基础的人学.然后,就屁颠屁颠开始学习P ...
- Hubble Zhang的学习日记(第二周)
为了督促自己每天都有进步,在这里记录下每天遇到的问题和学到的新知识,仅作为个人回顾使用. 目录 日记(第二周) 20201005 20201007 20201008 20201009 日记(第二周) ...
最新文章
- python3读写csv
- 为什么我们喜欢用 sigmoid 这类 S 型非线性变换?
- C#中计时器Stopwatch的使用
- [转]T4模版引擎之基础入门
- eclipse maven项目 class类部署不到tomcat下_Servlet tomcat部署
- 使用spring jdbc的batchUpdate功能提高性能
- 从SNP_VCF文件提取SNV
- 为什么公务员需要考MPA?
- Colab运行沐神《动手学深度学习》:ImportError: cannot import name ‘_check_savefig_extra_args‘ from ‘matplotlib.back
- 妈妈,我以后也要上南邮!
- 史上最全网络通讯(IIOT、工业控制、5G、区块链)协议全景图
- 怎样制作一个漂亮的艺术二维码?
- AfterShip陈龙生:如何把SaaS做成一门好生意?
- 成佩涛-项目管理类经理必须了解的工具
- camera调试:RK3588 MIPI/DVP camera关键配置
- 基于.net6.0在wpf桌面应用中发布webApi服务示例
- android 类似微信的摇晃触发事件(确认可行,已封装,可直接调用)
- 微型计算机控制系统优缺点,微型计算机控制系统习题总结精华要点.pdf
- 网络原理 | 传输层重点协议之TCP协议(TCP连接的三次握手与四次挥手、TCP的安全机制与效率机制)
- 使用 edge 或 chrome 调试 安卓app/手机网页
热门文章
- vs2008 html5 的安装,vs2008安装教程,详细教您vs2008安装教程
- Google I/O 2021:在重要时刻提供帮助
- php jquery 时间轴,jquery时间轴
- python爬虫-urllib-handler和代理
- 虚拟摄像头之一: android8.1 移植 v4l2loopback 虚拟摄像头
- oplayer 文件服务器,iPad万能播放器(OPlayer HD)
- java guardedby_java并发编程之Guarded Suspention
- 力扣刷题 DAY_66 回溯
- 使用npm安装下载jQuery
- representation learning的理解