[Python] Como começar [pra quem sabe C entre também!]

Sub-fórum especial para usuários que querem discutir/aprender programação, como as linguagens C/C++/C#, Java, HTML, e por aí vai...
Rico
Mensagens: 2354
Registrado em: Dom Set 10, 2006 11:49 am
Answers: 0
17
Localização: Atrás do DU0
Contato:

[Python] Como começar [pra quem sabe C entre também!]

Mensagem por Rico »

Olá meus amigos quero vir aqui apresentar a vocês uma linguagem de programação teoricamente nova.
Conheci ela a 1 ano e meio, porém nunca tive uma boa documentação onde me desse algum exemplo e me explicasse isso, como funciona e porque, hoje voltei meus estudos e consegui achar o site DOC oficial do python em inglês e estou me dando muito bem com esta linguagem tão simples, rápida e versátil, tão quanto C/C++! [Breve noção]

História:

Python foi criado em meados de 1990 por Guido van Rossum em Stichting Mathematisch Centrum (CWI, see http://www.cwi.nl/) [Como um IMCE da USP] na Holanda como um sucessor da linguagem ABC. Guido ainda é considerado o principal autor de Python, contudo, vem recebendo ajuda de vários colaboradores.

Vantagens:

• Pequeno, rápido, e tão versátil quanto C, e Java.
Pequeno em vários pontos, como o tamonho do código, e peso.
Rápido não há necessidade de declarar uma variável, nem de compilar [como no C: SOURCE.C -> OBJECT -> EXE], nada disso, o próprio interpretador faz tudo na hora. :D
Versátil tão poderoso quanto C e java, tudo que o C e Java faz e poucas linhas!

• Você poderia escrever um Unix shell script ou Windows batch para algumas tarefas, mas Shell Script são bons em mover, renomear arquivos e tarefas simples, não muito usados em aplicativos GUI [interface] ou para jogos! (Isso mesmo, se alguém aqui conhece Frets on Fire, fique sabendo que ele é feito em Python, procure na pasta arquivos *.py). Você pode escrever um programa C/C++/Java, mas isso pode levar muito tempo de desenvolvimento para fazer apenas uma simples parte do programa. Python é simples de usar, disponível em Windows, Mac OS X, e Unix, e vai ajudar a você fazer um trabalho mais rápido.

• Python é simples, mas é uma linguagem de programação em tempo real, oferecendo mais estrutura e suporte para programas grandes como shell scripts ou batch podem oferecer. E por outro lado, Python também oferece muito mais cheque de erros do que C, e, e sendo uma linguagem de programação muito alta, e alto nivel de dados, como flexiveis arrays e dicionarios. Por causa disso muitos dados importantes em Python são usados até mais que Awk ou até Perl, Awk e Perl, são fáceis, assim como Python. :)

Baseado e traduzido em Python Docs

Porra Rico falo demais, mostre-nos alguns exemplos!

Primeiro, para quem está interessado no Python, aqui estão os links:
• Windows x86 e AMD64

• Linux (é em código fonte, só compilar) em Gzip e em Bzip

• Mac OS X Installer Disk Image

É hora dos exemplos e comparações!

Farei um simples código em C que imprime um OI na tela, sem frescuras, só imprime:
<pre>

Código: Selecionar todos

#include <stdio>

void main() {
    printf("Oi");
    return(0);
}
</pre>

E em Python? Aqui está:
<pre>

Código: Selecionar todos

print("Oi")
</pre>

Ahn... só isso? Rico tu ta fazendo errado cara, não pode só ser isso meu!

Claro que pode, e é só isso :D
Quer outro exemplo?
Vamos lá, vou fazer um programa que Recebe um número e então imprime na tela seu sucessor e antecessor:

C
<pre>

Código: Selecionar todos

#include <stdio>

int main() {
    int i;
    int a;
    int b;
    printf("Numero: ");
    scanf("%d",&i);
    a=i-1;
    b=i+1;
    printf("\nAntecessor: %d\n",a);
    printf("Sucessor: %d",b);
    return(0);
}
</pre>

