h0t8 - Challenge 2 - FULL - Python

Página 1 de 2 1, 2  Seguinte

Ir em baixo

h0t8 - Challenge 2 - FULL - Python

Mensagem  h0t8 em Qui Jul 14, 2011 3:47 am

Challenge 2 - Light

1 - Faça um Programa que leia um número e exiba o dia correspondente da semana (Começando de domingo ). Caso você digite outro valor deve aparecer valor inválido.
1
2
3
4
5
# -*- coding: utf-8 -*-
while True:
try: print {1:"É Domingo", 2:"É Segunda-feira", 3:"É Terça-feira", 4:"É Quarta-feira", 5:"É Quinta-feira", 6:"É Sexta-feira", 7:"É Sabado"}[int(raw_input("Digite um número de 1 a 7 referente ao dia da semana: "))]
except (KeyError, ValueError): print("Número inválido");continue
break


Documentação de cada linha do código: http://codepad.org/ZMtdTYdI

2 - Faça um Programa que peça um número correspondente a um determinado ano e em seguida informe se este ano é ou não bissexto.
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
# -*- coding: utf-8 -*-
while True:
data = raw_input("Digite uma data com o seguinte formato dd/mm/aaaa: ")
if "/" not in data: print("A data precisa estar nesse formato dd/mm/aaaa");continue
try:
data = eval(data.replace("/", ","))
except: continue
if data[0] > 31 and data[1] > 12 or data[0] < 0 and data[1] < 0: print("Data totalmente inválida");continue
if data[0] > 31 or data[0] < 0: print("Dia Inválido");continue
if data[1] > 12 or data[1] < 0: print("Mês Inválido");continue
if data[2] < 0: print("Non ita vetus sodalis.");continue
if data[2] % 400 == 0 or data[2] % 4 == 0 and data[2] % 100 != 0: print("Data Válida - É bissexto");break
if data[2] % 100 == 0 and data[2] % 400 != 0: print("Data Inválida - Não é bissexto");break
else: print("Data Inválida - Não é bissexto");break


Documentação de cada linha do código: http://codepad.org/g7Ru83BX

3 - Faça um programa que peça uma nota, entre zero e dez. Mostre uma mensagem caso o valor seja inválido e continue pedindo até que o usuário informe um valor válido.
1
2
3
4
5
6
# -*- coding: utf-8 -*-
while True:
try: nota = int(raw_input("Digite uma nota de 0 a 10: "))
except ValueError: print("Valor Inválido");continue
if nota < 0 or nota > 10: print("Valor Inválido");continue
else: print("Valor Correto");break


Documentação de cada linha do código: http://codepad.org/Y6vQ8Aha

4 - Faça um programa que leia um nome de usuário e a sua senha e não aceite a senha igual ao nome do usuário, mostrando uma mensagem de erro e voltando a pedir as informações.
1
2
3
4
5
# -*- coding: utf-8 -*-
while True:
login, senha = raw_input("Digite seu login: "),raw_input("Digite sua senha: ")
if senha == login: print("A senha não pode ser igual ao login");continue
else: break


Documentação de cada linha do código: http://codepad.org/MxAyAsxC

5 - Faça um programa que calcule a quantidade dinheiro gasto por um fumante.
1
2
3
4
5
# -*- coding: utf-8 -*-
while True:
try: anos, dia, preco = int(input("Digite o número de anos que a pessoa fuma: ")),int(input("Digite o número de cigarros fumados por dia: ")), raw_input("Digite o preço da carteira de cigarro: "); preco = float(preco.replace(",", "."))
except (NameError, ValueError): print("Números ¬¬"); continue
else: print("Você gastou R$%.2f ao longo dos anos em que fumou") %((preco/20.0)*dia*(365*anos)); break


Documentação de cada linha do código: http://codepad.org/sBM0CiAl

6 - Escreva um algoritmo para encontrar o número do telefone correspondente a um determinado
nome
1
2
3
# -*- coding: utf-8 -*-
try: print {"Fulano":"334-45566", "Cicrano":"112-23344", "Beltrano":"551-12233", "Zé":"443-34422", "Toinho":"661-12233", "Luizinho":"776-65577"}[raw_input("Digite o nome da pessoa para ver o número telefónico dela: ")]
except KeyError: print("O nome digitado não se encontra na lista")


Documentação de cada linha do código: http://codepad.org/y0AhtLIF

