quinta-feira, 14 de junho de 2018

ALGUMAS ROUBALHEIRAS QUE SÓ O TIO PYTHON PODE FAZER

Muita gente que já programou em outras linguagens, se apaixonou por Python por muitos motivos, mas um deles é a facilidade com que se constrói as coisas. Um bom exemplo disso é o próprio "Hello world". Veja só:
C#:

// A Hello World! program in C#.using System; namespace HelloWorld { class Hello { static void Main() { Console.WriteLine("Hello World!"); // Keep the console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } } }
Java:
public class HelloWorld

{
public static void main (String[] args)
{ // Prints "Hello, World" to the terminal window. System.out.println("Hello, World");
}
}

Cobol:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
* simple hello world program
PROCEDURE DIVISION.
    DISPLAY 'Hello world!'.
    STOP RUN.
Delphi:
program HelloWorld;
{$APPTYPE CONSOLE}
begin
WriteLn('Hello World');
end.




Python:


print("Goodbye, World!")




Pois bem...
O que muita gente que programa em Python não sabe é que o que é simples pode ficar ainda mais simples!


Vamos a alguns exemplos:


Temos esse lindo laço de repetição chamado for:


listinha = []
for quadrado in range(10):
    listinha.append(quadrado**2)
print(listinha) 


Bem... Essa foi fácil né?


Mas vamos dar uma melhorada nisso:


listinha = list(map(lambda x: x**2, range(10)))
print(listinha)


Uai! Que coisa massa, hein??


Mas não para por aí! Vamos remelhorar!


listinha = [x**2 for x in range(10)]
print(listinha)


Nossa!!! Tô mais bobo que o Kuririn quando o Vegeta se transformou em Super Sayajin!


Resultado de imagem para kuririn



Muito legal né?


Agora vamos ver outra bruxaria do Python. Vamos criar duplas de números onde os algarismos não 
se repitam entre si, usando duas listas:




duplinha = []
for x in [1,2,3]:
    for y in [3,1,4]:
        if x!=y:
            duplinha.append((x,y))
print(duplinha)


Aplicando a magia:


duplinha = [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
print(duplinha)


Sensacional né? Esse tio Python é mais inacrebelieveble que a vassoura de aço!!!


Imagem relacionada


Agora a saideira: vamos fazer uma matriz transposta:

matrix = [
     [1, 2, 3, 4],
     [5, 6, 7, 8],
     [9, 10, 11, 12],
 ]
transposta = [[row[i] for row in matrix] for i in range(4)]
print(transposta)


QUE COISA MAIS LINDA DE DEUS!!!


Imagem relacionada


O nome dessa mágica é LIST COMPREHENTION. Vale a pena pesquisar sobre. 
Inclusive, temos esse belo vídeo do mestre da vida Edu Mendes: