Dilan Nery - Challenge 2 - FULL - Python

Ir em baixo

Dilan Nery - Challenge 2 - FULL - Python

Mensagem  dilannery em Qui Jul 14, 2011 4:23 pm

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.

Spoiler:
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
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.
"""
dia_da_semana = {1:"Domingo", 2:"Segunda", 3:"Terça", 4:"Quarta", 5:"Quinta", 6:"Sexta", 7:"Sabado"}

while True:
try:
dia = int(raw_input("Digite um numero de 1 a 7 referente ao dia da semana (0 para sair): "))
except ValueError:
print "Digite um numero";
continue

if dia == 0: break

try:
print dia_da_semana[dia]
except KeyError:
print "Um numero entre 1 e 7!"
continue
http://pastebin.com/mKHLaEPU - Código Comentado

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.
Spoiler:
 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
28
29
30
31
32
33
34
#!/usr/bin/env
# -*- coding: utf-8 -*-

"""
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.
"""
import time

def ano_bissexto(ano):
if ano % 400 == 0:
return True
else:
if ano % 4 == 0 and ano % 100 != 0:
return True
else: return False

if __name__ == "__main__":
n = 0
print "O aplicativo irá repetir 3 vezes antes de terminar"
while n != 3:
data = raw_input("Digite uma data (dd/mm/aaaa): ")

try:
time.strptime(data, '%d/%m/%Y')
except ValueError:
print "Informe a data no formato dd/mm/aaaa"
continue

ano = int(data[-4:])
if ano_bissexto(ano):
print "Data Válida - É bissexto"
else:
print "Data Inválida - Não é bissexto"
n += 1
http://pastebin.com/nCjF5MFc - Código Comentado

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.
Spoiler:
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
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.
"""

while True:
nota = int(raw_input("Digite uma nota de 0 a 10: "))
if nota in range(11):
print "Valor correto"
break
else:
print "Valor invalido"
continue
http://pastebin.com/4juf3cxe - Código Comentado

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.
Spoiler:
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/user/bin/env python
# -*- 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.
"""

while True:
login = raw_input("Digite seu login: ")
senha = raw_input("Digite sua senha: ")

if login.lower() == senha.lower():
print "A senha não pode ser igual ao login"
continue
else:
break
Em breve - Código Comentado

5 - Faça um programa que calcule a quantidade dinheiro gasto por um fumante
Spoiler:
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env python
# -*- coding: utf-8 -*-

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

try:
anos_fumando = int(raw_input("A quantos anos você fuma? "))
num_cigarros = int(raw_input("Quantos cigarros por dia? "))
preco = float(raw_input("Qual o preço da carteira de cigarro? "))
except ValueError:
print "Informe números!"

num_cigarros_mes = num_cigarros * 30
num_cigarros_ano = num_cigarros_mes * 12
num_cigarros_total = num_cigarros_ano * anos_fumando

num_carteiras_total = num_cigarros_total / 20

gasto = num_carteiras_total * preco

print "Você gastou R$%.2f reais com cigarros até agora." % (gasto)
print "Atenção! Fumar faz mal a saúde."
Em breve - Código Comentado

6 - Escreva um algoritmo para encontrar o número do telefone correspondente a um determinado nome
Spoiler:
 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
28
29
30
31
32
33
34
35
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
6 - Escreva um algoritmo para encontrar o número do telefone correspondente a um determinado nome
"""
import os

if os.name == 'posix':
os.system('clear')
elif os.name in ('nt', 'dos', 'ce'):
os.system('cls')
else:
print '\n'*80


lista_telefonica = {
'Fulano':'334-45566',
'Cicrano':'112-23344',
'Beltrano':'551-12233',
'Zé':'443-34422',
'Toinho':'661-12233',
'Luizinho':'776-65577',
}

msg = "Bem Vindo à Lista Telefonica Project Zim"
print msg
print '-' * len(msg)
print "Informe o nome à ser procurado"
nome = raw_input("Nome: ").title()

