Python 列表的交替和

Python 列表的交替和,python,alternating,Python,Alternating,9.编写一个程序,从用户那里接受9个整数,并将它们存储在一个列表中。接下来,计算列表中所有元素的交替和。例如,如果用户输入 1 4 9 16 9 7 4 9 11 然后进行计算 1-4+9-16+9-7+4-9+11=-2 myList = [] value = None count = 0 while count != 9: value = int(input("Please enter a number: ")) myList.append(value) count = coun

9.编写一个程序,从用户那里接受9个整数,并将它们存储在一个列表中。接下来,计算列表中所有元素的交替和。例如,如果用户输入 1 4 9 16 9 7 4 9 11 然后进行计算 1-4+9-16+9-7+4-9+11=-2

myList = []
value = None
count = 0
while count != 9:
  value = int(input("Please enter a number: "))
  myList.append(value)
  count = count + 1
  if count == 9:
    break
print(myList)
def newList(mylist):
  return myList[0] - myList[1] + myList[2] - myList[3] + myList[4] - myList[5] + myList[6] - myList[7] + myList[8]
x = newList(myList)
print(x)
我的代码返回正确的答案,但我需要它打印出实际的交替和,如示例中所示。我已经在这上面呆了一段时间了。我在这方面有个心理障碍,在网上找不到类似的东西。 我感谢你的帮助和提示。 另外,这是Python3。
谢谢。

您可以这样做,但请将其放在打印报表中

print(myList[0] + " - " + myList[1] + " + " + myList[2] + " - " + myList[3] + " + " + myList[4] + " - " + myList[5] + " + " + myList[6] + " - " + myList[7] + " + " + myList[8] + " = " + x)
它不是完全干净的,但是它遵循你的逻辑,所以你的老师不会知道你从别人那里得到了你的解决方案

a=[1, 4, 9, 16, 9, 7, 4, 9, 11]
start1=0
start2=1
sum1=0
first_list=[a[i] for i in range(start1,len(a),2)]
second_list=[a[i] for i in range(start2,len(a),2)]
string=''
for i,j in zip(first_list,second_list):
    string+=str(i)+'-'+str(j)+'+'
string.rstrip('+')
print('{}={}'.format(string,str(sum(first_list)-sum(second_list))))
输出

1-4+9-16+9-7+4-9+=-2

以下几点可以奏效:

def sumList(theList):
    value = 0
    count = 0
    steps = ""
    for i in theList:
        if count % 2 == 0:
            value += i
            steps += " + " + str(i)
        else:
            value -= i
            steps += " - " + str(i)
        count += 1
    print(steps[3:])
    return value


print(sumList(myList))
它通过跟踪列表中的位置并使用模数运算符,在
+
-
之间交替。然后它计算值并附加到字符串以显示所采取的步骤。

尝试执行以下操作:

positives = myList[::2]
negatives = myList[1::2]
result = sum(positives) - sum(negatives)
print ("%s = %d" % (" + ".join(["%d - %d" % (p, n) for p, n in zip(positives, negatives)]), result))
我会解释我在这里做什么。前两行是列表的一部分。我在
myList
中每隔一个数字取一个,从0开始表示
,从1开始表示
。从那里,找到交替求和的结果只需要取
的和,然后从中减去
的和


最后一行有点忙。在这里,我将正数和负数压缩在一起,生成一个2元组列表,其中的形式为
(正数,负数)
,然后使用字符串格式生成
p-n
表单。从那里,我使用
join
将它们与加号连接在一起,产生
p0-n0+p1-n1+p2-n2…
。最后,我再次使用字符串格式以
p0-n0+p1-n1+p2-n2…=结果

一旦9个或更多数字列表准备就绪,您也可以执行以下操作

st = ''
sum = 0

for i, v in enumerate(myList):
    if i == 0:
        st += str(v)
        sum += v
    elif i % 2 == 0:
        st += "+" + str(v)
        sum += v
    else:
        st += "-" + str(v)
        sum -= v

print("%s=%d" % (st, sum))

它打印:
1-4+9-16+9-7+4-9+11=-2

对不起,又出了什么问题?我从示例数字中得到了正确的答案(-2),但我需要它也打印出实际的等式,而不仅仅是答案。这在Python 3中不运行。为什么它在Python 3中不工作?这非常有效。我们还没有深入学习%的格式,但这是我的目的。谢谢。很高兴知道!快乐编码