n > 0
e uma sequência com n
números reais, imprimí-los na ordem inversa a da leitura.
Dica: Criar uma lista vazia (seq = []
) e usar append
.
Solução 1:
Vamos fazer do modo tradicional, imprimindo dentro de um while
.
n = int(input("Digite n: ")) seq = [] i = 0 while i < n: num = int(input("Digite num: ")) seq.append(num) i += 1 i = n-1 while i >= 0: print(seq[i]) i -= 1
Solução 2:
Solução alternativa usando o comando for
.
n = int(input("Digite n: ")) seq = [] for i in range(n): num = int(input("Digite num: ")) seq.append(num) for i in range(n-1, -1, -1): print(seq[i])
Solução 3:
Outra solução alternativa usando o comando for
com índices negativos.
n = int(input("Digite n: ")) seq = [] for i in range(n): num = int(input("Digite num: ")) seq.append(num) for i in range(-1, -n-1, -1): print(seq[i])
Solução 4:
No Python, é possível fazer: print(seq.reverse())
.
n = int(input("Digite n: ")) seq = [] for i in range(n): num = int(input("Digite num: ")) seq.append(num) seq.reverse() for x in seq: print(x)
n > 0
lançamentos de uma roleta
(números entre 0 e 36), calcular a frequência de cada número.
Dicas:
for
para imprimir.n = int(input("Digite n: ")) freq = [0]*37 for i in range(n): num = int(input("roleta: ")) freq[num] += 1 i = 0 for x in freq: print("freq.rel.(%d): %f"%(i,x/n)) i += 1
n > 0
números reais,
imprimi-los eliminando as repetições.
Solução 1:
Solução usando while
.
n = int(input("Digite n: ")) seq = [] for i in range(n): num = int(input("num%02d: "%(i))) rep = False j = 0 while j < len(seq) and rep == False: if seq[j] == num: rep = True j += 1 if rep == False: # if not rep: seq.append(num) print(seq)
Solução 2:
Solução usando for
.
n = int(input("Digite n: ")) seq = [] for i in range(n): num = int(input("num%02d: "%(i))) rep = False for x in seq: if x == num: rep = True if rep == False: # if not rep: seq.append(num) print(seq)
Solução 3:
Solução compacta, aproveitando o fato de
que o Python permite testar diretamente se um elemento não faz parte de uma
lista, através do comando if num not in seq:
n = int(input("Digite n: ")) seq = [] for i in range(n): num = int(input("num%02d: "%(i))) if num not in seq: seq.append(num) print(seq)
n
e m
e duas sequências ordenadas com n > 0
e m > 0
números inteiros, criar uma nova lista
contendo a sequência ordenada com todos os elementos das
sequências originais sem repetição.Sugestão: Imagine uma situação real, por exemplo, dois fichários de uma biblioteca.
n = int(input("Digite n: ")) seq1 = [] for i in range(n): num = int(input("Digite o num%02d:"%(i))) seq1.append(num) m = int(input("Digite m: ")) seq2 = [] for i in range(m): num = int(input("Digite o num%02d:"%(i))) seq2.append(num) seq3 = [] i,j = 0,0 while i < len(seq1) and j < len(seq2): if seq1[i] < seq2[j]: seq3.append(seq1[i]) i += 1 elif seq2[j] < seq1[i]: seq3.append(seq2[j]) j += 1 else: seq3.append(seq1[i]) i += 1 j += 1 while i < len(seq1): seq3.append(seq1[i]) i += 1 while j < len(seq2): seq3.append(seq2[j]) j += 1 print(seq3)