/ / Drukowanie największej liczby nieparzystej z tego kodu - python, pętle

Drukowanie największej liczby nieparzystej z tego kodu - python, pętle

Próbuję wydrukować największą liczbę nieparzystą. Do tej pory mam poniższy kod.

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)

Mogę wprowadzić 10 liczb całkowitych, ale dostaję tylko Your largest odd number was: zamiast największej liczby i to jest po prostu puste. Próbuję użyć (maks.) Do wydrukowania największej liczby całkowitej, ale niezbyt skutecznie.

Odpowiedzi:

0 dla odpowiedzi № 1

Czy to jest to, czego chcesz?

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

Już przypisujesz wartość maksymalną do największej, więc nie musisz wykonywać polecenia max (). Funkcja max () daje maksimum listy, largest jest liczbą całkowitą, a nie listą.


0 dla odpowiedzi nr 2

Jeśli chcesz użyć max, możesz zrobić coś takiego, utrzymując tylko nieparzyste liczby na liście.

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 dla odpowiedzi № 3

Kilka rzeczy do zapamiętania.

  1. Na podstawie twojego opisu dokonałem minimalnych modyfikacji twojego kod, aby uzyskać pożądany wynik
  2. W twoim kodzie jest kilka literówek. na przykład: range1 zamiast range. [Zostało to naprawione podczas edycji przez użytkownika]
  3. Ty używasz max na liczbie całkowitej. Nie tak powinno się używać max.

sprawdź, czy to działa

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)

Udostępnianie mojej produkcji

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 dla odpowiedzi nr 4

Twój kod można zmienić na:

a = zakres (1,11)

j = len (a) - 2

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

print(a[j])

Spowoduje to, że Twój program będzie iterował w całym zakresie od największej liczby do najmniejszej. Wszystko inne wygląda dobrze. Tak trzymaj :)