python - While循环:卡在一点
问题描述
如何找到此列表中所有负数的总和
我创建了以下代码:
given_list3 = [7, 5, 4, 4, 3, 1, -2, -3, -5, -7]
total7 = 0
i = 0
while i < len(given_list3) and given_list3[i] < 0:
total7 += given_list3[i]
i += 1
print(total7)
不知道为什么它给我一个零。请帮忙。
解决方案
给定代码中的问题是它一开始就停止运行。这是因为条件:
while i < len(given_list3) and given_list3[i] < 0
当它检查第一个元素的条件时,即使i < len(given_list3)
为真但given_list3[i] < 0
为假。由于and
两个条件之间存在,因此这意味着两个条件都必须为真才能循环运行,否则它将立即退出。此外,如果您的代码计算只发生在一行中,那么您可以执行以下操作:
while i < len(given_list3):
total7 += ((given_list3[i] < 0)*given_list3[i])
i += 1
(given_list3[i] < 0)
如果 i 小于 0,则在代码中变为 1(真),否则变为 0(假)。所以所有积极的成分都被消除了。
推荐阅读
- json - 在 vs-code 中的 JSON 中,如何为数组中的字符串赋予与对象中的字符串不同的颜色?
- visual-studio - Visual Studio 将 npm 包显示为未安装
- java - 具有相同数据的两个数据库,报告的时间不同
- excel - 是否有一个 Excel 公式可以根据从 TRUE 到 FALSE 的变化提供单元格位置?
- biztalk - Rest API BizTalk 2016 的 WCF-WebHttp 错误处理
- c# - 以原子方式从 ConcurrentQueue 中获取所有内容
- r - 当字符串以零开头时,R strtoi() 返回 NA
- android - ConstraintLayout 中的 TextView 换行/关闭屏幕
- python - 如何使用 GraphQL 开发全局 Mutation 类以在 Graphene-Django 中执行 ADD 操作?
- r - 为什么这里会出现 NA/NaN 错误,我该怎么办?