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.
- Com base na sua descrição, eu fiz modificações mínimas no seu código para obter o resultado desejado
- Existem alguns erros no seu código. por exemplo:
range1
ao invés derange
. [Isso foi corrigido em uma edição por um usuário] - 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 :)