7 - Faça um Programa que leia dois vetores com 10 elementos cada podendo ser strings ou números. Gere um terceiro vetor de 20 elementos, cujos valores deverão ser compostos pelos elementos intercalados dos dois outros vetores.
1
2
vetor1, vetor2, = range(1,11), ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]; vetor3 = vetor1+vetor2 
print(vetor1); print(vetor2); print(vetor3)


Documentação de cada linha do código: http://codepad.org/CX8Sdekb

8 - Utilizando vetores faça um programa que faça 5 perguntas para uma pessoa sobre um crime.
 1
2
3
4
5
6
7
8
9
10
11
12
13
# -*- coding: utf-8 -*-
print("Digite apenas Sim ou Não")
while True:
perguntas = ["Telefonou para a vítima?", "Esteve no local do crime?", "Mora perto da vítima?", "Devia para a vítima?", "Já trabalhou com a vítima?"]
respostas = []
for i in range(0,5):
respostas.append(raw_input(perguntas[i]+"\n"))
if respostas[i] != "Sim" and respostas[i] != "Não": print("Apenas responda Sim ou Não para as perguntas");break
if respostas.count("Sim") == 2: print("Suspeita");break
elif respostas.count("Sim") == 3 or respostas.count("Sim") == 4: print("Cúmplice");break
elif respostas.count("Sim") == 5: print("Assassino");break
elif respostas.count("Não") == 5 or respostas.count("Sim") == 1: print"Inocente";break
continue


Documentação de cada linha do código: http://codepad.org/x0p2b8PX

9 - Faça um programa que leia 2 strings e informe o conteúdo delas seguido do seu comprimento. Informe também se as duas strings possuem o mesmo comprimento e são iguais ou diferentes no conteúdo.
1
2
3
4
5
6
7
# -*- coding: utf-8 -*-
string1, string2 = raw_input("Digite uma string: "), raw_input("Digite outra string: ")
print("Tamanho da String 1 '%s': %i caracteres\nTamanho da String 2 '%s': %i caracteres") %(string1, len(string1), string2, len(string2))
if len(string1) != len(string2): print("As duas strings são de tamanhos diferentes.")
else: print("As duas strings são do mesmo tamanho.")
if string1 != string2: print("As duas strings possuem conteúdos diferentes.")
else: print("As duas strings possuem o mesmo conteúdo.")


Documentação de cada linha do código: http://codepad.org/IdilRVAX


Última edição por h0t8 em Seg Jul 18, 2011 5:26 pm, editado 5 vez(es)
avatar
h0t8

Mensagens : 29
Data de inscrição : 06/07/2011
Idade : 24
Localização : 127.0.0.1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  Z3r0 em Sex Jul 15, 2011 6:49 am

h0t8 escreveu:
2 - Faça um Programa que peça um número correspondente a um determinado ano e em seguida informe se este ano é ou não bissexto.
 1
2
3
4
5
6
7
8
9
10
11
12
# -*- coding: utf-8 -*-
while True:
data = raw_input("Digite uma data com o seguinte formato dd/mm/aaaa: ")
if "/" not in data: print("A data precisa estar nesse formato dd/mm/aaaa");continue
try: data = eval(data.replace("/", ","))
except: continue
if data[0] > 31 and data[1] > 12 or data[0] < 0 and data[1] < 0: print("Data totalmente inválida");continue
if data[0] > 31 or data[0] < 0: print("Dia Inválido");continue
if data[1] > 12 or data[1] < 0: print("Mês Inválido");continue
if data[2] < 0: print("Non ita vetus sodalis.");continue
elif data[2] % 400 == 0 or data[2] % 4 == 0 and data[2] % 100 != 0: print("Data Válida - É bissexto");break
elif data[2] % 100 == 0 and data[2] % 400 != 0: print("Data Inválida - Não é bissexto");break


Documentação de cada linha do código: http://codepad.org/SoPi4LwJ

Esse deu erro veio... tipo.. se você digitar por exemplo: 15/07/2011 , era para aparecer "Data Inválida - Não é bissexto" mas ao invés disto, está retornando ao laço while "Digite uma data com o seguinte formato dd/mm/aaaa: " . Se imprimisse ""Data Inválida - Não é bissexto" e depois retornasse para o laço, estaria correto...mas.. o problema é que não está printando...e nesse caso saber se é ou não é importante. Debbuga ae =D

5 - Faça um programa que calcule a quantidade dinheiro gasto por um fumante.

E sobre esse....o que tenho a dizer é........ NÃO fumar... rende viu? ahuuahhuaa
avatar
Z3r0

Mensagens : 149
Data de inscrição : 01/07/2011
Idade : 32

