给定一个数字列表。如果它包含两个具有相同符号的相邻元素,则打印这些数字。如果没有相同符号的相邻元素,则不打印任何内容。如果有几对这样的邻居,打印第一对。
任务来了。
a = [int(i) for i in input().split()]
res = []
for i in range(len(a)-1):
if (a[i] > 0 and a[i+1] > 0) or (a[i] < 0 and a[i+1] < 0):
res.append(a[i])
res.append(a[i+1])
print(res[0], res[1])
做了小学。遍历列表,将两个具有相同符号的相邻元素添加到新列表的末尾。只输出新列表的前两个元素,以防有多个这样的对。通过所有测试,除了那些如果没有相同符号的相邻元素,则不显示任何内容。
“什么都不输出”到底是什么意思?
所以我只在至少有两个符合条件的相邻元素时才显示它。
这是众多可能选项中的另一个:
无论条件如何,无论如何都会在最后调用打印命令。如果没有相同字符的相邻元素,则 res 将是一个空列表,并且在调用 print 期间将抛出 IndexError。要了解这种情况,请在控制台中写入:
不可能从没有元素的列表中取出第一个元素。因此,在调用打印命令之前,强加一个res不为空的条件。一般来说,有更好的解决方案。但那是完全不同的对话:)