Ufa, lembrando que todos os exemplos estão sendo feitos agora enquanto escrevo este post, por isso se houver algum erro, avise que eu troco.

Python
<pre>

Código: Selecionar todos

n = input("numero: ") # variavel n recebe valor
a = int(n) - 1 # para que python não confunda se n é STRING ou variável eu falo pra ele, AQUI EH INT.
b = int(n) + 1
print("antecessor %d" %(a)) # notaram uma semelhança?
print("sucessor %d"%(b))
</pre>

É, simplesmente pelo fato de que Python foi feito em C ou C++, não vi o código ainda, ele não só interpreta a linguagem python como também é extensível para C (:
É, se tu sabe C, vai se dar muito bem com Python e não terá problemas em entender o código! :D
Depois dou mais exemplos conforme vou estudando e criando algumas coisas. Mas deixo aqui uma dica bem legal (:


Python Docs # Tutoriais e tudo mais.
Script Brasil # Site de uma comunidade de programadores, várias linguagens.
Viva o Linux # Site do Linux, mas na seção de Scripts tem vários códigos legais de Python!

A maioria dos códigos que estão nestes sites, são de Python 2.x e eu apresentei o mais atual Python 3.x, muitos terão que ter leves modificações para funcionar, como ultimo exemplo dado, o código era simplesmente isso "n=n-1 | n=n+1" com as mudanças do Python 3, seu interpretador ficou melhor e inibe alguns problemas comuns do antecessor...

Sim, o código do antecessor e sucessor do Python eu tive que perder 2 minutos pensando, eu colei o código e dei Run, ele me falo: tal linha tem erro, N str não pode ser usado em int (em ingles claro), ae eu lembrei de um erro parecido com JavaScript que eu também deixei aqui em algum lugar do fórum, erro igual, str e int, e fiz o mesmo procedimento para acertar, já que python também leva algumas caracteristicas do Java, a mais notável e sua multi plataforma, não há limites :D
Editado pela última vez por Rico em Qua Fev 18, 2009 12:27 am, em um total de 1 vez.
Avatar do usuário
Lord DooM1.666
Mensagens: 1169
Registrado em: Qui Jan 10, 2008 9:19 pm
Answers: 0
16
Localização: Pernambuco - Brasil

Mensagem por Lord DooM1.666 »

Nossa meu, interessante essa linguagem.
São tantas linguagens que fico confuso em qual começar...
Primeiro ler aquela biblia de c / c++ completa em detalhes e depois vou ver as outras.
è isso ai meu fí, mostre seu RICO conhecimento! :D
Avatar do usuário
Z-Man
Mensagens: 1406
Registrado em: Dom Jan 13, 2008 2:37 pm
Answers: 0
16
Localização: Atrás do Rico.
Contato:

Mensagem por Z-Man »

/nemli
Muito interessante R1c0, pricipalmente pra quem entende :x
Avatar do usuário
Lord DooM1.666
Mensagens: 1169
Registrado em: Qui Jan 10, 2008 9:19 pm
Answers: 0
16
Localização: Pernambuco - Brasil

Mensagem por Lord DooM1.666 »

Z-Man escreveu:/nemli
Muito interessante R1c0, pricipalmente pra quem entende :x


Da próxima vez. verifique a seção , que no caso é programação! :twisted:
Imp Hunter

Mensagem por Imp Hunter »

Imp Hunter escreveu:Programador Python

Abre uma faquinha do canivete e mata o dragão numa punhalada só.
Mas aí descobre que no canivete tinha armas mais legais ainda, e fica eternamente ressuciando o dragão pra matá-lo de diferentes formas, se esquecendo assim da princesa(Imp Hunter says: Eu sem querer faço isso quando to jogando em um wad de armas :lol: )
Agora eu entendi oque isso quer dizer...com um codigo tão flexivel, deve ser louco programar pra Python
Avatar do usuário
Fabio914
Mensagens: 1757
Registrado em: Dom Mai 21, 2006 4:38 pm
Answers: 0
18
Localização: Sampa/Sanca
Contato:

Mensagem por Fabio914 »

@Rico: O primeiro exemplo em C tá errado xD Uma função void não retorna valor. 8) Alias , muito boa essa sua introdução.
Projetos em andamento
the Core
Eclipse

Projetos parados
Doom 3 on GZDoom
FSD Project

PC
AMD Athlon 64 X2 5200+ (2x 2.6Ghz)
2GB RAM (2x 1GB DDR2)
240GB (160GB SATA + 80GB SATA)
XFX nVidia GeForce 8600 GT (600mhz 256mb)
Placa Mãe ASUS M2N4 SLI (2x PCI-E 16x SLI, 4x DDR2 800, nForce 4)
Fonte 500W reais (esqueci o nome da marca)
Monitor LG Flatron 19'' LCD
Avatar do usuário
DU0
Mensagens: 6689
Registrado em: Sáb Abr 01, 2006 6:59 am
Answers: 0
18
Localização: Deimos Lab.
Contato:

Mensagem por DU0 »

Isso ae não é usado em celulares hoje em dia?

/nemli pq to na casa da ruiva usando o pc dela stealthmente
Jogando atualmente:
Xbox 360: Ninja Gaiden Black
Xbox One: Need for Speed: Hot Pursuit, Yakuza 3
PlayStation 2: Fatal Frame 3: The Tormented
PlayStation 3: RE: The Darkside Chronicles, RE: The Umbrella Chronicles
Nintendo Switch: Phantasy Star, SIFU
Rico
Mensagens: 2354
Registrado em: Dom Set 10, 2006 11:49 am
Answers: 0
17
Localização: Atrás do DU0
Contato:

Mensagem por Rico »

@Zman

Muito obrigado pela sua resposta com conteudo...

@Imp

Viu :D

@LORD DOOM

Continue com o C/C++, pq python vc precisa saber uma noção boasica [um poco + q basica] de C

@Fabio914

Vlw :D
Mas será que uma vez vc poderia não cortar meu barato??? =)
Alias, não retorna valor, porém o compilador da apenas um WARNING e funciona de qualquer jeito, é o exemplo mais basico de C e o mais aceito, eu sigo as regras <:
Editado pela última vez por Rico em Qua Fev 18, 2009 12:28 am, em um total de 1 vez.
[xfire]p0br3[/xfire]
Futuro PC:

