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 № 1Czy 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.
- Na podstawie twojego opisu dokonałem minimalnych modyfikacji twojego kod, aby uzyskać pożądany wynik
- W twoim kodzie jest kilka literówek. na przykład:
range1
zamiastrange
. [Zostało to naprawione podczas edycji przez użytkownika] - 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 :)