大爽Python入门公开课教案

点击查看教程总目录

1. 求和

使用循环,计算列表所有项的和,并输出这个和。

列表示例

lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, 11]

实现代码如下

lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, 11]

s = 0
for item in lst:
s += item print(s)

输出为

98

上面是用for循环实现的,

下面用while来实现下,

lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, 11]

s = 0
i = 0
while i < len(lst):
item = lst[i]
s += item
i += 1 print(s)

输出也是98

拓展说明:很多for循环实现的功能,都可以使用while循环来实现

for循环的特点是遍历可迭代对象。

while循环中,可以添加一个随循环次数增长的index,来实现同样的遍历。

while循环的特点是按条件循环。

for循环去实现按条件来循环,比较难。

2. 寻找最大值

使用循环和判断,寻找出列表的最大值,并输出该最大值及其索引。

列表示例

lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, 11]

思路分析

寻找列表中的最大值及其索引,

一般会选择先将列表开头的项(即第一项)作为最大值初始值。

然后(使用循环)依次用后面的项与该最大值作比较,

如果后面的项比该最大值更大,则更新这个最大值(也更新最大值索引)。

当循环执行完后,列表中的所有项都经过了一轮比较。

此时得到的最大值,必然是列表所有项的最大值。

实现代码如下

lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, 11]

max_index = 0
max_value = lst[max_index]
for i in range(1, len(lst)):
if lst[i] > max_value:
max_index = i
max_value = lst[i] print("Max Value: %s" % max_value)
print("Max Value's index: %s" % max_index)

输出如下

Max Value: 21
Max Value's index: 5

补充分析:

第一题遍历时,直接遍历的列表中的所有的项。

第二题遍历时,遍历的是列表中第二项开始所有项的索引。

什么时候遍历项,什么时候遍历索引,取决与实际情景的需要。

比如第二题是因为要求最后输出时也输出最大项的索引。

3 求加权和

加权和:

比如现有列表[a1, a2, a3], 其权重列表为[w1, w2, w3]

那么其加权和为a1*w1 + a2*w2 + a3*w3

现有数据列表lst和其对应权重列表weights如下

lst = [8, 5, 7, -12, 19, 21, 10, -3, 2, 11]
weights = [1, 2, 5, 3, 4, 6, 8, 7, 2, 4]

lst中数据的加权和。

补充要求:忽略lst中小于0的数据(即不对这些数据算加权,也不计入和)。

代码实现

lst = [8, 5, 7, -12, 19, 21, 10, -3, 2, 11]
weights = [1, 2, 5, 3, 4, 6, 8, 7, 2, 4] s = 0
for i in range(len(lst)):
item = lst[i]
if item >= 0:
weight = lst[i]
v = item * weight
s += v print(s)

输出为1165

上面的if判断是判断的数据大于等于0时才执行。

下面我们用continue实现,数据小于0时跳过。

代码如下

lst = [8, 5, 7, -12, 19, 21, 10, -3, 2, 11]
weights = [1, 2, 5, 3, 4, 6, 8, 7, 2, 4] s = 0
for i in range(len(lst)):
item = lst[i]
if item < 0:
continue weight = lst[i]
v = item * weight
s += v print(s)

