4228
Comentário:
|
10824
|
Deleções são marcadas assim. | Adições são marcadas assim. |
Linha 4: | Linha 4: |
* Exercício 1 v{{{#valor = [] def nesima(n): for i in range(1,10): #para 9 elementos if i < 10: valor.append(n+i) print(valor) n = int(input('')) nesima(n) }}} |
|
Linha 54: | Linha 64: |
{{{#!python def exercicio2(n): for i in range(1, n+1): for j in range(i): print j, # print a line with 0 1 ... i print # print a new line }}} Proposta por HenriqueBaggio |
{{{#!python def imprimeLinha(numero): for n in range(1, numero + 1): print((' {} ').format(n), end='') print() def imprimeSequencia(numero): for numero in range(numero + 1): imprimeLinha(numero) numero = input('Digite um número: ') imprimeSequencia(int(numero)) }}} Proposta por Vinicius Almeida |
Linha 97: | Linha 116: |
* Exercício 6. {{{#!python def hora(h, m): b = h / 12 if b <= 1: hh = str(h) print('Sua hora: '+ hh + ':', end='') elif b > 1 and b < 2: hhh = str(h - 12) print('Sua hora: '+ hhh + ':', end='') else: print('Formato de hora invalido') if b <= 1 and m <= 60: print(m, 'a.m') elif b > 1 and m <= 60: print(m, 'p.m') else: print('Formato de minutos invalidos') while True: print('digite 666 para sair') h = int(input('Informe a hora:')) if h == 666: break m = int(input('Informe os minutos: ')) hora(h, m) }}} Proposta por [[https://www.python.org.br/wiki/Leo Araujo|Leo Araujo]] * Exercício 7 {{{#!python qtPrest = [] listaVc = [] ct = 0 def funcVP(VP, NumDias): Vpm = VP * 1.03 valorC = round(Vpm *((1 + 0.001) ** NumDias), 2) listaVc.append(valorC) print('Valor corrigido:', valorC) global ct ct += 1 qtPrest.append(ct) while True: VP = float(input('Digitr o valor da prestação: (0 para sair) ')) if VP == 0: break NumDias = int(input('Quantos dias que está em atraso: ')) funcVP(VP, NumDias) print('Quantidade de prestações pagas: ', ct) print('Valor total de prestações pagas no dia: R$', round(sum(listaVc)), 2) }}} Proposta por [[https://www.python.org.br/wiki/Leo Araujo|Leo Araujo]] * Exercício 7. Faça um programa que use a função valorPagamento para determinar o valor a ser pago por uma prestação de uma conta. O programa deverá solicitar ao usuário o valor da prestação e o número de dias em atraso e passar estes valores para a função valorPagamento, que calculará o valor a ser pago e devolverá este valor ao programa que a chamou. O programa deverá então exibir o valor a ser pago na tela. Após a execução o programa deverá voltar a pedir outro valor de prestação e assim continuar até que seja informado um valor igual a zero para a prestação. Neste momento o programa deverá ser encerrado, exibindo o relatório do dia, que conterá a quantidade e o valor total de prestações pagas no dia. O cálculo do valor a ser pago é feito da seguinte forma. Para pagamentos sem atraso, cobrar o valor da prestação. Quando houver atraso, cobrar 3% de multa, mais 0,1% de juros por dia de atraso. {{{#!python __author__ = 'JonasAlves' def valorPagamento(vp, da): if da < 1: valor = vp print(valor) return valor else: valor = (vp + vp * 0.03 + 0.01 * da) print(valor) return valor valor = [] vp = 0 da = 0 qp = 0 valortotal = 0 while True: qp += 1 vp = float(input('Qual o valor da prestacao? ')) da = int(input('Quantos dias esta em atraso? ')) if vp == 0: break valor.append(valorPagamento(vp, da)) qp -= 1 for i in range(qp): valortotal += valor[i] print('Relatorio do dia, foram pagas %d prestacoes no valor: ' %qp, valor) print('Valor total de prestacoes pagas: ', valortotal) }}} |
|
Linha 122: | Linha 234: |
Proposta por HenriqueBaggio {{{#!python def reverso(n): str(n)[::-1] }}} Proposta por IuriSilvio - |
* Exercício 10 {{{#!python from random import randint k = 0 def craps(): k = randint(2,13) if k == 7 or k == 11: print('Você é o mestre!! Ganhou!!', k) elif k == 2 or k == 3 or k == 12: print('Craps!!! Você perdeu!', k) elif k in range(4,6) or k in range(8,10): print('Esse é o seu numero vamos jogar!! Numero:', k) print('Digite D para jogar o dado: ') z = 0 while k != z: print('Digite D para jogar o dado:') s = input() if s == 'D': z = randint(2,13) print('Seu numero foi: ', z) if z == 7: print('Voce Perdeu!!!') break if z != 7: print('Voce Ganhou!!!') craps() }}} Proposta por [[https://www.python.org.br/wiki/Leo Araujo|Leo Araujo]] * Exercício 11: {{{#!python def dma(d,m,a): dia = d mes = m ano = a if dia <=31: meses=['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outrubro','Novembro','Dezembro'] mesPorextenso = meses[m-1] if mesPorextenso == 'Fevereiro' and dia > 28 and ano%4==1: print("Fevereiro só tem 28 dias em anos não bissextos!") elif mesPorextenso == 'Fevereiro' and dia>=30: print("Fevereiro só tem 29 ou 28 dias!") else: print("%d de %s de %i"%(d,mesPorextenso,ano)) else: print("Dia inválido") }}} |
Linha 142: | Linha 298: |
{{{#!python def reverso(n): str(n)[::-1] }}} Proposta por IuriSilvio - |
|
Linha 190: | Linha 340: |
* Exercício 14. Um quadrado mágico é aquele dividido em linhas e colunas, com um número em cada posição e no qual a soma das linhas, colunas e diagonais é a mesma. Elabore uma função que identifica e mostra na tela todos os quadrados mágicos com as características acima. Dica: produza todas as combinações possíveis e verifique a soma quando completar cada quadrado. Usar um vetor de 1 a 9 parece ser mais simples que usar uma matriz 3x3. {{{#!python def gera_combinacoes(lista, n): # gera tupla com todas as combinações possíveis da soma de três números da lista # que seja iguais a 15. for i in lista: for j in lista: if n + i + j == 15 and (n != i and n != j and i != j): combinacoes.append((n, i, j)) def gera_quadro(comb, L1): linha1 = L1 for i in range(len(comb)): linha2 = comb[i] for j in range(len(comb)): linha3 = comb[j] if (linha1[0] + linha2[0] + linha3[0] == 15) and\ (linha1[1] + linha2[1] + linha3[1] == 15) and\ (linha1[2] + linha2[2] + linha3[2] == 15) and\ (linha1[0] + linha2[1] + linha3[2] == 15) and\ (linha1[2] + linha2[1] + linha3[0] == 15): if (linha1[0] not in linha2) and\ (linha1[1] not in linha2) and\ (linha1[2] not in linha2): print(linha1) print(linha2) print(linha3) print() lista = [1, 2, 3, 4, 5, 6, 7, 8, 9] combinacoes = [] for n in range(1,10): gera_combinacoes(lista, n) print() for L1 in combinacoes: gera_quadro(combinacoes, L1) }}} Proposta por JoelNogueira |
Exercícios com Funções: Proposta de Soluções
Esta página contém algumas propostas de soluções para os exercícios da Lista 6: Funções.
- Exercício 1
v{{{#valor = [] def nesima(n):
- for i in range(1,10): #para 9 elementos
if i < 10:
- valor.append(n+i) print(valor)
n = int(input()) nesima(n) }}} Proposta por ThiagoSeixas Proposta por HenriqueBaggio Proposta por Lhzefe Proposta por RogerioDuarte Proposta por IuriSilvio Proposta por Leo Araujo Proposta por Leo Araujo Exercício 9:Faça uma função que retorne o reverso de um número inteiro informado. Por exemplo: 127 -> 721. Proposta por ThiagoSeixas Proposta por Leo Araujo Proposta por ThiagoSeixas Proposta por Lhzefe * Exercício 14. Um quadrado mágico é aquele dividido em linhas e colunas, com um número em cada Proposta por JoelNogueira 1 def hora(h, m):
2 b = h / 12
3 if b <= 1:
4 hh = str(h)
5 print('Sua hora: '+ hh + ':', end='')
6 elif b > 1 and b < 2:
7 hhh = str(h - 12)
8 print('Sua hora: '+ hhh + ':', end='')
9 else:
10 print('Formato de hora invalido')
11 if b <= 1 and m <= 60:
12 print(m, 'a.m')
13 elif b > 1 and m <= 60:
14 print(m, 'p.m')
15 else:
16 print('Formato de minutos invalidos')
17
18 while True:
19 print('digite 666 para sair')
20 h = int(input('Informe a hora:'))
21 if h == 666:
22 break
23 m = int(input('Informe os minutos: '))
24 hora(h, m)
1 qtPrest = []
2 listaVc = []
3 ct = 0
4 def funcVP(VP, NumDias):
5 Vpm = VP * 1.03
6 valorC = round(Vpm *((1 + 0.001) ** NumDias), 2)
7 listaVc.append(valorC)
8 print('Valor corrigido:', valorC)
9 global ct
10 ct += 1
11 qtPrest.append(ct)
12
13 while True:
14 VP = float(input('Digitr o valor da prestação: (0 para sair) '))
15 if VP == 0:
16 break
17 NumDias = int(input('Quantos dias que está em atraso: '))
18 funcVP(VP, NumDias)
19 print('Quantidade de prestações pagas: ', ct)
20 print('Valor total de prestações pagas no dia: R$', round(sum(listaVc)), 2)
1 __author__ = 'JonasAlves'
2
3 def valorPagamento(vp, da):
4 if da < 1:
5 valor = vp
6 print(valor)
7 return valor
8 else:
9 valor = (vp + vp * 0.03 + 0.01 * da)
10 print(valor)
11 return valor
12
13 valor = []
14 vp = 0
15 da = 0
16 qp = 0
17 valortotal = 0
18
19 while True:
20 qp += 1
21 vp = float(input('Qual o valor da prestacao? '))
22 da = int(input('Quantos dias esta em atraso? '))
23 if vp == 0:
24 break
25 valor.append(valorPagamento(vp, da))
26
27 qp -= 1
28 for i in range(qp):
29 valortotal += valor[i]
30
31 print('Relatorio do dia, foram pagas %d prestacoes no valor: ' %qp, valor)
32 print('Valor total de prestacoes pagas: ', valortotal)
1 from random import randint
2 k = 0
3
4 def craps():
5 k = randint(2,13)
6 if k == 7 or k == 11:
7 print('Você é o mestre!! Ganhou!!', k)
8 elif k == 2 or k == 3 or k == 12:
9 print('Craps!!! Você perdeu!', k)
10 elif k in range(4,6) or k in range(8,10):
11 print('Esse é o seu numero vamos jogar!! Numero:', k)
12 print('Digite D para jogar o dado: ')
13 z = 0
14 while k != z:
15 print('Digite D para jogar o dado:')
16 s = input()
17 if s == 'D':
18 z = randint(2,13)
19 print('Seu numero foi: ', z)
20 if z == 7:
21 print('Voce Perdeu!!!')
22 break
23 if z != 7:
24 print('Voce Ganhou!!!')
25 craps()
1 def dma(d,m,a):
2 dia = d
3 mes = m
4 ano = a
5
6 if dia <=31:
7 meses=['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outrubro','Novembro','Dezembro']
8 mesPorextenso = meses[m-1]
9 if mesPorextenso == 'Fevereiro' and dia > 28 and ano%4==1:
10 print("Fevereiro só tem 28 dias em anos não bissextos!")
11 elif mesPorextenso == 'Fevereiro' and dia>=30:
12 print("Fevereiro só tem 29 ou 28 dias!")
13
14 else:
15 print("%d de %s de %i"%(d,mesPorextenso,ano))
16
17 else:
18 print("Dia inválido")
1 def valor_por_omissao(valor):
2 if valor=='':
3 return int(1)
4 else:
5 return faixa_minima_maxima(int(valor))
6
7 def faixa_minima_maxima(valor):
8 if valor<1:
9 return 1
10 elif valor>20:
11 return 20
12 else:
13 return valor
14
15 def cria_linha(linha):
16 l='+'
17 for x in range(linha):
18 l+='-'
19 l+='+'
20 print l
21
22 def cria_coluna(linha, coluna):
23 for y in range(coluna):
24 c='|'
25 c+= ' '*linha
26 c+='|'
27 print c
28
29 def desenha_moldura(linha, coluna):
30 cria_linha(linha)
31 cria_coluna(linha, coluna)
32 cria_linha(linha)
33
34 linha=raw_input('Diga quantos +----+, entre 1 e 20: ')
35 coluna=raw_input('Diga quantos | |, entre 1 e 20: ')
36 desenha_moldura(valor_por_omissao(linha), valor_por_omissao(coluna))
1 def gera_combinacoes(lista, n):
2 # gera tupla com todas as combinações possíveis da soma de três números da lista
3 # que seja iguais a 15.
4 for i in lista:
5 for j in lista:
6 if n + i + j == 15 and (n != i and n != j and i != j):
7 combinacoes.append((n, i, j))
8
9
10 def gera_quadro(comb, L1):
11 linha1 = L1
12 for i in range(len(comb)):
13 linha2 = comb[i]
14 for j in range(len(comb)):
15 linha3 = comb[j]
16
17
18 if (linha1[0] + linha2[0] + linha3[0] == 15) and\
19 (linha1[1] + linha2[1] + linha3[1] == 15) and\
20 (linha1[2] + linha2[2] + linha3[2] == 15) and\
21 (linha1[0] + linha2[1] + linha3[2] == 15) and\
22 (linha1[2] + linha2[1] + linha3[0] == 15):
23
24 if (linha1[0] not in linha2) and\
25 (linha1[1] not in linha2) and\
26 (linha1[2] not in linha2):
27
28 print(linha1)
29 print(linha2)
30 print(linha3)
31 print()
32
33
34 lista = [1, 2, 3, 4, 5, 6, 7, 8, 9]
35 combinacoes = []
36
37 for n in range(1,10):
38 gera_combinacoes(lista, n)
39
40 print()
41
42 for L1 in combinacoes:
43 gera_quadro(combinacoes, L1)