Ver perfil do usuário http://projectzim.blogspot.com

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  Z3r0 em Sex Jul 15, 2011 7:21 am

h0t8 escreveu:
7 - Faça um Programa que leia dois vetores com 10 elementos cada podendo ser strings ou números. Gere um terceiro vetor de 20 elementos, cujos valores deverão ser compostos pelos elementos intercalados dos dois outros vetores.

1
vetor1, vetor2, = range(1,11), ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]; vetor3 = vetor1+vetor2

Outra coisa ...estranhamente...este não está retornando nada... o.o
avatar
Z3r0

Mensagens : 149
Data de inscrição : 01/07/2011
Idade : 32

Ver perfil do usuário http://projectzim.blogspot.com

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  h0t8 em Sex Jul 15, 2011 12:56 pm

Z3r0 escreveu:
h0t8 escreveu:
7 - Faça um Programa que leia dois vetores com 10 elementos cada podendo ser strings ou números. Gere um terceiro vetor de 20 elementos, cujos valores deverão ser compostos pelos elementos intercalados dos dois outros vetores.

1
vetor1, vetor2, = range(1,11), ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]; vetor3 = vetor1+vetor2

Outra coisa ...estranhamente...este não está retornando nada... o.o

É que não tinha nenhuma mensagem falando quera era pra mostrar o conteúdo dos vetores na pagina dos exercícios, de qualquer forma já corrigi Smile
Sobre o exercício de número 2, realmente não está funcionando corretamente e estou tentando ver pq aqui, assim que eu corrigir posto o código consertado aqui.
avatar
h0t8

Mensagens : 29
Data de inscrição : 06/07/2011
Idade : 24
Localização : 127.0.0.1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  OmegaMK-XII em Sex Jul 15, 2011 4:36 pm

Acho que é nas regras do ano bissexto. 2011 não encaixa em nenhuma delas, dá uma revisada nelas.

Vc poderia escrever data[2] % 400 == 0 or (data[2] % 4 == 0 and data[2] % 100 != 0) pro interpretador saber a regra diretinho. Ele poderia tentar fazer (data[2] % 400 == 0 or data[2] % 4 == 0) and data[2] % 100 != 0 e sair errado.

Usando parênteses.
avatar
OmegaMK-XII

Mensagens : 29
Data de inscrição : 04/07/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  h0t8 em Sex Jul 15, 2011 8:20 pm

OmegaMK-XII escreveu:Acho que é nas regras do ano bissexto. 2011 não encaixa em nenhuma delas, dá uma revisada nelas.

Vc poderia escrever data[2] % 400 == 0 or (data[2] % 4 == 0 and data[2] % 100 != 0) pro interpretador saber a regra diretinho. Ele poderia tentar fazer (data[2] % 400 == 0 or data[2] % 4 == 0) and data[2] % 100 != 0 e sair errado.

Usando parênteses.

Obrigado pela dica, tentei ela mas não funcionou, resolvi o problema colocando um else pra caso nenhuma das condições anteriores fossem verdadeira.
avatar
h0t8

Mensagens : 29
Data de inscrição : 06/07/2011
Idade : 24
Localização : 127.0.0.1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  Z3r0 em Sab Jul 16, 2011 2:32 pm

h0t8 escreveu:
OmegaMK-XII escreveu:Acho que é nas regras do ano bissexto. 2011 não encaixa em nenhuma delas, dá uma revisada nelas.

Vc poderia escrever data[2] % 400 == 0 or (data[2] % 4 == 0 and data[2] % 100 != 0) pro interpretador saber a regra diretinho. Ele poderia tentar fazer (data[2] % 400 == 0 or data[2] % 4 == 0) and data[2] % 100 != 0 e sair errado.

Usando parênteses.

Obrigado pela dica, tentei ela mas não funcionou, resolvi o problema colocando um else pra caso nenhuma das condições anteriores fossem verdadeira.

Tá vendo........as vezes o que salva.. é uma mera gambi!
avatar
Z3r0

Mensagens : 149
Data de inscrição : 01/07/2011
Idade : 32

Ver perfil do usuário http://projectzim.blogspot.com

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  Op@alo em Dom Jul 17, 2011 8:43 pm

hot8, olha meu jogo la *-*
avatar
Op@alo

Mensagens : 67
Data de inscrição : 02/07/2011
Idade : 26
Localização : Parnamirim-RN

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Challenge 2 - Moderate

Mensagem  h0t8 em Seg Jul 18, 2011 5:24 pm

