/ / Imprimindo o maior número ímpar deste código - python, loops

Imprimindo o maior número ímpar deste código - python, loops

Estou tentando imprimir o maior número ímpar. Até agora eu tenho o código abaixo.

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)

Eu sou capaz de inserir 10 inteiros, mas tudo que eu obtenho é Your largest odd number was: em vez do maior número e isso é apenas em branco. Eu estou tentando usar o (max) para imprimir o maior número inteiro, mas não com muito sucesso.

Respostas:

0 para resposta № 1

É isso que voce quer?

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

Você já está atribuindo valor máximo para maior, então você não precisa fazer max (). A função max () dá o máximo de uma lista, largest é um inteiro e não uma lista.


0 para resposta № 2

Se você quiser usar max, você poderia fazer algo assim mantendo apenas os números ímpares em uma lista.

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 para resposta № 3

Algumas coisas para anotar.

  1. Com base na sua descrição, eu fiz modificações mínimas no seu código para obter o resultado desejado
  2. Existem alguns erros no seu código. por exemplo: range1 ao invés de range. [Isso foi corrigido em uma edição por um usuário]
  3. Você está usando max em um inteiro. Não é como o max deve ser usado.

verifique se isso funciona

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)

Compartilhando minha saída

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 para a resposta № 4

Seu código pode ser alterado para:

a = intervalo (1,11)

j = len (a) - 2

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

print(a[j])

Isso faria com que seu programa fosse repetido em seu intervalo, do maior para o menor. Tudo o mais parece bom. Continue :)