CPU: AMD Athlon x2 64Bits 7750 2.7GHz Black Edition
MoBo: Asus M2 ou M3.
VGA: XFX Geforce 9800 GTX 512MB ou 1GB/256Bits
HD: Seagate 1TB
PSU: ATX 600w REAIS
RAM: 4GB Ram DDR2 Kingstone @800MHz [2x2Gb]
Avatar do usuário
Fabio914
Mensagens: 1757
Registrado em: Dom Mai 21, 2006 4:38 pm
Answers: 0
18
Localização: Sampa/Sanca
Contato:

Mensagem por Fabio914 »

@rico : Então coloca a função main como int :wink:
Projetos em andamento
the Core
Eclipse

Projetos parados
Doom 3 on GZDoom
FSD Project

PC
AMD Athlon 64 X2 5200+ (2x 2.6Ghz)
2GB RAM (2x 1GB DDR2)
240GB (160GB SATA + 80GB SATA)
XFX nVidia GeForce 8600 GT (600mhz 256mb)
Placa Mãe ASUS M2N4 SLI (2x PCI-E 16x SLI, 4x DDR2 800, nForce 4)
Fonte 500W reais (esqueci o nome da marca)
Monitor LG Flatron 19'' LCD
Avatar do usuário
Lord DooM1.666
Mensagens: 1169
Registrado em: Qui Jan 10, 2008 9:19 pm
Answers: 0
16
Localização: Pernambuco - Brasil

Mensagem por Lord DooM1.666 »

@Rico faltou responder o DUZero! :mrgreen: