python - 为什么 python 不一次返回所有测试用例?为什么我再次按回车后才能显示最后一个测试用例?
问题描述
输入:
4
4
1 -2 3 -4
3
0 0 0
5
1 -1 1 -1 1
6
40 -31 -9 0 13 -40
首次运行代码时的输出:
YES
[1, -2, 3, -4]
NO
YES
[1, -1, 1, -1, 1]
再次按回车时的输出:
YES
[40, -31, -9, 0, 13, -40]
编码:
numberOfTestCase = int(input())
for i in range(numberOfTestCase):
listLength = int(input())
aList = [int(x) for x in input().split()]
sumList = 0
for x in range(listLength):
sumList = aList[x] + sumList
if sumList == 0:
print("NO")
else:
print("YES")
print(aList)
那么这个程序是做什么的呢? 该程序旨在计算列表的总和是否等于或不等于零,如果不等于零则返回列表。
输入说明
第一行:表示有多少个测试用例
第二行:表示第一个列表中有多少
个第三行:第一个测试用例/列表
第四个.....n:针对不同的测试用例重复第二行和第三行
我的问题:为什么 python 不一次返回所有测试用例?为什么我再次按回车后才能显示最后一个测试用例?
解决方案
Python 不会一次返回所有测试用例,因为if
检查总和并打印“YES”或“NO”的语句位于for
循环内。在每次循环迭代中,您的代码执行以下操作:
- 将列表长度作为输入
- 将列表值作为输入
- 将列表中的值相加
sumList
- 检查是否
sumList == 0
- 打印“NO”或“YES”和列表
因此,如果我理解正确,解决您的问题的一种方法可能是创建两个for
在range(numberOfTestCase)
. 第一个获取所有输入并将它们存储在listLength
and中aList
。第二个检查是否满足条件并打印结果。
numberOfTestCase = int(input())
listLength = []
aList = []
for i in range(numberOfTestCase):
listLength.append(int(input()))
tmpList = [int(x) for x in input().split()]
aList.append(tmpList)
for i in range(numberOfTestCase):
sumList = 0
for x in range(listLength[i]):
sumList = aList[i][x] + sumList
if sumList == 0:
print("NO")
else:
print("YES")
print(aList)
推荐阅读
- docker - Docker EE 安装:gpg:找不到有效的 OpenPGP 数据 [已解决]
- vb.net - USB 耳机麦克风静音按钮未与使用 VB.net 和 NAudio 的双向系统设备麦克风静音复选框同步
- google-apps-script - 在尝试执行任何需要授权的操作之前检查用户是否已授权脚本
- scala - 在 IntelliJ 中向遗留 Scala 项目添加单元测试
- linux - 使用 list 命令时 GDB 不显示源代码
- python - 如何在 Python 3.8 中将函数指针传递给 C api
- flutter - 我想在这个 Flutter 博客应用中添加一个赞按钮
- google-earth-engine - 如何在谷歌地球引擎中智能地获取本月和上月的差异图像?
- php - 相等值未能输入条件
- google-cloud-firestore - NoSQL如何在集合中查找id