Àpos o nosso último artigo acredito que podemos ir em frente e sermos mais complexos. Vamos programar então.
Vamos para um exemplo de um programa realmente complexo:
Quando eu executo o resultado é:
Alto La! Quem deseja passar? Josh Você pode passar, Josh
Oras temos um procedimento novo no codigo acima! É o raw_input que é uma função padrão do Python que requisita do usuario uma string, em suma pede pra ele digitar algo que é tratado como uma string (ou seja, texto), isso é util para interagir com o usuario. Também perceba que o programa "para" quando é chamada a função raw_input ele espera o pressionamento da tecla Enter para prosseguir e imprimir na tela "Você pode passar" mais o que você digitou, que no caso deve ter sido seu nome.
Obviamente pegar informações do usuario sem ter aonde guardá-la é inútil, é ai que entram em cena as variáveis. No código exemplo anterior 's' é uma variável que quarda os dados que você digitou quando o raw_input solicitou. Como vocês já sabem variáveis são como "caixas" que podem guardar valores. (Se você não lembra como usar variáveis volte ao artigo anterior).
E mais um exemplo:
Meu resultado foi:
Digite um número: 12.34 Digite uma string: Hello num = 12.34 A variável num é do tipo: <type 'float'> num * 2 = 24.68 str = Hello str é do tipo: <type 'string'> str * 2 = HelloHello
Observe a diferença entre input, pelo qual "num" foi pega, e raw_input, pela qual a string foi pega. Originalmente raw_input retorna uma string que depois pode ser convertida, pra integer, float, etc (não abordaremos isso ainda), e input retorna um número. Obs: ele também suporta strings mas é algo pouco usual logo não vamos abordar..
A segunda parte do programa usa a função embutida (a função é integrante do Python, é padrão). Numeros são do tipo integer ou float (que são abreviações para "integer" e "floating point" respectivamente). Strings são do tipo string. Integers e floats podem ser trabalhados em funções matemáticas, já strings não podem. Observe também que quando você multiplica dois números, de qualquer tipo, ocorre a multiplicação normal. Enquanto uma string quando é multiplicada ela é repetida pelo número que foi multiplicada (Observe no código a linha: str * 2 = HelloHello).
As operações com strings são diferentes das com números observem os códigos abaixo:
"This"+" "+"is"+" joined." Resulta em: 'This is joined.' "Ha, "*5 Resulta em: 'Ha, Ha, Ha, Ha, Ha, ' "Ha, "*5+"ha!" Resulta em: 'Ha, Ha, Ha, Ha, Ha, ha!'
Aqui está uma mini-lista de algumas operações com strings:
Operação |
Simbolo |
Exemplo |
Repetição |
* |
"i"*5 == "iiiii" |
Concatenação |
+ |
"Hello, " + "World!" == "Hello, World!" |
Exemplos:
1 # Calcula o tempo num problema com distância e velocidade
2 print "Insira uma velocidade e uma distância."
3 speed = input("Velocidade: ")
4 distance = input("Distância: ")
5 print "Tempo:", distance / speed
6 # OBS: Caso você digite 0 no input da velocidade
7 # Um erro será 'raised' pois 0 não pode ser divisor
8 # esse tema será abordado em breve não ligue ainda para isso.
Quando executado:
Insira uma velocidade e uma distância. Velocidade: 5 <enter> Distância: 10 <enter> Tempo: 2
Insira uma velocidade e uma distância. Velocidade: 3.52 <enter> Distância: 45.6 <enter> Tempo: 12.9545454545
1 # Calcula a área e o perímetro de um retângulo.
2 print "Insira as informações do retângulo."
3 length = input("Comprimento: ") # note nós usamos o input em via de forçar a utilização de números
4 width = input("Largura: ") # novamente input, sacou?
5 print "Área:", length * width
6 print "Perímetro:", 2 * length + 2 * width
Quando executado:
Insira as informações do retângulo. Comprimento: 4 <enter> Largura: 3 <enter> Area: 12 Perímetro: 14
Insira as informações do retângulo. Comprimento: 2.53 <enter> Largura: 5.2 <enter> Area: 13.156 Perímetro: 15.46
Exercício de casa :)
Escreve um programa que solicite duas strings e dois números do usuários, concatene (junte as sem espaço) e mostra na tela, e na linha seguinte mostrar o resultado da multiplicação dos dois números.
Solução do exercício de casa: