другие варианты решения задач со списком - PullRequest
0 голосов
/ 27 февраля 2020

Задача: Напишите программу, которая читает со стандартного ввода и возвращает:

произведение суммы разностей

всех элементов в данном списке. Ввод

Целое число n (1 <= n <= 500), обозначающее количество элементов в списке. Следующие n целых чисел являются следующими элементами списка. Выведите </p>

Три целых числа: произведение суммы разностей

всех элементов списка.

И это мои идеи, но я все еще получаю ошибку

from sys import stdin
def Simple_list_arithmetic():
print("Enter a positive number: ")
n = int(stdin.readline())
l = []
if n >= 1 and n <= 500:
    for i in range(1, n+1):
        l.append(i)
    #print(l)

    suma = 0
    for add in range(0, len(l)):
        suma = suma + l[add]
    print(suma)
    #return suma

    difference = 2
    for substract in range(0, len(l)):
        difference = difference - l[substract]
    print(difference)
    #return difference

    product = 1
    for increase in range(0, len(l)):
        product = product * l[increase]
    print(product)



    return suma, difference, product
else:
    print("Wrong number.")

все еще неправильно

       suma = 0
    q = [suma + l[add] for add in range(0, len(l))]
    print(sum(q))
    difference = 2
    w = [difference - l[substract] for substract in range(0, len(l))]
    print(list(w))
    product = 1
    e = [product * l[increase] for increase in range(0, len(l))]
    print(sum(e))

все еще неправильно

if n >= 1 and n <= 500:
    for x in range(1, n+1):
        print(x)
    print("\n")
    suma = 0
    for add in range(1, n+1):
        suma = suma + add
    print(suma)
    difference = 2
    for substract in range(1, n+1):
        difference = difference - substract
    print(difference)
    product = 1
    for increase in range(1, n+1):
        product = product * increase
    print(product)

с картой () и лямбда-кодом все еще неправильно

 t = list(map(lambda add: suma + l[add], range(0, len(l))))
    #return sum(t)

y = list(map(lambda increase: increase * l[increase], range(0, len(l))))
    #print(y[-1])
    #print(y)

1 Ответ

0 голосов
/ 27 февраля 2020

попробуйте это:

x = int(input("Enter a positive number: "))

if x >= 1 and x <= 500:
    sum = 0
    for i in range(x,501):
        sum +=i

    print(sum)

    diff = 2
    for i in range(x,501):
        diff -= i

    print(diff)

    prod = 1

    for i in range(x, 501):
        prod *= i

    print(prod)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...