Python e R: Conceituação e Sintaxe

As linguagens Python e R estão sendo bastante cobradas ultimamente. Principalmente por conta de um assunto que está muito evidente ultimamente: Análise de Dados.

Avatar


25 de Outubro de 2020

Fala, meus consagrados! Tudo beleza com vocês?

As linguagens Python e R estão sendo bastante cobradas ultimamente. Principalmente por conta de um assunto que está muito evidente ultimamente: Análise de Dados.

Diante disso, iremos debater, em diversos artigos, semelhanças e diferenças entre essas duas linguagens. Neste artigo, iniciaremos os debates com dois tópicos basilares, mas extremamente importantes: conceituação e sintaxe.

 


Conceituação

Python

É uma linguagem de programação:

  • De alto nível;
    • É uma linguagem possui a sintaxe que se aproxima da linguagem humana
  • Interpretada;
    • Suas instruções são lidas e executadas por um interpretador
  • Imperativa;
    • É uma linguagem orientada a ações, onde a computação é vista como uma sequência de instruções que manipulam valores de variáveis;
  • Orientada a objetos;
  • Funcional;
    • É um paradigma de programação que trata a computação como uma avaliação de funções matemáticas e evita estados ou dados mutáveis;
  • De tipagem dinâmica e forte.

Python é software livre e é distribuído através da licença Python Software Foundation License (compatível com a GNU GPL). Isso torna a linguagem gratuita, reutilizável e distribuível até mesmo para software comercial.

R

É tanto uma linguagem de programação quanto um ambiente de software para análise estatística, representação gráfica e relatórios.

Quanto a ser uma linguagem, R também é uma linguagem de programação:

  • De alto nível;
    • É uma linguagem possui a sintaxe que se aproxima da linguagem humana
  • Interpretada;
    • Suas instruções são lidas e executadas por um interpretador
  • Imperativa;
    • É uma linguagem orientada a ações, onde a computação é vista como uma sequência de instruções que manipulam valores de variáveis;
  • Orientada a objetos;
  • Funcional;
    • É um paradigma de programação que trata a computação como uma avaliação de funções matemáticas e evita estados ou dados mutáveis;
  • De tipagem dinâmica e forte.

A linguagem R é também software livre e é distribuída através da licença GNU GPL. O que torna a linguagem R também gratuita, reutilizável e distribuível até mesmo para software comercial.

Então, conceitualmente, Python e R são bem semelhantes. Vamos testar essa parte com questões.

Questões de concursos

[IFMT 2018 IFMT – Informática] Sobre a linguagem Python, é INCORRETO afirmar que: (Marque CERTO ou ERRADO)

[A] Suporta os paradigmas: imperativo, orientado a objetos e funcional.

Comentários:

Python é uma linguagem imperativa, orientada a objetos e funcional. O que podemos aplicar para a linguagem R também.

Gabarito: CERTO.

 

[IFMT 2018 IFMT – Informática] Sobre a linguagem Python, é INCORRETO afirmar que: (Marque CERTO ou ERRADO)

[C] A linguagem Python é distribuída sob licença que proíbe sua incorporação em produtos proprietários.

Comentários:

Python é distribuída através da licença Python Software Foundation License, que é compatível com a GNU GPL. A linguagem R é distribuída através da licença GNU GPL.

Gabarito: ERRADO.

 

[IFMT 2018 IFMT – Informática] Sobre a linguagem Python, é INCORRETO afirmar que: (Marque CERTO ou ERRADO)

[E] Python é um software de código aberto.

Comentários:

Tanto Python quanto R são de código aberto.

Gabarito: CERTO.

 

[FCC 2012 TRE/CE – Técnico Judiciário – Programação de Sistemas] Sobre Python é correto afirmar:

[A] É uma linguagem compilada, ou seja, o código-fonte de um programa é lido pelo compilador, que cria um arquivo binário, executável diretamente pelo hardware.

Comentários:

Tanto Python quanto R são linguagens interpretadas.

Gabarito: ERRADO.

 


Sintaxe

Python

A indentação refere-se aos espaços no início de uma linha de código. Para muitas linguagens de programação, ela é usada apenas para uma boa legibilidade, mas, para o Python, é de muita importância:

Python usa a indentação para indicar (delimitar) um bloco de código!

Apenas com essa informação, podemos matar várias questões de concursos!

Exemplo 1 correto:

x = 15
y = 10
if x > y:
    print("x é maior que y")

No exemplo 1, temos uma estrutura de condição if com bloco de uma linha apenas. O interpretador irá executar o código tranquilamente,

Exemplo 1 com erro:

x = 15

y = 10

if x > y:

print("x é maior que y")

Acima, temos o mesmo código, mas sem a indentação para indicar o bloco de código da estrutura if. Nesse caso, o código não será executado.

Exemplo 2 correto:

x = 15
y = 10
if x > y:
    print("x é maior que y")
if x > y:
        print("x é maior que y")