try:
print "O número de %s é: %s" % (nome, lista_telefonica[nome])
except KeyError:
print "Nome não encontrado!"
Em breve - Código Comentado

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.
Spoiler:
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
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.
"""
print "Formato: [a1, a2, a3, a4, a5, ...]"

vetor1 = input("Primeiro vetor: ")
vetor2 = input("Segundo vetor: ")

if type(vetor1) == list and type(vetor2) == list:
print vetor1+vetor2
else:
print "O primeiro ou o segundo vetor não é realmente um vetor!"
print "Tente usar o formato especificado."
Em breve - Código Comentado

8 - Utilizando vetores faça um programa que faça 5 perguntas para uma pessoa sobre um crime.
Spoiler:
 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
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
8 - Utilizando vetores faça um programa que faça 5 perguntas para uma pessoa sobre um crime.
"""
respostas = []

print "Responda as perguntas com S (Sim) ou N (Não)."

perguntas = [
"Telefonou para a vítima? ",
"Esterve no local do crime? ",
"Mora perto da vítima? ",
"Devia para a vítima? ",
"Já trabalhou com a vítima? ",
]

for pergunta in perguntas:
r = raw_input(pergunta)
if r.upper() != 'S' and r.upper() != 'N':
print "A resposta deve ser S para Sim ou N para Não"
print "Comece novamente!"
exit()
else:
respostas.append(r.upper())

qntd_sim = respostas.count('S')

if qntd_sim == 2:
print 'Suspeita'
elif 3 <= qntd_sim <= 4:
print 'Cúmplice'
elif qntd_sim == 5:
print 'Assasino'
else:
print 'Inocente'

Em breve - Codigo Comentado

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.
Spoiler:
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
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.
"""

string1 = raw_input("String 1: ")
string2 = raw_input("String 2: ")

print "Tamanho da String 1 '%s': %d" % (string1, len(string1))
print "Tamanho da String 2 '%s': %d" % (string2, len(string2))

if len(string1) == len(string2):
print "As duas strings são de tamanhos iguais."
else:
print "As duas strings são de tamanhos diferentes."

if string1 == string2:
print "As duas strings possuem conteúdos iguais."
else:
print "As duas strings possuem conteúdos diferentes."
Em breve - Código Comentado


Última edição por dilannery em Seg Jul 25, 2011 7:38 pm, editado 8 vez(es)
avatar
dilannery

Mensagens : 7
Data de inscrição : 06/07/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

dilannery

Mensagem  Z3r0 em Qui Jul 14, 2011 4:33 pm

Fala meu querido...... blz?

Então... testei aqui teu código...gostei da solução que você decidiu tomar. Ao invés de retornar valor inválido ( que é o que foi proposto ), você retornou " digite um número entre 1 e 7 " que na verdade, tem o mesmo efeito de um valor fora do valor proposto para os dias da semana.

O mais interessante, é que você deu uma solução " aperte 0" para terminar. Digo interessante porque o mais comum de se ver, é que quando entrar em um valor que não condiz com aquilo que se espera, o while termine neste valor ( ou seja, um valor 0,False ...de 7 pra cima automaticamente).
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: Dilan Nery - Challenge 2 - FULL - Python

Mensagem  dilannery em Qui Jul 14, 2011 4:45 pm

Z3r0 escreveu:Fala meu querido...... blz?

Então... testei aqui teu código...gostei da solução que você decidiu tomar. Ao invés de retornar valor inválido ( que é o que foi proposto ), você retornou " digite um número entre 1 e 7 " que na verdade, tem o mesmo efeito de um valor fora do valor proposto para os dias da semana.

O mais interessante, é que você deu uma solução " aperte 0" para terminar. Digo interessante porque o mais comum de se ver, é que quando entrar em um valor que não condiz com aquilo que se espera, o while termine neste valor ( ou seja, um valor 0,False ...de 7 pra cima automaticamente).

Obrigado pelo comentário. Achei melhor que o usuário determine quando a aplicação deve terminar, então retorno só o erro que ele comenteu e deixo ele tentar novamente.
avatar
dilannery

Mensagens : 7
Data de inscrição : 06/07/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Dilan Nery - Challenge 2 - FULL - Python

Mensagem  Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

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