1 - Faça um programa que dado um vetor de elementos com uma repetição, encontre o elemento repetido. Ou seja, encontrar o elemento que aparece duas vezes dentro de um vetor.
1
2
for v in [1,2,3,4,1,5]:
if [1,2,3,4,1,5].count(v) == 2: print("Elemento repetido ="),v;break


Documentação de cada linha do código: http://codepad.org/5G5Ver4H

2 - Já brincou de pedra, papel, tesoura? Então vamos brincar disto em programação. Faça um programa que simula dois jogadores brincando de pedra , papel, tesoura levando em conta os seguintes valores correspondentes à brincadeira.
1
2
3
4
5
6
7
8
9
# -*- coding: utf-8 -*-
import random
lista = ["Pedra", "Papel", "Tesoura"]
jg1, jg2 = raw_input("Digite o nome do jogador 1: "), raw_input("Digite o nome do jogador 2: ")
while True:
if random.choice(lista) == "Pedra" and random.choice(lista) == "Papel": print("Papel embrulha a Pedra\n%s Vence!")%jg2;break
elif random.choice(lista) == "Tesoura" and random.choice(lista) == "Papel": print("Tesoura corta o Papel\n%s Vence!")%jg1;break
elif random.choice(lista) == "Pedra" and random.choice(lista) == "Tesoura": print("Pedra quebra a Tesoura\n%s Vence!")%jg1;break
else: continue


Documentação de cada linha do código: http://codepad.org/aZRNxCLJ

3 - Crie um programa que preencha aleatoriamente um vetor do tipo inteiro de 10 posições com números entre 0 e 99, peça pro usuário digitar um número e busque o número digitado no vetor. Se encontrado avise em que posição do vetor o número se encontra, se não encontrado avise que o número não existe e retorne para a pergunta inicial.
1
2
3
4
5
6
7
8
9
# -*- coding: utf-8 -*-
import random
vetor = []
for i in range(1,11): vetor.append(random.choice(range(1,100)))
while True:
try: n = int(input("Digite um número: "))
except: continue
if n in vetor: print("O número %i está na %s posição")%(n,{0:"primeira",1:"segunda",2:"terceira",3:"quarta",4:"quinta",5:"sexta",6:"sétima",7:"oitava",8:"nona",9:"décima"}[vetor.index(n)]);break
else: print("Este número não existe no vetor, digite um número novamente");continue


Documentação de cada linha do código: http://codepad.org/a0hiMKYR

4 - Em uma Universidade, alunos estão com diculdade em calcular a média das notas de três provas aplicadas em um trimestre. Faça um programa que peça a nota das três avaliações sendo que a média nesta Universidade, é 6.0.
 1
2
3
4
5
6
7
8
9
10
11
# -*- coding: utf-8 -*-
while True:
try:
nt1, nt2 = float(raw_input("Digite a primeira nota: ")), float(raw_input("Digite a segunda nota: "))
if nt1 <= 4 or nt2 <= 4:
nt3 = float(raw_input("Você foi reprovado! Notas iguais ou abaixo de 4 não são aceitas.\nDigite a nota da terceira e nova prova: "))
if nt1+nt2+nt3/3. >= 6.0: print("Parabéns você foi aprovado");break
else: print("Reprovado pela nota: %.1f")%((nt1+nt2+nt3)/3.);break
if nt1 > 4 and nt2 > 4 and nt1+nt2/2. >= 6.0: print("Parabéns você foi aprovado");break
else: print("Reprovado pela média: %.1f")%((nt1+nt2)/2.);break
except ValueError: print("Números ¬¬");continue


Documentação de cada linha do código: http://codepad.org/fc3TKkLy

5 - Faça um programa que imprima uma lista de modelos de carro e te peça para escolher um dos modelos mostrados. Ao escolher um dos modelos, este mesmo programa irá imprimir os seguintes detalhes.
 1
