2017-07-12 3 views
-2

Ich bin brandneu zu Python, und ich nehme derzeit einen kostenlosen Online-Kurs.Multiplizieren Sie Elemente in Bereich in Python

Ich bin fest, um herauszufinden, wie dieses einfache optional Problem in meinem Kurs gefunden zu kodieren:

[] mit Bereich (x) multiplizieren die Zahlen 1 bis 7

1x2x3x4x5x6x7 = 5040

x = 7 
product = 0 

for item in range(x): 

Dies ist, wo ich bin stecken:

ich habe eine Variable für den Bereich, 7, und eine Variable für das in der Schleife verwendet Produkt hergestellt. Ich versuche, die Dinge in der Schleife wie:

Produkt = item * item

, die auch keinen Sinn machen. Ich habe gerade eine totale Blockade. Mir ist klar, dass das eine einfache Sache sein sollte, aber aus irgendeinem Grund nicht. Ich habe versucht, andere Variablen wie "number" und "previous_number" zu machen, um die Dinge für mich einfacher zu machen, aber ich werde nur verwirrt.

Ich brauche eine For-Schleife in dieser Lösung. Ich verstehe die Logik gerade nicht. Eine Lösung und Erklärung wäre großartig! Bitte helfen Sie!

+0

Verwenden Sie eine Variable namens vorherige Nummer. Setzen Sie für jede Iteration der Schleife die vorherige Zahl auf das Element der vorherigen Anzahl mal. Initialisiere auf 1. –

Antwort

0

Check this out:

answer = 1 

for i in range(1,8): 
    print("Right now, answer is", answer) 
    print("Right now, i  is", i) 
    print("I am going to multiply answer ({}) with i ({}) and store the result in answer".format(answer, i)) 
    answer = answer * i 
    print("Now, answer is", answer) 

print("Finally, answer is", answer) 
+0

Vielen Dank! Dies hilft zu klären, was sehr gut läuft :) –

0

versuchen, etwas wie folgt aus:

x = 7 
product = 1 

for item in range(1, x + 1): 
    product = item * product 

print(product) 

Beachten Sie, dass Produkt beginnt bei ein und Range-Funktion beginnt an einem als auch. Andernfalls wird der Artikel weiterhin mit Null multipliziert.

1

Sie müssen product = 1 initialisieren (als 1 die multiplikative Identität) und innerhalb der Schleife müssen Sie einfach:

product *= item 

, die für kurze Hand ist:

product = product * item 

In Python gibt es auch eine reduce Funktion, die diese Art von Fragen behandelt:

In []: 
import operator as op 
import functools as ft 

x = 7 
ft.reduce(op.mul, range(1,x+1)) 

Out: 
5040 
Verwandte Themen