Jupyter Notebook中Python代码无输出问题求助
问题分析与解决
我来帮你捋捋这个问题——你写的代码里循环压根没执行起来,所以total一直是初始值0,虽然print(total)会输出0,但显然这不是你预期的结果对吧?
问题根源
先看你写的while循环条件:
while i < len(given_list) and given_list[i] <= 0:
你的given_list第一个元素是7,而7 <= 0是False,and连接的条件只要有一个为False,整个条件就不成立,所以循环直接跳过,完全没执行里面的累加逻辑。
看列表里的元素,你应该是想累加所有负数?那这个循环条件完全写反了——你现在的逻辑是“只有当元素小于等于0时才进入循环”,但第一个元素是正数,循环直接终止,后面的负数根本没机会被处理。
修正方案
如果你想累加列表里的所有负数,有两种实用的写法:
写法1:调整循环逻辑,遍历所有元素并判断
given_list = [7, 5, 4, 4, 3, 1, -2, -3, -5, -7] total = 0 i = 0 while i < len(given_list): # 只对小于等于0的元素进行累加 if given_list[i] <= 0: total += given_list[i] i += 1 print(total)
写法2:用for循环更简洁(Python里更推荐的写法)
given_list = [7, 5, 4, 4, 3, 1, -2, -3, -5, -7] total = 0 for num in given_list: if num <= 0: total += num print(total)
运行这两段代码,都会输出-17(也就是-2 + (-3) + (-5) + (-7)的结果),这应该就是你想要的效果了。
内容的提问来源于stack exchange,提问作者bur407
相关产品推荐
相关产品推荐