2
3
4
5
6
7
8
9
10
# -*- coding: utf-8 -*-
dados = "Km por litro: %s\nValor de mercado do modelo zero KM: %s\nValor de mercado do modelo usado: %s\nValor do seguro: %s\nPotencia: %s"
while True:
md = raw_input("Escolha um dos modelos abaixo:\n1 - Hyundai i30\n2 - Honda Fit 1.4\n3 - Ford Ka 1.0\n4 - Toyota Tundra 5.7\n5 - Volkswagen Gol 1.0\n")
if md == "1": print("Hyundai i30".center(70)+"\n"+dados) %("7,8","R$ 52.000,00","R$ 30.000,00","R$ 1.800,00","143 cavalos");break
elif md == "2": print("Honda Fit 1.4".center(70)+"\n"+dados) %("11,8","R$ 39.496,99","R$ 20.000,00","R$ 1.200,00","80 cavalos");break
elif md == "3": print("Ford Ka 1.0".center(70)+"\n"+dados) %("11,43","R$ 21.790,00","R$ 14.000,00","R$ 1.263,00","65 cavalos");break
elif md == "4": print("Toyota Tundra 5.7".center(70)+"\n"+dados) %("14,7","R$ 249.900,00","R$ 120.900,00","R$ 4.351,00","343 cavalos");break
elif md == "5": print("Volkswagen Gol 1.0".center(70)+"\n"+dados) %("9,6","R$ 26.790,00","R$ 14.154,00","R$ 1.137,00","68 cavalos");break
else: print("Digite apenas o número correspondente ao modelo.");continue


Documentação de cada linha do código: http://codepad.org/euVCMUSM

6 - Modifique o programa do desafio 5 de modo que você possa agora adicionar modelos de carros bem como os detalhes.
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# -*- coding: utf-8 -*-
import os, sys
if sys.platform == 'linux' or sys.platform == 'linux2': limpar = 'clear'
else: limpar = 'cls'
msgespecif = "Km por litro: %s\nValor de mercado do modelo zero KM: %s\nValor de mercado do modelo usado: %s\nValor do seguro: %s\nPotencia: %s"
pergunespecif = ["Km por litro: ","Valor de mercado do modelo zero KM: ","Valor de mercado do modelo usado: ","Valor do seguro: ","Potencia: "]
mensagem = "Escolha um dos modelos abaixo:\n1 - Cadastrar novos modelos\n2 - Sair do programa\n-\n3 - Hyundai i30\n4 - Honda Fit 1.4\n5 - Ford Ka 1.0\n6 - Toyota Tundra 5.7\n7 - Volkswagen Gol 1.0"
dtecnicos = {3:("7,8","R$ 52.000,00","R$ 30.000,00","R$ 1.800,00","143 cavalos"),4:("11,8","R$ 39.496,99","R$ 20.000,00","R$ 1.200,00","80 cavalos"),5:("11,43","R$ 21.790,00","R$ 14.000,00","R$ 1.263,00","65 cavalos"),6:("14,7","R$ 249.900,00","R$ 120.900,00","R$ 4.351,00","343 cavalos"),7:("9,6","R$ 26.790,00","R$ 14.154,00","R$ 1.137,00","68 cavalos")}
especf = {3:"Hyundai i30".center(70)+"\n"+msgespecif,4:"Honda Fit 1.4".center(70)+"\n"+msgespecif,5:"Ford Ka 1.0".center(70)+"\n"+msgespecif,6:"Toyota Tundra 5.7".center(70)+"\n"+msgespecif,7:"Volkswagen Gol 1.0".center(70)+"\n"+msgespecif}
lista, nmod = [], 7
def cadastrar():
global mensagem, dtecnicos, lista, nmod
nmod = nmod+1
nomemd = raw_input("Adicione um modelo a lista: ")
mensagem = mensagem+"\n"+str(nmod)+" - "+nomemd
m = max(dtecnicos.keys())+1
especf[m] = especf[3].replace("Hyundai i30", nomemd)
for v in range(1,6):
lista.append(raw_input(pergunespecif[v-1]))
dtecnicos[m] = tuple(lista)
while True:
try:
op = int(input(mensagem+"\n"))
if op == 1: cadastrar()
elif op == 2: break
else: os.system(limpar); print especf[op] %dtecnicos[op]+"\n\n"
except (KeyError, NameError, SyntaxError): print("Digite apenas o número correspondente ao modelo ou opção.");continue


Documentação de cada linha do código: http://codepad.org/QNxVA1Ga

7 - Faça um programa que peça para 10 pessoas as suas idades, ao final o programa devera verificar se a média de idade deste grupo de pessoas varia entre 1 e 25,26 e 60 e maior que 60; e então, dizer se o grupo é jovem, adulta ou idosa, conforme a média calculada.
1
2
3
4
5
6
7
8
9
# -*- coding: utf-8 -*-
idades, c, = [], 0
while c < 10:
try: idades.append(int(raw_input("Qual sua idade?\n"))); c = c +1
except ValueError: print("Números ¬¬"); continue
if sum(idades)/10 >= 1 and sum(idades)/10 <= 25: print("É um grupo jovem")
elif sum(idades)/10 >= 26 and sum(idades)/10 <= 60: print("É um grupo adulto")
elif sum(idades)/10 <= 0: print("Números inválidos")
elif sum(idades)/10 >= 60: print("É um grupo idoso")


