2016-10-19 5 views
0

Ich habe Probleme mit einer Python-Frage. Die Frage ist, eine Funktion zu schreiben, die alle Ganzzahlen anzeigt, die sauber in dem Bereich von (1: x) durch 13 teilbar sind, wobei x eine Benutzereingabe ist. Ich bin neu bei Python und kämpfe mit dieser Frage. Ich brauche eine Benutzereingabe, die Python dann durch 13 teilt und die Antwort (en) anzeigt. Wenn also ein Benutzer "27" eingibt, lautet die Antwort "13" und "26".Python - Teilen einer Benutzereingabe, um eine Reihe von Antworten anzuzeigen

Mein Code so weit ist:

x = int(raw_input('Enter your Number Here: ')) 
    def divide(x): 
cond = True 
while cond: 
    x % 13 == 0 
    print x 
else: 
    cond = False 
    print 'Your number us not divisble by 13' 

    divide(x) 
+1

Sie scheinen eine 'if' in dem Zustand zu fehlen . –

+0

Wo sollte ich die if-Bedingung einfügen? Sieht der Code gut aus? –

+0

Nützliche eingebaute Funktion: https://docs.python.org/2/library/functions.html#xrange Zusätzliche Information: In einigen anderen Sprachen müssen Sie eine neue Variable erstellen, die auf den Startwert initialisiert und in a erhöht wird Schleife, bis es zu groß wird. –

Antwort

0

kann dies tun:

x = int(input("Enter your number here: ")) 

def divide(x): 
    for i in range(1,x): 
     if i % 13 == 0: 
      print (i) 

divide(x) 
+0

Ups du hast Recht, es ist überflüssig. Hatte ein ähnliches Ding schon irgendwo herumliegen und es gar nicht bemerkt. – JackTheCrab

0

x % 13 == 0 selbst nichts tut; Es wird Wahr oder Falsch ausgewertet, aber Sie ignorieren dann dieses Ergebnis. Wenn Sie etwas damit machen wollen, müssen Sie es in einer if-Bedingung verwenden.

Beachten Sie auch, dass der Einzug wichtig ist - der else muss mit dem if ausgerichtet werden. Es gibt keine Notwendigkeit für while überhaupt, weil sich innerhalb der Schleife nichts ändern kann.

if x % 13 == 0: 
    print x 
else: 
    print 'Your number us not divisible by 13' 
0

Stattdessen können Sie so etwas wie tun:

x = 27/13 

print [13 * i for i in range(1,x+1)] 
+0

Dies würde die Iterationen speichern und es ist sehr sauber Ansatz – andromeda

+0

Es wird jetzt funktionieren! – andromeda

+0

@Matthew Willis Können Sie die Antwort abstimmen, wenn es für Sie funktioniert hat? – andromeda

0

Borrow die Back-portierte Druckfunktion Python 3:

from __future__ import print_function 

Die Im Folgenden werden alle Zahlen im Bereich [1..x] gedruckt. inklusive

print([y for y in range(1,x+1,1) if y%13==0]) 
0

ich alle Vielfachen von 13 bis x zeigen würde einfach, 0 fallen:

def divide(x): 
    print range(0, x, 13)[1:] 

Demo:

>>> divide(27) 
[13, 26] 
Verwandte Themen