Python 列表的交替和
9.编写一个程序,从用户那里接受9个整数,并将它们存储在一个列表中。接下来,计算列表中所有元素的交替和。例如,如果用户输入 1 4 9 16 9 7 4 9 11 然后进行计算 1-4+9-16+9-7+4-9+11=-2Python 列表的交替和,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
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中不工作?这非常有效。我们还没有深入学习%的格式,但这是我的目的。谢谢。很高兴知道!快乐编码