/ / Die größte ungerade Zahl aus diesem Code drucken - Python, Schleifen

Drucken größte ungerade Zahl aus diesem Code - Python, Schleifen

Ich versuche, die größte ungerade Zahl zu drucken. Bisher habe ich den Code unten.

largest = None
for integer in range(1,11):
integer = int(input("Enter integer #%d: " % integer))
if integer % 2 != 0 and (not largest or integer > largest):
largest = integer
if largest is None:
print ("You didn"t enter any odd numbers")
else:
print ("Your largest odd number was: "), max(largest)

Ich kann 10 ganze Zahlen eingeben, aber alles was ich bekomme ist Your largest odd number was: statt der größten Zahl und das ist nur leer. Ich versuche, (max) zu verwenden, um die größte Ganzzahl zu drucken, aber nicht sehr erfolgreich.

Antworten:

0 für die Antwort № 1

Ist das was du willst?

largest = None
for integer in range(1,11):
integer = int(input("Enter integer #%d: " % integer))
if integer % 2 != 0 and (not largest or integer > largest):
largest = integer
if largest is None:
print ("You didn"t enter any odd numbers")
else:
print ("Your largest odd number was: "), largest

Sie weisen dem größten bereits den maximalen Wert zu, so dass Sie max () nicht tun müssen. Die Funktion max () gibt das Maximum einer Liste an. largest ist eine ganze Zahl, keine Liste.


0 für die Antwort № 2

Wenn Sie verwenden möchten maxSie könnten so etwas tun, indem Sie nur die ungeraden Zahlen in einer Liste belassen.

odd_numbers = []
for integer in range(1, 11):
integer = int(input("Enter integer #%d: " % integer))
if integer % 2 != 0:
odd_numbers.append(integer)

if not odd_numbers:
print("You didn"t enter any odd numbers")
else:
print("Your largest odd number was: {}".format(max(odd_numbers)))

0 für die Antwort № 3

Ein paar Dinge zu beachten.

  1. Basierend auf Ihrer Beschreibung habe ich minimale Änderungen an Ihrem System vorgenommen Code, um das gewünschte Ergebnis zu erhalten
  2. Es gibt einige Tippfehler in Ihrem Code. z.B: range1 Anstatt von range. [Dies wurde in einer Bearbeitung durch einen Benutzer behoben]
  3. Du benutzt max auf eine ganze Zahl. So soll nicht max verwendet werden.

Prüfen Sie, ob dies funktioniert

largest = None
for integer in range(1,11):
integer = int(input("Enter integer #%d: " % integer))
if integer % 2 != 0 and (not largest or integer > largest):
largest = integer
if largest is None:
print ("You didn"t enter any odd numbers")
else:
print ("Your largest odd number was: "), str(largest)

Meine Ausgabe teilen

bash$ python test_2.py
Enter integer #1: 2
Enter integer #2: 4
Enter integer #3: 6
Enter integer #4: 8
Enter integer #5: 2
Enter integer #6: 4
Enter integer #7: 6
Enter integer #8: 8
Enter integer #9: 3
Enter integer #10: 9
Your largest odd number was:  9

0 für die Antwort № 4

Ihr Code könnte geändert werden in:

a = Bereich (1,11)

j = len (a) - 2

while j > 0:
if a[j] % 2 == 1:
break
else:
j += 1

print(a[j])

Dies würde Ihr Programm von der größten bis zur kleinsten Zahl durchlaufen. Alles andere sieht gut aus. Mach weiter :)