Documentação de cada linha do código: http://codepad.org/LnEHQH0Y
avatar
h0t8

Mensagens : 29
Data de inscrição : 06/07/2011
Idade : 24
Localização : 127.0.0.1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Challenge 2 - Moderate

Mensagem  h0t8 em Seg Jul 18, 2011 5:25 pm

8 - Desenvolva um programa que faça a tabuada de um número qualquer inteiro que será digitado pelo usuário, mas a tabuada não deve necessariamente iniciar em 1 e terminar em 10, o valor inicial e final devem ser informados também pelo usuário.
1
2
3
4
5
6
# -*- coding: utf-8 -*-
while True:
try: d, c, t = int(input("Montar a tabuada de: ")), int(input("Começar por: ")), int(input("Terminar em: "))
except NameError: print("Só números..."); continue
for f in range(c, t+1): print("%i X %i = %i")%(d, f, d*f)
break


Documentação de cada linha do código: http://codepad.org/kI5UNt3P

9 - Faça uma função que retorne o reverso de um número inteiro informado.
1
2
3
4
5
6
# -*- coding: utf-8 -*-
def reverso(n): print("Valor invertido = %s") % str(n)[::-1]
while True:
try: reverso(int(input("Digite um número: ")))
except NameError: print("Só números"); continue
break


Documentação de cada linha do código: http://codepad.org/CPDTc46q
avatar
h0t8

Mensagens : 29
Data de inscrição : 06/07/2011
Idade : 24
Localização : 127.0.0.1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  Z3r0 em Seg Jul 18, 2011 6:47 pm

Códigos testados e aprovados. Gostei muito do 6 - moderate. Muito soda!
avatar
Z3r0

Mensagens : 149
Data de inscrição : 01/07/2011
Idade : 32

Ver perfil do usuário http://projectzim.blogspot.com

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  Op@alo em Seg Jul 18, 2011 10:17 pm

Z3r0 escreveu:Códigos testados e aprovados. Gostei muito do 6 - moderate. Muito soda!

caraca , esse 6 é soda mesmo !, da pra fazer em C isso ai ? *-*
avatar
Op@alo

Mensagens : 67
Data de inscrição : 02/07/2011
Idade : 26
Localização : Parnamirim-RN

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  Z3r0 em Seg Jul 18, 2011 11:19 pm

Op@alo escreveu:
Z3r0 escreveu:Códigos testados e aprovados. Gostei muito do 6 - moderate. Muito soda!

caraca , esse 6 é soda mesmo !, da pra fazer em C isso ai ? *-*
Dá sim... e ele nem usou POO... ( programação orientada a objetos ) pq se fosse o caso, n daria pra fazer em C.. só em C++.
avatar
Z3r0

Mensagens : 149
Data de inscrição : 01/07/2011
Idade : 32

Ver perfil do usuário http://projectzim.blogspot.com

Voltar ao Topo Ir em baixo

Challenge 2 - Hardcore

Mensagem  h0t8 em Qua Jul 20, 2011 10:02 pm

1 - Faça um programa que imprima a sí mesmo ou seja, imprimir na tela o seu próprio código fonte. O código fonte será exibido ao abrir o arquivo onde ele está. Obs: Não é permitido o programa abrir e ler o próprio código com chamadas de manipulação de arquivo.
1
2
3
4
cdfonte = ("a, b, = 2, 3; c = a+b","""print 'cdfonte = ("%s","%s","%s")' %cdfonte""","for v in range(0,3): print cdfonte[v]")
a, b, = 2, 3; c = a+b
print 'cdfonte = ("%s","%s","%s")' %cdfonte
for v in range(0,3): print cdfonte[v]


Documentação de cada linha do código: http://codepad.org/f997t92u

2 - A soma dos números primos abaixo de 10 é 2 + 3 + 5 + 7 = 17.
Faça um programa que encontre e imprima a soma de todos os números primos abaixo de dois milhões como também, imprima quantos números foram encontrados.
1
2
3
4
5
6
7
8
# -*- coding: utf-8 -*-
nprimos, c = range(2,2000001), 0
while True:
for v in nprimos:
nprimos = filter(lambda x: x % v != 0, nprimos)
nprimos.insert(c,v);c = c +1;break
if len(nprimos) == 148933: break
print("Foram encontrados %i números primos abaixo de dois milhões.\nA soma de todos os números primos encontrados é %i.") %(len(nprimos),sum(nprimos))


