- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 3 anos, 9 meses atrás por Tutora Mayla.
-
AutorPosts
-
-
3 de março de 2021 às 12:00 #62075IcaroFilhoModerador
Bom dia, eu consegui resolver o exercício sem problemas, mas minha duvida é pra saber se há uma limitação quanto ao uso das f-string e .format() quando se usa certos trechos de código ou neste caso eu fiz algo errado.
Ex.: exercício pede para criarmos uma lista onde adicionamos valores e pergunta se deseja continuar. Depois analisa a lista dizendo quantos números foram inseridosno primeiro momento fiz este codigo : (OBS existem 2 respostas para A e 2 para B pois estava testando as possíveis variações)
minha duvida é referente ao trecho Blista = [] c = 0 while True: num = int(input('Digite um numero: ')) lista.append(num) cont = ' ' c+=1 while cont not in 'ns': cont = str(input('Deseja continuar? ')).strip().lower()[0] if cont == 'n': break print(f'A - fora digitados {len(lista)} numeros') print(f'A - fora digitados {c} numeros') print(f'B - lista de forma decrescente: {lista.sort(reverse=True)}') print('B - lista de forma decrescente: {}'.format(lista.sort(reverse=True))) if 5 in lista: print('C - 5 esta na lista') else: print('C - 5 nao esta na lista:')
o resultado de ambos os Bs foram: B – lista de forma decrescente: None
para resolver tive que por a expressão do lado de fora:lista.sort(reverse=True) print(f'B - lista de forma decrescente: {lista}') print('B - lista de forma decrescente: {}'.format(lista))
deste modo obtive a saída desejada.
eu não consigo utilizar o lista.sort(reverse=True) dentro da formatação ou eu fiz algo errado ? -
4 de março de 2021 às 19:41 #62148Tutora MaylaMestre
Icaro, o resultado B – lista de forma decrescente: None ocorre pois a função
lista.sort()
modifica a lista de forma a deixá-la ordenada mas sem retornar nenhum valor. Para usar esta função, deve ser feito da forma que você fez executandolista.sort(reverse=True)
antes de realizar o print.lista.sort(reverse=True) print(f'B - lista de forma decrescente: {lista}') print('B - lista de forma decrescente: {}'.format(lista))
Também é possível utilizar a função
sorted
para atingir o objetivo desejado. Esta função recebe a lista que deve ser ordenada como parâmetro e não a modifica, mas sim cria e retorna uma nova lista que esteja ordenada. Assim, o código ficariaprint(f'B - lista de forma decrescente: {sorted(lista, reverse=True)}')
Espero ter ajudado, caso a dúvida persista basta entrar em contato.
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.