Introdução a programação#

O que é programar#

Programar é simplesmente o ato de inserir instruções para o computador executar. Essas instruções podem processar alguns números, modificar texto, procurar informações em arquivos ou comunicar-se com outros computadores pela Internet.

Todos os programas usam instruções básicas como blocos de construção. Aqui estão alguns dos mais comuns, em inglês:

“Do this; then do that.” “If this condition is true, perform this action; otherwise, do that action.” “Do this action exactly 27 times.” “Keep doing that until this condition is true.”

[Swe19]

alt text

Você também pode combinar esses blocos de construção para implementar decisões mais complexas. Por exemplo, aqui estão as instruções de programação, chamadas de código-fonte , para um programa simples escrito na linguagem de programação Python. Começando no topo, o software Python executa cada linha de código (algumas linhas são executadas apenas se uma determinada condição for verdadeira ou então o Python executa alguma outra linha) até chegar ao final.

passwordFile = open('SecretPasswordFile.txt') #atribui conteúdo do arquivo a variável passwordfile
secretPassword = passwordFile.read() #cria uma váriável secretPassword atribui o conteúdo de passwordfile
print('Enter your password.') #mostra na tela a frase Enter...
typedPassword = input() #cria outra vária typedPassword e requer entrada de conteúdo ao usuário
if typedPassword == secretPassword:  #estrutura condicional para conferência da senha
   print('Access granted')
   if typedPassword == '12345':
      print('That password is very easy.')
   elif typedPassword == 'cpd066':
      print('Computação Aplicada.')
else:
      print('Access denied')

Na verdade, ser bom em programação não é muito diferente de ser bom em resolver quebra-cabeças

alt text

alt text

colab

https://replit.com/

https://codewith.mu/en/about

Encontrando Ajuda#

Por exemplo, vamos causar um erro propositalmente

Como Obter Ajuda no Python#

1. Usando a função help()#

help(print)  # Exibe informações sobre a função print
help(str)    # Exibe informações sobre a classe str

2. Usando dir() para listar atributos e métodos#

print(dir(str))  # Lista todos os métodos da classe str

3. Documentação embutida com .__doc__#

print(str.__doc__)  # Exibe a documentação da classe str
print(print.__doc__)  # Exibe a documentação da função print

4. Usando o módulo pydoc#

# Executar no terminal:
# python -m pydoc print
# python -m pydoc -p 8000

5. Consultando a documentação oficial#

Documentação Oficial do Python

6. Pesquisando em fóruns e comunidades#

"42" + "3

Enfrentando erros#

Se você vir a mensagem de erro SyntaxError: EOL while scaning string literal , provavelmente esqueceu o caractere de aspas simples final no final da string, como neste exemplo