Documentação de cada linha do código: http://codepad.org/TQyhloaW


Última edição por h0t8 em Ter Jul 26, 2011 9:52 pm, editado 1 vez(es)
avatar
h0t8

Mensagens : 29
Data de inscrição : 06/07/2011
Idade : 24
Localização : 127.0.0.1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  Z3r0 em Qua Jul 20, 2011 11:49 pm

Sinto cheiro de juízo queimado.
Parabéns miseravi!
avatar
Z3r0

Mensagens : 149
Data de inscrição : 01/07/2011
Idade : 32

Ver perfil do usuário http://projectzim.blogspot.com

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  h0t8 em Qui Jul 21, 2011 12:58 am

Z3r0 escreveu:Sinto cheiro de juízo queimado.
Parabéns miseravi!
Laughing
Valeu!
avatar
h0t8

Mensagens : 29
Data de inscrição : 06/07/2011
Idade : 24
Localização : 127.0.0.1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  Action Chaos em Dom Jul 24, 2011 8:43 pm

Challenge 2 - Light - 4 - Faça um programa que leia um nome de usuário e a sua senha e não aceite a senha igual ao nome do usuário, mostrando uma mensagem de erro e voltando a pedir as informações.

Não sei se é importante o que estou propondo, já que a questão não deixa isso claro, mais aí vai.

A comparação do seu código não é case sensitive, ou seja, "Action Chaos" vai ser igual a "action chaos".
Então usei um hash MD5 para fazer a comparação.


 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# -*- coding: utf-8 -*-
"""
4 - Faça um programa que leia um nome de usuário e a sua senha e não aceite a senha igual ao nome do usuário, mostrando uma mensagem de erro e voltando a pedir as informações.
O código abaixo rodou em:
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
[GCC 4.5.2] on linux2
"""
import hashlib

def get_md5sum(elemento):
tmp_hash = hashlib.md5()
tmp_hash.update(elemento)
return tmp_hash.hexdigest()

while True:
login = raw_input("Digite seu login: ")
senha = raw_input("Digite sua senha: ")
login_md5 = get_md5sum(login)
senha_md5 = get_md5sum(senha)
if senha_md5 == login_md5:
print("A senha não pode ser igual ao login")
continue
else:
break


OBS: Desculpem qualquer coisa. Sou noob aqui! Smile
avatar
Action Chaos

Mensagens : 2
Data de inscrição : 24/07/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  h0t8 em Dom Jul 24, 2011 9:23 pm

Action Chaos escreveu:
Challenge 2 - Light - 4 - Faça um programa que leia um nome de usuário e a sua senha e não aceite a senha igual ao nome do usuário, mostrando uma mensagem de erro e voltando a pedir as informações.

Não sei se é importante o que estou propondo, já que a questão não deixa isso claro, mais aí vai.

A comparação do seu código não é case sensitive, ou seja, "Action Chaos" vai ser igual a "action chaos".
Então usei um hash MD5 para fazer a comparação.


 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# -*- coding: utf-8 -*-
"""
4 - Faça um programa que leia um nome de usuário e a sua senha e não aceite a senha igual ao nome do usuário, mostrando uma mensagem de erro e voltando a pedir as informações.
O código abaixo rodou em:
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
[GCC 4.5.2] on linux2
"""
import hashlib

def get_md5sum(elemento):
tmp_hash = hashlib.md5()
tmp_hash.update(elemento)
return tmp_hash.hexdigest()

while True:
login = raw_input("Digite seu login: ")
senha = raw_input("Digite sua senha: ")
login_md5 = get_md5sum(login)
senha_md5 = get_md5sum(senha)
if senha_md5 == login_md5:
print("A senha não pode ser igual ao login")
continue
else:
break


OBS: Desculpem qualquer coisa. Sou noob aqui! Smile

Opa, gostei do seu código.
Mas meu quarto exercício do Light é sim case sensitive, testa ai direito Smile
avatar
h0t8

Mensagens : 29
Data de inscrição : 06/07/2011
Idade : 24
Localização : 127.0.0.1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Action Chaos

Mensagem  Z3r0 em Dom Jul 24, 2011 9:31 pm

