Diferenças entre Python e Bash
Estou aprendendo Python aos poucos, e acabei me deparando com algumas pequenas coisas em relação ao Bash, que é o que uso hoje em dia para fazer meus Scripts.
Por exemplo: Assim como no Bash, não é necessário o ; para finalizar uma linha. Porém, a indentação é obrigatória. Um local onde se encontra diferenças entre o Python e o Bash, é nos laços. Por exemplo, o if no Bash é assim:
if [ $idade -ge 18 ]; then
echo "Você é maior de idade :D"
else
echo "Você é menor de idade :/"
fi
Enquanto que no Python é assim:
if idade >= 18:
print ("Você é maior de idade :D")
else:
print ("Você é menor de idade :/")
Enquanto que no Bash, são comandos do próprio sistema; e por essa razão tem um ; antes do then, afinal, está encadeando dois comandos; no Python, isso é parte da própria linguagem.
E essa é apenas uma das diferenças que eu encontrei. E vou listando aqui todas as diferenças que eu encontrar nessas duas linguagens.
Variáveis
Uma outra coisa onde o Bash e o Python parecem tão iguais e tão diferentes, são nas variáveis. Enquanto que no Bash não há atribuição de Tipo de Dado, no Python isso é opcional.
Por exemplo, para criar uma variável é assim no Bash…
#!/bin/env bash
valor=10
string="Acesse https://rapoelho.com.br"
… enquanto que no Python, é assim:
#!/bin/env python
valor = 10
string = "Acesse https://rapoelho.com.br"
Aqui os dois se parecem muito. E as semelhanças acabam por aqui. Por exemplo: no Python, dá pra fazer uma variável ser de um determinado tipo. Isso seria mais ou menos assim:
#!/bin/env python
valor = int(10)
string = str("Acesse https://rapoelho.com.br")
E outra diferença, é em como essas Variáveis são usadas. Enquanto que no Bash, o uso do Cifrão ($) se faz necessário…
#!/bin/env bash
valor=10
echo "O Valor é $valor"
… no Python isso não é necessário.
#!/bin/env python
valor = int(10)
print ("O Valor é", valor)
echo vs print () e read vs input
Outra diferença que percebi entre os dois, foi no “comando” de imprimir algo na tela. No Bash, o que é usado é o echo, e no Python, é o print (). Outra diferença é na entrada de dados, onde no Bash é usado o comando reade no Python, a função input ().
Por exemplo, um programa para calcular a idade e exibir em dias, horas e segundos ficaria assim no Bash…
#!/bin/env bash
read -p "Digite sua idade: " idade
dias=$(echo $((idade * 365)))
horas=$(echo $((dias * 24)))
segundos=$(echo $((horas * 3600)))
echo -e "Você viveu por $dias dias...\n... por $horas horas...\n e por $segundos segundos")
…e em Python, isso ficaria assim.
#!/bin/env python
idade = int(input ("Digite sua idade: "))
dias = idade * 365
horas = dias * 24
segundos = horas * 3600
print ("Você viveu por", dias, "dias... \n... por", horas, "...\n e por", segundos, "segundos")
Dá pra ver claramente as diferenças. O echo permite usar as variáveis no meio do texto, usando o $. Já no Python, tem que fazer a separação entre os textos e as variáveis com uma ,.
Mas uma semelhança importante é que dá para criar novas linhas usando o \n. No caso do Bash, tem que usar a parâmetro -e para permitir a formatação, e no Python isso não é necessário.