Python程序设计教程第二版-第四章
2021/5/16 20:28:53
本文主要是介绍Python程序设计教程第二版-第四章,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Python程序设计教程第二版-第四章
4.5推导式
4.5.1 列表推导式
形式:[函数/表达式 for语句 0至多个for/if语句]
逻辑上等价于循环语句,但形式上更简洁
1,列表推导式和for
如何将一个数字列表中的元素扩大两倍?
方法一:
n=[10,-33,21,55,117,510] number=[] for i in n: number.append(i*2) print(number)
分析:使用for循环遍历n中的元素,然后将其扩大两倍增添到一个新列表中
方法二:
n=[10,-33,21,55,117,510] number=[i*2 for i in n] print(number)
分析:使用了列表推导式,注意一点在列表推导式中,函数/表达式与for语句不是用逗号隔开的
2.列表推导式中可以有多个for语句
列如:
n=[[10,-33,21],[5,-7,-9,3,28,-16,37]] number=[j*2 for i in n for j in i] print(number)
3,列表推导式和if
在列表推导式中,if起到筛选过滤的作用接着上面的例子,将正数扩大两倍组成新列表
n=[10,-33,21,55,117,510] number=[i*2 for i in n if i>0] print(number)
列表推导式中还可以使用if-else语句
例:将一个数字列表中的正偶数扩大两倍,正奇数扩大三倍
n=[1,2,-3,5,2,-8,8,7] number=[i*2 if i%2==0 else i*3 for i in n if i>0] print(number)
列题讲解
现有一产品1~30日的销售量如下
123,226,136,178,124,167,183,194,119,135,189,125,173,193,143,226,201,200,221,226,132,163,225,129,150,151,226,177,189,134,222
找出最大销售量,及所在日子输出
sales=[123,226,136,178,124,167,183,94,119,135,189,125,173,193,143,\ 226,201,200,221,226,132,163,225,129,150,151,226,177,189,134,222] highest=max(sales) hh=[i for i,j in enumerate(sales,1) if j==highest] print("最大销量为:",highest) print("销售日分别为:",end=' ')
4.列表推导式与函数
列表推导式中可以使用函数
利用列表推导式快速生成15个30~80之间的随机数
import random rlist=[random.randint(30,80) for i in range(15)] print(rlist)
同时可以使用自己定义的函数
import random rlist=[random.randint(30,80) for i in range(15)] print(rlist) def ff(x): if x%3==0: x/=3 elif x%7==0: x*=2 else: x*=5 return x number=[ff(i) for i in rlist] print(number)
5.使用列表推导式同时遍历多个列表
score1=[89,56,77,46,89,99,67] score2=[34,99,58,68,99,89,98] nn=[(i,j) for i in score1 if i>80 for j in score2 if j<60] print(nn)
结尾彩蛋
# -*- coding:utf-8 -*- import turtle import time # 画爱心的顶部 def LittleHeart(): for i in range(200): turtle.right(1) turtle.forward(2) # 输入表白的语句,默认I Love you love = input('请输入表白语句,默认为输入为"I Love you": ') # 输入署名或者赠谁,没有不执行 me = input('请输入您心上人的姓名或者昵称: ') if love == '': love = 'I Love you' # 窗口大小 turtle.setup(width=800, height=500) # 颜色 turtle.color('red', 'pink') # 笔粗细 turtle.pensize(5) # 速度 turtle.speed(1) # 提笔 turtle.up() # 隐藏笔 turtle.hideturtle() # 去到的坐标,窗口中心为0,0 turtle.goto(0, -180) turtle.showturtle() # 画上线 turtle.down() turtle.speed(1) turtle.begin_fill() turtle.left(140) turtle.forward(224) # 调用画爱心左边的顶部 LittleHeart() # 调用画爱右边的顶部 turtle.left(120) LittleHeart() # 画下线 turtle.forward(224) turtle.end_fill() turtle.pensize(5) turtle.up() turtle.hideturtle() # 在心中写字 一次 turtle.goto(0, 0) turtle.showturtle() turtle.color('#CD5C5C', 'pink') # 在心中写字 font可以设置字体自己电脑有的都可以设 align开始写字的位置 turtle.write(love, font=('gungsuh', 30,), align="center") turtle.up() turtle.hideturtle() time.sleep(2) # 在心中写字 二次 turtle.goto(0, 0) turtle.showturtle() turtle.color('red', 'pink') turtle.write(love, font=('gungsuh', 30,), align="center") turtle.up() turtle.hideturtle() # 写署名 if me != '': turtle.color('black', 'pink') time.sleep(2) turtle.goto(180, -180) turtle.showturtle() turtle.write(me, font=(20,), align="center", move=True) # 点击窗口关闭 window = turtle.Screen() window.exitonclick()
这篇关于Python程序设计教程第二版-第四章的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础
- 2024-09-2610 种方法写出更好的 Python 代码
- 2024-09-25Python编程基础详解
- 2024-09-25Python编程入门教程
- 2024-09-25从零开始使用Python构建LLaMA 3
- 2024-09-23Python中理解和使用树形结构的简单教程
- 2024-09-23Python 编程基础入门
- 2024-09-18初探Python股票自动化交易:入门指南
- 2024-09-18Python量化入门:轻松掌握量化分析基础与实战