Action Chaos escreveu:A comparação do seu código não é case sensitive, ou seja, "Action Chaos" vai ser igual a "action chaos".
Então usei um hash MD5 para fazer a comparação.
Um dos princípios básicos de programação Python e também C e C++, é que uma variável minúscula "nunca" é igual a uma maiúscula. Ou seja, fulano é diferente de Fulano. Por isso não há a necessidade de usar md5 ou coisa parecida. Bastava apenas testar o código do h0t8 para você notar isto.

Aproveitando ... seja bem vindo ao Challenge.
Espero que possamos sempre compartilhar ideias por aqui.
avatar
Z3r0

Mensagens : 149
Data de inscrição : 01/07/2011
Idade : 32

Ver perfil do usuário http://projectzim.blogspot.com

Voltar ao Topo Ir em baixo

Retificação

Mensagem  Action Chaos em Dom Jul 24, 2011 9:44 pm

Foi mal. Realmente. Não sei pq coloquei na cabeça que quando o programa fechava era pq login e senha eram iguais. :S
Quando é o contrário.

Coisa de noob mesmo. Smile
avatar
Action Chaos

Mensagens : 2
Data de inscrição : 24/07/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  h0t8 em Seg Jul 25, 2011 12:17 am

Action Chaos escreveu:Foi mal. Realmente. Não sei pq coloquei na cabeça que quando o programa fechava era pq login e senha eram iguais. :S
Quando é o contrário.

Coisa de noob mesmo. Smile

Tranquilo, hehehe
Como já dizia aquela frase: "Errar é humano" Laughing
avatar
h0t8

Mensagens : 29
Data de inscrição : 06/07/2011
Idade : 24
Localização : 127.0.0.1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  aajjbb em Seg Jul 25, 2011 10:18 pm

otimo codigo.. seu codigo esta muito conciso.. nos meus que eu postei aqui, nao tratei exceções por que nao achei necessario.. mas as suas estao bem tratadas.. ta de parabens.. quanto tempo de experiencia com python voce tem?
avatar
aajjbb

Mensagens : 14
Data de inscrição : 04/07/2011
Idade : 25

Ver perfil do usuário http://www.dialybasiscode.wordpress.com

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  h0t8 em Ter Jul 26, 2011 9:54 pm

aajjbb escreveu:otimo codigo.. seu codigo esta muito conciso.. nos meus que eu postei aqui, nao tratei exceções por que nao achei necessario.. mas as suas estao bem tratadas.. ta de parabens.. quanto tempo de experiencia com python voce tem?

Obrigado Smile
Estudo python há mais de 1 ano, mas fui me aprofundar mesmo no inicio desse ano.
avatar
h0t8

Mensagens : 29
Data de inscrição : 06/07/2011
Idade : 24
Localização : 127.0.0.1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  h0t8 em Qua Jul 27, 2011 6:44 am

Infelizmente também não tive tempo pra terminar as tarefas restantes. Crying or Very sad
Antes do challenge 2 eu já tinha vontade de fazer um RPG em modo texto, mas o challenge fez eu me empolgar e começar a desenvolver algo do tipo, ele não segue as regras do RPG do desafio aqui postado, fiz pensando em aplicar aquelas regras, mas infelizmente não tive tempo de fazer um jogo totalmente funcional.
Ficou algo muito seco, mas que ajudou bastante no meu aprendizado.
Foi bem trabalhoso fazer aquelas ASCII art ficarem em forma no terminal Smile
Apesar do projeto não ter ficado pronto até o fim do challenge eu pretendo continuar ele no futuro, tem tudo pra dar certo, quem quiser colaborar é só entrar em contato.

Criei uma pagina no Google Code para o projeto:
http://code.google.com/p/montoj/

Nela você pode baixar uma versão de testes do RPG, não liguem pro código todo bagunçado ou pra bugs, não tive tempo de consertar ou otimizar o código.
avatar
h0t8

Mensagens : 29
Data de inscrição : 06/07/2011
Idade : 24
Localização : 127.0.0.1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  Z3r0 em Qua Jul 27, 2011 9:45 am

Putz..testei aqui... muito bom velho. Curti muito essa interface terminal ( novo jogo, sobre ) e tal...baralho uhauhahua parabéns. De fato, tem tudo para dar certo. É.......... poo mudará tua vida auhauhauha !
avatar
Z3r0

Mensagens : 149
Data de inscrição : 01/07/2011
Idade : 32

Ver perfil do usuário http://projectzim.blogspot.com

Voltar ao Topo Ir em baixo

Re: h0t8 - Challenge 2 - FULL - Python

Mensagem  Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Página 1 de 2 1, 2  Seguinte

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum