Escolar Documentos
Profissional Documentos
Cultura Documentos
Sidinei Silva
Silva
A presente obra pode ser adotada por estudantes iniciantes dos cursos de
engenharia química ou aqueles que já se encontram na fase profissional do
curso. Também pode servir de referência para engenheiros já formados uma
vez que o usuário, quando estiver com essa obra em mãos, dependendo do
nível de conhecimento em programação, iniciará seus estudos do zero ou
revisará conteúdos de programação já explorados em outras linguagens por
CM
MY
seus estudos ou, ainda, otimizá-los, dando a eles a sua contribuição.
CY
CMY
Sidinei Silva
Professor de nível superior com doutorado em Engenharia Química. Tem INTRODUÇÃO AO
atuado no desenvolvimento de aplicações, com base em programação Python,
em pesquisas na área de propriedade industrial, análise econômica de
processos, laboratório de química analítica e classificação de áreas. Também é
PYTHON PARA
coordenador do laboratório Radar - Pesquisa e Inovação Industrial com
patentes depositadas, desenvolvimento de para o auxílio à redação
de patentes e orientação de alunos de graduação em trabalhos de iniciação
ENGENHARIA QUÍMICA
científica ou durante seus estágios na indústria ou na academia. No momento
faz parte do corpo docente do curso de graduação em de Engenharia Química
da Universidade Federal de Campina Grande - PB.
Introdução ao python para
engenharia química
Sidinei Silva
Departamento de Engenharia Química
Universidade Federal de Campina Grande
Introdução ao python para engenharia química
© Sidnei Silva
Editora Edgard Blücher Ltda.
Segundo o Novo Acordo Ortográfico, conforme 5. ed. do Vocabulário Ortográfico da Língua Portuguesa,
Academia Brasileira de Letras, março de 2009.
É proibida a reprodução total ou parcial por quaisquer meios sem autorização escrita da editora.
Silva, Sidinei
Introdução ao Pyhton para engenharia química / Sidinei Silva. - São Paulo : Blucher, 2023.
624 p. : il., color.
Bibliografia
ISBN 978-65-5506-671-5
Outros Números.....................................................................................................21
Problemas de desenvolvimento............................................................................26
Problemas de desenvolvimento............................................................................49
Referências ..............................................................................................................70
Referências ..............................................................................................................95
Problemas de desenvolvimento..........................................................................127
Referências ............................................................................................................129
Operadores lógicos...............................................................................................135
Problemas de desenvolvimento..........................................................................142
Referências ............................................................................................................143
Problemas de desenvolvimento..........................................................................164
Referências ............................................................................................................166
Referências ............................................................................................................205
Algoritmo ...............................................................................................................208
Pseudocódigo ........................................................................................................210
Fluxograma ............................................................................................................212
Programa................................................................................................................216
Problemas de Revisão..........................................................................................218
Referências ............................................................................................................220
Problemas de desenvolvimento..........................................................................264
NumPy ...................................................................................................................269
Ajuste de curva.........................................................................................................272
Coeficientes de um polinômio................................................................................275
Derivada e integral...................................................................................................279
Arrays ........................................................................................................................283
Matrizes ....................................................................................................................286
SciPy .......................................................................................................................292
Interpolação ..............................................................................................................294
SymPy ....................................................................................................................304
Matplotlib ..............................................................................................................311
Pandas ....................................................................................................................311
Problemas de Revisão..........................................................................................322
Problemas de desenvolvimento..........................................................................325
Referências ............................................................................................................327
Erros de sintaxe........................................................................................................330
Problemas de desenvolvimento..........................................................................345
Referências ............................................................................................................347
Referências ............................................................................................................391
Referências ............................................................................................................452
Problemas de desenvolvimento..........................................................................498
Referências ............................................................................................................503
Referências ............................................................................................................553
Apêndices...................................................................................................................554
Caixa Rápido
Acesse o link acima e,
quando a página
abrir, selecione a
versão do sistema
operacional do seu
computador.
Caixa Rápido
Após seleção, o logo
do sistema
operacional fica cinza.
Agora clique na
versão desejada.
Caso tenha dúvidas com relação aos passos de instalação, veja o Apêndice 1
deste livro para maiores detalhes.
3
Introdução ao Python para Engenharia Química
Caixa Rápido
Após instalação, procure pelo
ícone do Spyder e clique nele
Figura 1.3: Ícone de acesso do Spyder. para abrir o programa.
Caixa Rápido
1 – Escreva seus
códigos aqui;
2 2 – Explore as
variáveis ativas;
3 – Aqui são
1
impressos os
resultados.
3
Todas as vezes que você abre o Spyder, essa área aparece. Nela temos, de forma
muito resumida, três partes essenciais. Caixinha com o número 1: Arquivo
temporário que pode ser editado de forma que nossos programas sejam salvos
futuramente. Vamos trabalhar bastante com ele mais à frente.
Na caixinha com o número 3, nós temos o console, que funciona como uma
calculadora, caso queiramos realizar alguma conta rápida. Basta digitar algum
valor e apertar “Enter” que o resultado é impresso nessa mesma tela logo em
seguida. Ela também é responsável por apresentar os resultados de qualquer
programa que seja executado na área de desenvolvimento (caixinha com o
número 1).
O “In [1]”, “In [2]”, “In [3]” no console indica “Input”, que quer dizer entrada
de informação. A fim de mostrar a funcionalidade do console, vamos escrever
nosso primeiro comando: print( )! Este comando é uma funcionalidade interna
do Python e serve para imprimir uma linha vazia ou imprimir, quando
devidamente preenchido, qualquer argumento que esteja entre os parênteses.
Escreva a linha de comando no seu console conforme mostra a Figura 1.5:
5
Introdução ao Python para Engenharia Química
Caixa Rápido
No console, use a função
print( ) do Python para
Figura 1.5: Primeiro comando usando o Console.
executar seu primeiro código.
Você deve ter um resultado semelhante ao da Figura 1.6 após apertar “Enter”.
Caixa Rápido
Após apertar “Enter”, veja o
resultado do seu primeiro
código no próprio console.
Figura 1.6: Resultado do comando print no Console.
Caixa Rápido
Armazene um texto entre
aspas na variável chamada
mensagem e aperte “Enter”.
Figura 1.7: Escrevendo uma variável no console.
6
Capítulo 1: Introdução ao Python
Caixa Rápido
Veja no Explorador de Variáveis
que o texto escrito agora está na
memória do computador.
Figura 1.8: Explorador de Variáveis.
Caixa Rápido
Utilize a função print( ) para
mostrar o conteúdo da variável
mensagem no console.
Caixa Rápido
Além de texto, as variáveis
também podem armazenar
números.
• Você deve usar nomes concisos e descritivos para as variáveis. Isso quer
dizer que você não precisa escrever um texto enorme para definir uma
única variável. Também não deve usar apenas letras, caso contrário, em
um momento futuro, você não saberá o que aquele “d” no seu código
representa. Por exemplo: nome é melhor que n; nome_estudante é
melhor que n_e; tamanho_nome é melhor que
tamanho_do_nome_da_pessoa;
• Existem exceções, como por exemplo no uso de letras nos contadores
de laços de repetição. Neste caso é aceitável porque a variável que está
sendo utilizada está limitada ao uso do laço (que veremos com mais
detalhes nos capítulos vindouros);
• Tome cuidado ao usar a letra minúscula l e a letra maiúscula O, pois
elas podem ser confundidas com os números 1 e 0;
• O Python é case sensitive! “O que isso quer dizer?” Isso diz que o
Python interpreta minúsculo e maiúsculo como coisas distintas. Se você
escrever Mensagem no lugar de mensagem, aparecerá um erro no
console informando que a variável Mensagem não foi definida (veja a
Figura 1.12). A mensagem de erro se chama Traceback. Ela lhe auxiliará
indicando a causa ou a possível posição de um eventual erro no seu
código.
Caixa Rápido
Para o Python,
letras minúsculas
são diferentes das
maiúsculas.
M≠m
Figura 1.12: Erro do tipo letra minúscula e maiúscula.
Caixa Rápido
O Python não completa
palavras. Caso esqueça
de escrever alguma
letra, um erro ocorrerá.
Quando você abre o Spyder, caso não haja nenhuma aplicação anterior, por
default (padrão), o programa abre um arquivo temporário chamado temp.py,
conforme a Figura 1.14.
Caixa Rápido
Este é um arquivo temporário.
Não precisa utilizá-lo.
Você não precisa editar esse arquivo. Vamos criar um arquivo e salvá-lo com o
nome primeiro_codigo.py. Primeiramente, observe no canto superior esquerdo
11
Introdução ao Python para Engenharia Química
da Figura 1.14 a imagem de uma folha com uma borda dobrada. Clique neste
botão para que seja criado um arquivo. Por default, o arquivo vem nomeado
com um untitled0.py (ou semtitulo0 na versão em português BR), veja a Figura
1.15 a seguir.
Caixa Rápido
Você pode criar um
arquivo novo, que já virá
com um cabeçalho padrão
e conterá seu nome e data
de criação.
Caixa Rápido
Para renomear seu
arquivo, basta clicar em
“File” e procurar por
“Save as”. Uma nova caixa
de diálogo aparecerá e lá
você deverá renomear seu
arquivo.
Botão Play
Caixa Rápido
O exemplo ao lado mostra a
definição de uma variável
que armazena um texto e
em seguida será impressa
Pelo que já vimos até agora, o código inserido na Figura 1.18 é fácil de entender.
Nele, uma variável mensagem recebe um texto na linha 8 e, na linha 9, estamos
pedindo para que o Spyder imprima o conteúdo da variável mensagem. Agora
é hora de executarmos o código. Para isto, basta procurar um ícone na barra
de tarefas com um formato de Play verde. Clique nele e veja o resultado no
console. Deve ser algo semelhante ao que está exposto na Figura 1.19.
Caixa Rápido
Após clicar no Play você
verá o resultado impresso
no console.
Não se assuste com o conteúdo exposto na Figura 1.19! O que está impresso
em verde nada mais é que o caminho que o Python teve que seguir para achar
seu arquivo e poder executá-lo. Lembre-se: a interface gráfica é do Spyder, mas
por trás quem executa tudo é o Python! Observe que logo após as linhas verdes
está a impressão do conteúdo armazenado na variável mensagem.
Por exemplo: uma variável do tipo string pode conter métodos de formatação
do conteúdo que está salvo na dita variável, como os métodos .title( ), .upper( )
e .lower( ). Vejamos essa aplicação com mais detalhes a seguir.
Caixa Rápido
.tittle( ), .upper( ) e
.lower( ) são editores
Figura 1.20: Exemplos de métodos internos do Python. aplicados às variáreis do
Todas as vezes que você coloca um ponto “.” logo após uma variável, aparecerá
uma pequena lista suspensa com sugestões de métodos que podem ser usados.
No nosso caso, utilizamos o title( ) logo após o ponto. Observe atentamente na
15
Introdução ao Python para Engenharia Química
Figura 1.20 que a variável nome.title( ) alimenta a função interna print( ). Você
pode, sem preocupação, utilizar uma função como argumento de outra.
Caixa Rápido
Veja o resultado da
aplicação de .tittle( ),
.upper( ) e .lower( )
Figura 1.21: Resultado do uso de alguns métodos internos do Python. respectivamente.
Concatenando strings
Muitas vezes, será conveniente concatenar (combinar) strings. Por exemplo,
você pode querer armazenar um primeiro e um segundo nome em variáveis
separadas e, então, combiná-las quando quiser exibir o texto por completo. Crie
um arquivo, e chame-o de nome2. Observe as linhas de código na Figura 1.22
e tente reproduzi-las no seu desenvolvedor. Para minimizar o conteúdo exposto
nas Figuras, de agora em diante, neste capítulo, quando for necessário mostrar
alguma imagem da área de desenvolvimento, não serão apresentadas as
primeiras linhas de comentários já citadas.
Caixa Rápido
Concatenação usando
apenas a função print( ).
16
Capítulo 1: Introdução ao Python
O Python utiliza códigos especiais para pular linhas ou aplicar tabulação nos
textos que serão impressos no console. Observe as linhas de código da Figura
1.23. O código é uma continuação do exemplo já disposto na Figura 1.22.
Caixa Rápido
Pulando linhas
(╲n) e aplicando
tabulação (╲t)
Figura 1.23: Pulando linhas e aplicando tabulação.
no Python.
A linha 4 da Figura 1.23 mostra um print( ) vazio. Isso significa que o console
imprimirá uma linha sem texto algum. Na linha 5 temos uma nova frase
"Aprenderei: ╲n -A programar em Python!". Quando executamos esse
programa, o console mostrará em uma linha o texto “Aprenderei:” e na linha
seguinte a continuação “A programar em Python!”. O elemento “╲n” é o
responsável por esse “pulo”.
Caixa Rápido
Veja o resultado no console
quando é aplicado a tabulação
ou quando é necessário pular
uma linha.
Figura 1.24: Resultados do pulo de linha e da tabulação.
Caixa Rápido
Concatenação somando
variáveis do tipo string.
Figura 1.25: Concatenação direta de variáveis.
Clique no bodão Play para rodar seu código e observe que apenas uma palavra
foi impressa no console: engenhariaquímica. Ah! Mas não queremos que as
palavras saiam agrupadas dessa maneira quando forem impressas junto aos
resultados. Precisamos aplicar um “espaço” entre essas palavras. Observemos
agora o código da Figura 1.26.
Caixa Rápido
Use apóstrofos, ou aspas,
para aplicar espaços entre
Figura 1.26: Ajustando a concatenação direta. as palavras na concatenação.
Caixa Rápido
Use str( ) para
transformar
Figura 1.27: Convertendo número para texto. número em texto.
Caso você esqueça de aplicar essa transformação e rodar seu código, o seguinte
erro aparecerá no seu console: “TypeError: must be str, not float”. Esse é o erro
que lhe diz que você está tentando juntar variáveis de diferentes tipos, o que o
Python não aceita! Traduzindo a mensagem de erro, temos: “Erro de tipo: A
variável deve ser texto, não número”. Ao final dos seus estudos em Python você
estará familiarizado com esses pequenos detalhes.
Para isto, basta utilizar diretamente o console, caso queira utilizá-lo como uma
calculadora, ou programar as operações desejadas em algum novo módulo no
editor. Observe a Figura 1.28 e veja o resultado de algumas aplicações.
Caixa Rápido
No console, use os
operadores matemáticos
para a realização de
cálculos simplificados.
Caso você queira escrever 10.000 (dez mil) no Python, terá que lembrar dessa
regra e reescrever esse valor como 10000, sem o ponto “.” que define o milhar.
Caixa Rápido
Para aplicar um expoente,
utilize “**”. No caso de
notação científica, o Python
aceita “e” ou “E”.
Observe que essa regra não se limita ao uso do console do Spyder. Ela também
será seguida quando desenvolvermos nossos programas em algum módulo no
desenvolvedor. Essa é uma regra padrão já utilizada por vários softwares de
engenharia. Veja o exemplo na Figura 1.30. Na entrada In[26], temos 9**1/2.
21
Introdução ao Python para Engenharia Química
Caixa Rápido
Caso queira determinar a
ordem da operação
matemática, aplique
parênteses na sua equação.
Outros Números
Nos exemplos anteriores, tivemos a experiência de lidar com a variável do tipo
string e, também, como apresentado na Figura 1.29 e Figura 1.30, vimos os
chamados números inteiros como valores de entrada para os cálculos desejados.
Os diferentes tipos de variáveis existem para que não haja sobrecarga do
sistema computacional. “Como assim?” Você pagaria por uma folha de papel a
mesma quantia necessária para comprar um carro? Acredito que sua resposta
seja não! No mesmo sentido, o computador não usa a mesma quantidade de
memória para armazenar um número ou um texto. Isso quer dizer que, para
22
Capítulo 1: Introdução ao Python
Voltando para nossos diferentes tipos de variáveis com que o Python trabalha.
Entre os números, existem também os chamados números de ponto flutuante.
Esses números requerem um espaço bem maior na memória se comparados
aos números inteiros. Observe que é necessário um esforço maior para guardar
um valor como 2,698547854052154 se comparado ao número 2.
Se você tiver interesse em saber qual tipo de variável você está lidando, basta
verificar o painel “Variable Explorer”, já apresentada anteriormente na Figura
1.8, ou usar a função interna type( ) no console. A variável de interesse é o
argumento necessário para o funcionamento desta função. Vejamos sua
aplicação na Figura 1.31. A variável press foi usada para armazenara o valor da
pressão no exemplo da Figura 1.27 citada anteriormente. Observe no resultado
que esse número é do tipo “ponto flutuante” (float). Para saber qual valor está
armazenado nela, basta escrevê-la no console e apertar “Enter”.
23
Introdução ao Python para Engenharia Química
Caixa Rápido
Use type( ) para saber qual
é o tipo da variável.
A linha 6 apresenta mais uma variável chamada tempK. Ela é responsável por
armazenar o resultado da transformação do valor da temperatura em célsius,
inserida pelo usuário, para Kelvin. E, finalmente, a linha 7 que imprime a
mensagem contida na variável msg, concatenando-a com o valor armazenado
na variável tempK.
24
Capítulo 1: Introdução ao Python
Observe que aparece um texto solicitando uma entrada! É você, como usuário,
que tem que inserir a informação demandada. Caso contrário, você pensará que
seu programa travou, pois ele só finalizará o programa quando você entrar com
a informação ou quando o Spyder for fechado.
Problemas de revisão
1.1.Escreva, com suas palavras, o que faz cada uma das funções nativas do
Python listadas a seguir:
• print, title, lower, upper, input, str, float.
1.2.Quais caracteres devem ser evitados em nomes de arquivos *.py?
1.3.Qual a melhor forma de se aplicar um nome a uma variável? Por qual
motivo?
1.4.Desenvolva um código que solicite ao usuário o nome de um reagente. Este
texto deve ser impresso nos seguintes formatos:
a) Título;
b) Caixa alta;
c) Minúsculas.
25
Introdução ao Python para Engenharia Química
Problemas de desenvolvimento
1.11. Em um novo arquivo chamado temperatura1.py programe as seguintes
situações:
a. Escreva o comando input( ) para solicitar a temperatura em °𝐶𝐶;
b. Converta a temperatura inserida anteriormente para °𝐹𝐹 com a
seguinte equação:
𝐿𝐿2 √3
𝑉𝑉 = 6 � �ℎ (Ex 1.3)
4
Para que o cálculo seja realizado, seu código deve solicitar o valor do
lado L do hexágono e a altura h ao usuário. O resultado do volume
calculado deve ser impresso no console.
28
Capítulo 1: Introdução ao Python
1.21. As duas raízes reais de uma função quadrática 𝑎𝑎𝑥𝑥 2 + 𝑏𝑏𝑏𝑏 + 𝑐𝑐 = 0 (onde
a é diferente de zero) é calculada pela seguinte equação:
−𝑏𝑏 ± √𝐷𝐷
𝑥𝑥𝑖𝑖 = (Ex 1.8)
2𝑎𝑎
onde o discriminante 𝐷𝐷 = 𝑏𝑏 2 − 4 ∗ 𝑎𝑎 ∗ 𝑐𝑐. Escreva um programa que calcule
e retorne as raízes de uma função quadrática. Para isto, o seu programa
deve fazer com que o usuário insira os valores de 𝑎𝑎, 𝑏𝑏 e 𝑐𝑐.
Finalizando o Capítulo 1
Em resumo, neste capítulo conhecemos a interface gráfica do Spyder-Anaconda
que utiliza a linguagem Python como padrão de programação. Também demos
os primeiros passos na manipulação de variáveis quando armazenamos as
chamadas strings. Usamos o console do Spyder para imprimir pequenos textos
e, também, aprendemos a armazenar nossos códigos em arquivos do tipo *.py.
Sabemos como pedir uma informação ao usuário usando método input( ), além
de escrevermos programas utilizando outros métodos internos do Python, como
30
Capítulo 1: Introdução ao Python
por exemplo, str( ) e float( ) para a padronização do tipo de variável que será
impressa no console.
Sidinei Silva
Silva
A presente obra pode ser adotada por estudantes iniciantes dos cursos de
engenharia química ou aqueles que já se encontram na fase profissional do
curso. Também pode servir de referência para engenheiros já formados uma
vez que o usuário, quando estiver com essa obra em mãos, dependendo do
nível de conhecimento em programação, iniciará seus estudos do zero ou
revisará conteúdos de programação já explorados em outras linguagens por
CM
MY
seus estudos ou, ainda, otimizá-los, dando a eles a sua contribuição.
CY
CMY
Sidinei Silva
Professor de nível superior com doutorado em Engenharia Química. Tem INTRODUÇÃO AO
atuado no desenvolvimento de aplicações, com base em programação Python,
em pesquisas na área de propriedade industrial, análise econômica de
processos, laboratório de química analítica e classificação de áreas. Também é
PYTHON PARA
coordenador do laboratório Radar - Pesquisa e Inovação Industrial com
patentes depositadas, desenvolvimento de para o auxílio à redação
de patentes e orientação de alunos de graduação em trabalhos de iniciação
ENGENHARIA QUÍMICA
científica ou durante seus estágios na indústria ou na academia. No momento
faz parte do corpo docente do curso de graduação em de Engenharia Química
da Universidade Federal de Campina Grande - PB.