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.