首页 > 编程问答 >Python 迭代列表

Python 迭代列表

时间:2024-07-21 09:58:19浏览次数:8  
标签:python

分配 sum_extra 给定列表 test_grades 收到的额外学分总额。满分是 100 分,所以超过 100 分都是额外分。对于给定程序, sum_extra 是 8,因为 1 + 0 + 7 + 0 是 8。给定程序的示例输出: 额外总和:8

请原谅我,我是编码新手,而且真的很糟糕! 这是我的代码(不起作用)请帮忙!:

test_grades = [101, 83, 107, 90]

sum_extra = -999 # Initialize 0 before your loop

while test_grades > 100:
    test_grades = test_grades - 100
    sum_extra = test_grades[0:3]

for test_grades[0:3] > 100:
    test_grades = test_grades - 100
    sum_extra= test_grade[0] + test_grades[1] + test_grades[2] + test_grades[3]

print('Sum extra:', sum_extra)

我的两个循环中哪一个更适合这个问题,我如何编辑它们以使它们变得更好?因为我知道他们不会起作用!需要任何帮助!谢谢你! :)


走在正确的道路上,尤其是使用循环的想法!但是的代码中有一些误解。让我们分解一下如何修复它:

了解问题

我们的目标是遍历 test_grades 列表中的每个成绩,如果成绩高于 100,则仅添加超出 100 的部分。

代码修复

test_grades = [101, 83, 107, 90]
sum_extra = 0  # 从 0 开始;我们将在此处添加额外内容

# 遍历每个成绩
for grade in test_grades:
    # 检查成绩是否超过 100
    if grade > 100:
        # 计算额外信用并添加到 sum_extra
        sum_extra += (grade - 100) 

print('Sum extra:', sum_extra)

解释

  1. 初始化:
  2. 我们从 sum_extra = 0 开始。这至关重要,因为它为我们提供了一个起点来累加额外信用。

  3. 循环遍历成绩:

  4. for grade in test_grades: 创建了一个循环,该循环一次从 test_grades 列表中获取一个成绩,并将该成绩分配给变量 grade

  5. 检查额外信用:

  6. 在循环内, if grade > 100: 检查当前 grade 是否大于 100。

  7. 计算和添加额外信用:

  8. 如果 grade 大于 100, sum_extra += (grade - 100) 会计算超出 100 的部分,并将其添加到当前 sum_extra 中。

  9. 打印结果:

  10. 循环完成后, print('Sum extra:', sum_extra) 将显示总的额外信用。

为什么的原始代码不起作用

  • While 循环不适合: While 循环适合于在满足特定条件时重复代码块。在这种情况下,需要遍历列表中的每个项目,这使得 for 循环更合适。
  • 列表比较: 尝试比较 test_grades (一个列表)和 100。这没有意义。需要逐个比较列表中的每个成绩。
  • 列表切片分配: sum_extra = test_grades[0:3] 试图将成绩列表的一部分分配给 sum_extra ,而不是添加额外学分。

主要收获

  • For 循环: 当需要处理序列(如列表)中的每个项目时,for 循环非常有用。
  • 条件语句: if 语句帮助根据特定条件执行代码。
  • 累加: 逐步添加值(如计算总和时)是一种常见的编程模式。

如果是编码新手,我建议使用一些在线 Python 教程和练习。有大量资源可以帮助入门,并磨练的编码技能。玩得开心学习!

标签:python
From: 40231917

相关文章

  • 计算机毕业设计Python+Spark新能源汽车推荐系统 汽车大数据 汽车数据分析 汽车可视化
    表2黄河交通学院本科毕业设计(论文)开题报告学生姓名刘丹杰专业班级20本大数据一班学号2080910T01521设计(论文)题目基于Hadoop的新能源汽车销售数据分析系统的设计与实现选题的目的和意义:选题目的:新能源汽车销售数据分析系统的设计与实现旨在利用Hadoop等大数......
  • 为什么我的 python 程序一直说没有名为“PIL”的模块?
    我正在pythonIDLEshell中工作,由于某种原因pyautogui.locateOnScreen将无法工作。这是我的代码:frompyautoguiimport*importpyscreezeimportpyautoguiimporttimeimportkeyboardimportrandomimportwin32api,win32conwhile1:ifpyautogui.locateOnS......
  • 我在 Python 时间格式化函数中遇到代码问题
    我一直在研究一个Python函数,将给定的秒数转换为可读的时间格式(HH:MM:SS)。该函数对于大多数测试用例都能正常工作,但对于一些特定的输入会失败。这是我编写的函数:defmake_readable(seconds):ifseconds<60:s1=secondsh1,m1=(0,0)return......
  • 《流畅的Python》第二版 第11章
     fromarrayimportarrayimportmathclassVector2d:__match_args__=('x','y')typecode='d'def__init__(self,x,y):self.__x=float(x)self.__y=float(y)@propertydefx(self)......
  • 《流畅的Python》第二版 第12章
       fromarrayimportarrayimportmathimportfunctoolsimportitertoolsimportoperatorimportreprlibclassVector:typecode='d'def__init__(self,components):self._components=array(self.typecode,components)......
  • 如何在Python中给jupyter单元标准输入?
    我正在尝试在接受用户输入的jupyter笔记本上运行一个程序,但我不知道如何让它读取标准输入。例如,如果我使用shift-enter:a=input()print(a)运行代码,则单元格指示它正在运行,但不接受我的输入。我如何让它接受输入?你遇到的问题是Jupyternotebook中的代码单元默认......
  • Python:如何从 csvreader 列表中删除括号和单引号?
    Pythonn00b在这里。尝试使用csvreader从文件导入数组并打印一个值,但它添加了括号和单引号。这是我的代码:importrandomimportcsvwithopen('crimes.csv','r')ascsvfile:crimes=list(csv.reader(csvfile))hello=["Hello","Greetings","Hi&q......
  • Python 中的多行输入,支持空行并在控制台中检查“\n”
    您好,亲爱的社区,在解决某个竞赛任务时出现了问题。我解决了它,但由于输入棘手而无法交付。我在谷歌上搜索并尝试了几种找到的方法,但如果应用于此任务,它们中的每一种都有一些弱点。而且我无法完全重现所应用的输入,因为它嵌入在竞赛界面中;我可能只依赖描述。这就是为什么我......
  • Python Pandas - 读取 CSV 或 Excel
    我允许用户上传CSV或Excel文件。我正在使用pandas读取文件并创建数据框。由于我无法预测用户将上传哪种文件类型,因此我将pd.read_csv()和pd.read_excel()包装在try/except块中。ifform.validate_on_submit():input_filename=secure_filename(form.file.da......
  • 如何在 python 脚本中调用 robocopy 来批量复制多个文件夹?
    我正在尝试在网络驱动器之间移动多个大文件夹(>10Gb、>100个子文件夹、>2000个文件)。我尝试过在python中使用Shutil.copytree命令,它工作得很好,只是由于不同的原因它无法复制一小部分(<1%的文件)。我相信robocopy对我来说是最好的选择,因为我可以创建一个记录传输过......