大爽Python入门教程 3-4 实践例题的更多相关文章

  1. 大爽Python入门教程 2-5 *拓展实践,对比与思考

    大爽Python入门公开课教案 点击查看教程总目录 本文偏难. 推荐等第一二三四章上完后,回过来拓展阅读. 基础情景思考 假设有这样一张成绩表 最左边的一列是名字,起名麻烦. 这里直接用ABC...来 ...

  2. 大爽Python入门教程 2-3 字符串,列表,字典

    大爽Python入门公开课教案 点击查看教程总目录 除了通用的序列方法, 列表和字符串还有些自己的专属方法. 后面介绍有些是英中文对照介绍(英文来自官方文档), 便于大家更深入的去理解其意思. 灵活的 ...

  3. 大爽Python入门教程 1-4 习题

    大爽Python入门公开课教案 点击查看教程总目录 1 [思考]方向变换 小明同学站在平原上,面朝北方,向左转51次之后(每次只转90度), 小明面朝哪里?小明转过了多少圈? (360度为一圈,圈数向 ...

  4. 大爽Python入门教程 3-3 循环:`for`、`while`

    大爽Python入门公开课教案 点击查看教程总目录 for循环 可迭代对象iterable 不同于其他语言. python的for循环只能用于遍历 可迭代对象iterable 的项. 即只支持以下语法 ...

  5. 大爽Python入门教程 3-5 习题

    大爽Python入门公开课教案 点击查看教程总目录 1 求平方和 使用循环,计算列表所有项的平方和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, ...

  6. 大爽Python入门教程 3-6 答案

    大爽Python入门公开课教案 点击查看教程总目录 1 求平方和 使用循环,计算列表所有项的平方和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, ...

  7. 大爽Python入门教程 3-1 布尔值: True, False

    大爽Python入门公开课教案 点击查看教程总目录 1 布尔值介绍 从判断说起 回顾第一章介绍的简单的判断 >>> x = 10 >>> if x > 5: ...

  8. 大爽Python入门教程 3-2 条件判断: if...elif..else

    大爽Python入门公开课教案 点击查看教程总目录 简单回顾if 回顾下第一章的代码 >>> x = 5 >>> if x > 0: ... print(&q ...

  9. 大爽Python入门教程 总目录

    作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 大爽Python入门公开课教案 本篇博客为公开课教案目录,正文内容在目录章节链接的博客里 除目录本身外,没有链接的章节, ...

随机推荐

  1. .Net微服务实战之可观测性

    系列文章 .Net微服务实战之技术选型篇 .Net微服务实战之技术架构分层篇 .Net微服务实战之DevOps篇 .Net微服务实战之负载均衡(上) .Net微服务实战之CI/CD .Net微服务实战 ...

  2. 我惊了!CompletableFuture居然有性能问题!

    你好呀,我是歪歪. 国庆的时候闲来无事,就随手写了一点之前说的比赛的代码,目标就是保住前 100 混个大赛的文化衫就行了. 现在还混在前 50 的队伍里面,稳的一比. 其实我觉得大家做柔性负载均衡那题 ...

  3. 关于国密HTTPS 的那些事(二)

    关于国密HTTPS 的那些事(二) 三. 需要解决的问题 前文我们了解了https,并梳理了国密https的流程.那么完成这些流程的目的是什么呢?又是怎么来保护数据的安全性呢?我们继续... 上文我们 ...

  4. 高中最后一刻&大学第一课&为人师的责任

    文章不是技术文,只是分享一些感想,作为一只程序猿,不说好好敲代码,跑出来思考人生,不是合格的程序猿,罪过罪过,自我反思3秒钟,我们继续,毕竟程序猿的人生不只是Coding,也希望自己这点感想被更多刚入 ...

  5. 题解 Crash 的文明世界

    题目传送门 题目大意 给出一个\(n\)个点的树,和常数\(k\),对于\(\forall i\in[1,n]\),求出: \[\sum_{j=1}^{n} \text{dist}(i,j)^k \] ...

  6. 2020.11.6-vj补题

    A - A CodeForces - 136A 题解:按输入的顺序输出对应的下标即可,定义一个数组,将输入的作为下标,下标为值,最后依次输出即可: #include<bits/stdc++.h& ...

  7. 4.19——数组双指针——26. 删除有序数组中的重复项 & 27. 删除有序数组中的重复项II & 80. 删除有序数组中的重复项 II

    第一次做到数组双指针的题目是80: 因为python的List是可以用以下代码来删除元素的: del List[index] 所以当时的我直接用了暴力删除第三个重复元素的做法,大概代码如下: n = ...

  8. Elasticsearch 中为什么选择倒排索引而不选择 B 树索引

    目录 前言 为什么全文索引不使用 B+ 树进行存储 全文检索 正排索引 倒排索引 倒排索引如何存储数据 FOR 压缩 RBM 压缩 倒排索引如何存储 字典树(Tria Tree) FST FSM 构建 ...

  9. 航胥:北航教务助手——Beta阶段发布声明

    下载地址在文章末尾! 这里是"航胥",一款更想要了解你的北航教务助手 Beta阶段,我们进化了! Beta阶段我们的新功能有: 课程评价功能 所有用户选过的课程都会在课程评价页面进 ...

  10. 第六次Alpha Scrum Meeting

    本次会议为Alpha阶段第六次Scrum Meeting会议 会议概要 会议时间:2021年5月2日 会议地点:线上会议 会议时长:20min 会议内容简介:本次会议主要由每个人展示自己目前完成的工作 ...