No exemplo 2 correto, temos uma situação interessante: o bloco da segunda estrutura if está mais recuado do que o bloco da primeira estrutura if. Porém, o que importa é que houve a indentação para delimitar o bloco de cada estrutura.

Exemplo 2 com erro:

x = 15
y = 10
if x > y:
    print("x é maior que y")
        print("x é maior que y")

No segundo exemplo, agora com erro, há duas linhas com indentações diferentes. Se as duas linhas participam do mesmo bloco de código, elas devem estar indentadas iguais, não importando a quantidade de recuo.

R

Os comandos consistem em expressões e atribuições. As expressões são avaliadas e impressas. Já as atribuições avaliam expressões e passam o valor para uma variável, mas o resultado não é impresso automaticamente.

Os comandos podem ser separados por:

  • Ponto e vírgula ;
    • a = TRUE; b = FALSE
  • Uma nova linha
    • a = TRUE
    • b = FALSE

Os comandos elementares podem ser agrupados em uma expressão composta por chaves { }.

Exemplo:

primeiro_exemplo <- "R Reta Final"; segundo_exemplo = "Curso de R"
print(primeiro_exemplo)
segundo_exemplo
terceiro_exemplo = "Professor Rogerão Araújo"
terceiro_exemplo

Resultado da execução do código do exemplo acima:

[1] "R Reta Final"
[1] "Curso de R"
[1] "Professor Rogerão Araújo"

Comparação de sintaxe

Código em Python:

x = 15
y = 10
if x > y:
    print("x é maior que y")

Código em R:

x = 15
y = 10
if (x > y) {
    print("x é maior que y")
}

Notem que para a delimitação de blocos em R, utilizam-se chaves { }.

Comentários em Python e R

Os comentários em ambas as linguagens são indicados pelo caractere cerquilha (#). Podem ser usados para explicar um código, tornar o código mais legível ou evitar a execução de linhas específicas de código ao testá-lo;

Questões de concursos

[Quadrix 2019 CREA/GO – Analista – TI] 

1. #-*- coding: latin1 -*-
2. # Conjuntos de dados
3. s1 = set(range(3))
4. s2 = set(range(10, 7, -1))
5. s3 = set(range(2, 10, 2))
6. # Exibe os dados
7. print 's1:', s1, '\ns2:', s2, '\ns3:', s3
8. # Operação 1
9. s1s2 = s1.union(s2)
10. print 'União de s1 e s2:', s1s2
11. # Operação 2
12. print 'Diferença com s3:', s1s2.difference(s3)
13. # Operação 3
14. print 'Interseção com s3:', s1s2.intersection(s3)
15. # Operação 4
16. if s1.issuperset([1, 2]):
17. print 's1 inclui 1 e 2'
18. # Operação 5
19. if s1.isdisjoint(s2):
20. print 's1 e s2'

Com relação à execução do código acima, da linguagem de programação Python, julgue o item.

O caractere #, usado na linha 2, indica um comentário.

Comentários:

A cerquilha é usada para comentar uma linha tanto em Python e quanto em R.

Gabarito: CERTO.

 

[IFMT 2018 IFMT – Informática] Sobre a linguagem Python, é INCORRETO afirmar que: (Marque CERTO ou ERRADO)

[B] Utiliza indentação para delimitar início e fim de blocos.

Comentários:

A indentação para o Python é de muita importância: Python a usa para indicar (delimitar) um bloco de código. Para o R, a indentação é apenas para organização de código e o que delimita os blocos de códigos são chaves { }.

Gabarito: CERTO.

 

[CETAP 2010 AL/RR – Analista de Sistemas] Sobre a linguagem de programação PYTHON, marque a alternativa INCORRETA. (Marque CERTO ou ERRADO)

[D] A separação de blocos de código em Phyton é feita utilizando a indentação de código.

Comentários:

Novamente, uma questão tratando da indentação em Python para delimitação de código.

Gabarito: CERTO.

 

[CESPE 2018 Polícia Federal – Agente de Polícia Federal] Julgue o próximo item, relativo a noções de programação Python e R.

Considere o programa a seguir, na linguagem Python.

if 5 > 2
    {
        print("True!")
     }

A sintaxe do programa está correta e, quando executado, ele apresentará o seguinte resultado.

True!

Comentários:

Bastando saber que a delimitação de bloco de código para uma estrutura de controle em Python é feita com indentação, podemos de cara marcar que a questão está totalmente errada. Nem precisamos saber sobre a estrutura de condição if. Só analisando a sintaxe, podemos responder a questão.

Aproveitando, vamos corrigir o código para Python:

if 5 > 2:
    print("True!")

E vamos colocar o código em R:

if (5 > 2) {
    print("True!")
}

Em R, a delimitação do código é feita por chaves { } e a condição da estrutura de condição if deve estar entre parênteses ( ). Mas isso é assunto para uma próxima comparação entre Python e R.

Concluindo o comentário, a sintaxe do programa não está correta em Python e o programa não será executado.

Gabarito: ERRADO.

 


Então é isso!

[]s e até a próxima!

_________________________

Professor Rogerão Araújo

Avatar


25 de Outubro de 2020