'Ola Mundo'
print('Ola Mundo)

É importante ter uma “mentalidade construtiva” em relação à programação – em outras palavras, entender que as pessoas desenvolvem habilidades de programação através da prática.

Inserindo Expressões#

alt text

2 + 3 * 6
2 ** 8
23 / 7
22 % 2
23 % 2
24 // 8

Instalando Módulos de Terceiros#

Alguns códigos Python exigem que seu programa importe módulos. Alguns desses módulos vêm com Python, mas outros são módulos de terceiros criados por desenvolvedores fora da equipe principal de desenvolvimento do Python.

import math
math.sqrt(4)

Precedência#

A ordem das operações (também chamada de precedência ) dos operadores matemáticos do Python é semelhante à da matemática.

O operador ** é avaliado primeiro; os operadores * , / , // e % são avaliados a seguir, da esquerda para a direita; e os operadores + e - são avaliados por último (também da esquerda para a direita).

Você pode usar parênteses para substituir a precedência usual, se necessário. O espaço em branco entre os operadores e os valores não importa para o Python (exceto o recuo no início da linha), mas um único espaço é uma convenção.

5 - 1 * ((7 + 1) / (3 - 1))
(5 - 1) * ((7 + 1) / (3 - 1))

Python continuará avaliando partes da expressão até que ela se torne um valor único, conforme mostrado aqui

alt text

alt text

Tipos de dados inteiro, ponto flutuante e string#

alt text

Concatenação e replicação de strings#

'Alice' + 'Bob'
'Alice' + 42
'Alice' * 5
'AliceAliceAliceAliceAlice'
'Alice' * 5.0
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[2], line 1
----> 1 'Alice' * 5.0

TypeError: can't multiply sequence by non-int of type 'float'

Armazenando Valores em Variáveis#

Uma variável é como uma caixa na memória do computador onde você pode armazenar um único valor. Se quiser usar o resultado de uma expressão avaliada posteriormente em seu programa, você pode salvá-lo dentro de uma variável.

alt text

Declarações de Atribuição#

Você armazenará valores em variáveis ​​com uma instrução de atribuição . Uma instrução de atribuição consiste em um nome de variável, um sinal de igual (chamado operador de atribuição ) e o valor a ser armazenado. Se você inserir a instrução de atribuição spam = 42 , então uma variável chamada spam terá o valor inteiro 42 armazenado nela.

spam = 42
spam
spam = 10
num1 = 2
spam + num1

Uma variável é inicializada (ou criada) na primeira vez que um valor é armazenado nela. Depois disso, você poderá utilizá-lo em expressões com outras variáveis ​​e valores . Quando um novo valor é atribuído a uma variável , o valor antigo é esquecido. Isso é chamado de sobrescrever a variável.

spam + num1 + spam
spam = spam + 2
spam
spam = 'Hello'
spam

alt text

spam = 'Goodbye'
spam
spam = input()
spam
spam = spam + " à engenharia"
spam
spam = spam + 1
spam = input()
spam
spam = spam + 1
spam = int(spam)
spam
spam = spam + 1
spam
int(.70975858858) + 1
num2 = 20
num2 = num2 + 1
num2

Nomes de variáveis#

Um bom nome de variável descreve os dados que ela contém. Imagine que você se mudou para uma nova casa e rotulou todas as suas caixas de mudança como “Coisas” . Você nunca encontraria nada! Em seus programas, um nome descritivo ajudará a tornar seu código mais legível.

Embora você possa nomear suas variáveis ​​de quase qualquer coisa, o Python tem algumas restrições de nomenclatura.

Você pode nomear uma variável como quiser, desde que ela obedeça às três regras a seguir:

  • Pode ser apenas uma palavra sem espaços.

  • Ele pode usar apenas letras, números e o caractere de sublinhado ( _ ).

  • Não pode começar com um número.

Os nomes das variáveis ​​diferenciam maiúsculas de minúsculas, o que significa que spam , SPAM , Spam e sPaM são quatro variáveis ​​diferentes. Embora Spam seja uma variável válida que você pode usar em um programa, é uma convenção do Python iniciar suas variáveis ​​com uma letra minúscula.

Usamos o estilo camelcase para nomes de variáveis ​​em vez de sublinhados; isto é, variáveis ​​lookLikeThis em vez de looks_like_this

alt text

# This program says hello and asks for my name.
print('Hello, world!') # alô mundo
#print('What is your name?')    # ask for their name
myName = input('What is your name?') #requer uma entrada do usuário e associa esta a variável myName
print(myName) #mostra na tela o conteúdo da variável
print('Hello, world ' + myName + '!') # alô mundo

A função print()#

A função print() exibe o valor da string entre parênteses na tela.

print('It is good to meet you, ' + myName)

Quando Python executa esta linha, você diz que Python está chamando a função print() e o valor da string está sendo passado para a função. Um valor passado para uma chamada de função é um argumento . Notar que as cotas (aspas) não são impressas na tela. Eles apenas marcam onde a string começa e termina; eles não fazem parte do valor da string.

print(f'It is good to meet you, ', myName)

A função len()#

Você pode passar para a função len() um valor de string (ou uma variável contendo uma string), e a função será avaliada como o valor inteiro do número de caracteres nessa string.

print('The length of your name is:')
print()
print(len(myName))

A função input()#

A função input() espera que o usuário digite algum texto no teclado e pressione ENTER

As funções str(), int() e float()#

Se você quiser concatenar um número inteiro com uma string para passar para print() , você precisará obter o valor ‘’ , que é a forma de string. A função str() pode receber um valor inteiro e será avaliada como uma versão de valor de string do inteiro, como segue:

print('What is your age?')    # ask for their age
myAge = input()
print('You will be ' + str(int(myAge) + 1) + ' in a year.')
print('What is your age?')    # ask for their age
myAge = input()
print('You will be ' + str(int(myAge) + 1) + ' in a year.')

alt text

As funções str() , int() e float() serão avaliadas nas formas string, inteiro e ponto flutuante do valor que você passa, respectivamente.

spam 
'spam'
str(0)
str(-3.14)
int('42')
int('-99')
#int(1.25)
#int(1.99)
#float('3.14')
float(10)

A função str() é útil quando você tem um número inteiro ou flutuante que deseja concatenar com uma string. A função int() também é útil se você tiver um número como valor de string que deseja usar em alguma matemática. Por exemplo, a função input() sempre retorna uma string, mesmo que o usuário insira um número.

spam = input()
spam
spam * 10/5

O valor armazenado no spam não é o número inteiro, mas a string ‘’ . Se você quiser fazer contas usando o valor em spam , use a função int() para obter a forma inteira de spam e armazene-a como o novo valor em spam .

spam = int(spam)
spam
spam * 10/5

A função int() também é útil se você precisar arredondar um número de ponto flutuante para baixo.

int(7.7)

Equivalência ente números#

42 == '42'
42 == 42.0
42.0 == 0042.000
True

Exemplo na Engenharia Civil#

Um exemplo simples de aplicação na área de engenharia civil é o calculo da tensão normal em uma coluna. Para isso, nós iremos utilizar da seguinte formula:

T = F N A

Onde:

  • T = Tensão;

  • FN = Força Normal;

  • A = Área da seção transversal da coluna.

Exemplo - Calcule a tensão sobre a seguinte coluna:

alt text

F = 8000
A = 10*(75+75)*2+(70+70)*10
T = F/A

print("A tensão foi de "+str(T)+" N/mm²")
A tensão foi de 1.8181818181818181 N/mm²

Referências#

https://automatetheboringstuff.com/

[Swe19]

Al Sweigart. Automate the boring stuff with Python: practical programming for total beginners. No Starch Press, 2019.