Você está aqui: Python ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções |
Alterando a ordem dos parâmetros de uma chamada à métodos (funções) usando palavras-chavesQuantidade de visualizações: 6868 vezes |
É possível efetuar chamadas às funções Python sem obedecer a ordem correta dos argumentos. Para isso, só precisamos usar o recurso de palavras-chaves. Veja como isso pode ser feito: def volume(com, lar, alt): return (com * lar * alt) # chamada com ordem padrão print volume(com = 4, lar = 2, alt = 3) # chamada com ordem inversa print volume(alt = 3, lar = 2, com = 4) # chamada com ordem embaralhada print volume(alt = 3, com = 4, lar = 2) |
![]() |
Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural |
Como calcular o peso que um pilar aguenta usando Python - Python para Engenharia CivilQuantidade de visualizações: 229 vezes |
![]() O sonho de todo estudante de Engenharia Civil é poder responder, com segurança, a uma das perguntas mais recorrentes no nosso dia-a-dia: Quanto de peso um pilar aguenta? Para responder, basta nos lembrarmos de que o concreto é muito resistente à compressão, e, no caso dos pilares, a armadura é usada, em sua maior parte, para combater a flambagem, que é quando o pilar tende a fletir para os lados, parecendo-se com um arco ou com uma barriga de chope. Então, uma vez que o pilar recebe sua carga em seu eixo (carga axial) e o concreto é muito resistente à compressão, só precisamos nos concentrar na resistência característica do concreto à compressão e na área da seção transversal do pilar. Sempre que falamos de resistência do concreto, nós estamos falando de FCK C15, C20, C25, C30, etc, que são os termos usados para designar sua resistência. Assim, um concreto C25 é o mesmo que 25 MPa, ou seja, esse concreto resiste a 250Kg/cm2. Os concretos usinados, em geral, vêm com resistência de 25 MPa para cima, enquanto aquele concreto que fazemos na obra, na betoneira, usando a combinação de 3x1, chega no máximo a 15 MPa. Além disso, é importante nos lembrarmos de que a norma NBR 6118/2014 exige que o concreto seja igual ou superior a 25 MPa. Há também o fator de segurança de 40%, também exigido pela norma NBR 6118/2014. Dessa forma, se o concreto for de 25 MPa, aplicado o fator de segurança, só podemos contar com 15 MPa mais ou menos, o que daria 150Kg/cm2. Vamos ver código agora? Veja o código Python completo que pede os lados b (base) e h (altura) do pilar e o FCK do concreto usado e retorna o peso que o pilar suporta (já aplicado o fator de segurança): ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- # Algoritmo Python que calcula o peso suportado por um pilar # dados os seus lados e o FCK do concreto # função principal do programa def main(): # vamos ler o lado b do pilar base = float(input("Informe a base (b) do pilar em cm: ")) # vamos ler a altura h do pilar altura = float(input("Informe a altura (h) do pilar em cm: ")) # vamos calcular a área da seção transversal do pilar area = base * altura # agora vamos ler o FCK do concreto em MPa fck = float(input("Informe o FCK do concreto em MPa: ")) # vamos calcular o peso suportado pelo pilar peso_suportado = area * (fck * 10) # vamos aplicar o fator de segurança de 40% peso_suportado = peso_suportado / 1.4 # e mostramos o resultado print("A área da seção transversal é: {0} cm2".format(area)) print("Esse pilar suporta {0} kg".format(peso_suportado)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe a base (b) do pilar em cm: 14 Informe a altura (h) do pilar em cm: 26 Informe o FCK do concreto em MPa: 20 A área da seção transversal é: 364.0 cm2 Esse pilar suporta 52000.0 kg Lembre-se de que a área mínima da seção de um pilar, de acordo com a NBR 6118/2014 é de 360 cm2. |
Python ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cosseno de um ângulo em Python usando a função cos() do módulo Math - Calculadora de cosseno em PythonQuantidade de visualizações: 2526 vezes |
Como calcular o cosseno de um ângulo em Python usando a função cos() do módulo Math - Calculadora de cosseno em Python Em geral, quando falamos de cosseno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função cosseno disponível nas linguagens de programação para calcular o cosseno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria. No entanto, é sempre importante entender o que é a função cosseno. Veja a seguinte imagem: ![]() Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles. Assim, o cosseno é a razão entre o cateto adjascente e a hipotenusa, ou seja, o cateto adjascente dividido pela hipotenusa. Veja a fórmula: \[\text{Cosseno} = \frac{\text{Cateto adjascente}}{\text{Hipotenusa}} \] Então, se dividirmos 30 por 36.056 (na figura eu arredondei) nós teremos 0.8320, que é a razão entre o cateto adjascente e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.8320. O resultado será 0.5881 (em radianos). Convertendo 0.5881 radianos para graus, nós obtemos 33.69º, que é exatamente o ângulo em graus entre o cateto adjascente e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é cosseno na trigonometria, vamos entender mais sobre a função cos() da linguagem Python. Esta função, que faz parte do módulo Math, recebe um valor numérico float e retorna um valor float, ou seja, também numérico) entre -1 até 1 (ambos inclusos). Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- # vamos importar o módulo Math import math as math def main(): # vamos calcular o cosseno de três números print("Cosseno de 0 = %f" % math.cos(0)) print("Cosseno de 1 = %f" % math.cos(1)) print("Cosseno de 2 = %f" % math.cos(2)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Cosseno de 0 = 1.000000 Cosseno de 1 = 0.540302 Cosseno de 2 = -0.416147 Note que calculamos os cossenos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função cosseno mostrada abaixo: ![]() |
Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural |
Como calcular a Força Normal Adimensional ou Força Normal Reduzida de um pilar em Python - Python para Estruturas de Concreto ArmadoQuantidade de visualizações: 329 vezes |
![]() A Força Normal Adimensional de um pilar, também chamada de Força Normal Reduzida, é representada pela letra grega ν (ni) e nos dá uma idéia da magnitude da força normal que está sendo aplicada na seção transversal de um pilar. A fórmula para o cálculo da Força Normal Adimensional pode ser representada da seguinte forma: \[\nu = \frac{N_\text{sd}}{A_\text{c} \cdot \frac{f_\text{ck}}{\gamma _\text{c}}} \] Onde: ν é a Força Normal Adimensional sem unidade; Nd é a força normal de projeto, em kN. fck é a resistência característica do concreto em kN/cm2. Para converter de Mpa para kN/cm2 nós só precisamos dividir por 10. γc é o fator de ponderação do concreto e, em geral, possui o valor 1,4. Ao dividirmos o fck pelo γc nós chegamos ao fcd, que é resistência de cálculo do concreto. Note que o valor encontrado para a força normal adimensional ν (ni) é o valor que, junto com o μ (mi), forma a dupla de fatores para o ábaco de VENTURINI que nos retornará o valor de ω (ômega) que nos ajudará a calcular a área de aço (As) do pilar. Há duas considerações importantes em relação à Força Normal Adimensional ν de um pilar: a) Se ν < 0,30 -> pode ser adequado reduzir a seção transversal do pilar. b) Se ν > 1,30 -> pode ser conveniente aumentar a seção transversal do pilar. Agora vamos ver o código Python? Note que pediremos para o usuário informar as dimensões do pilar nas direções x e y em centímetros, a carga total no pilar em kN e o fck do concreto em Mpa e retornaremos o valor da força normal adimensional: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- # método principal def main(): # vamos pedir as dimensões do pilar hx = float(input("Informe a dimensão do pilar na direção x (em cm): ")) hy = float(input("Informe a dimensão do pilar na direção y (em cm): ")) # vamos pedir a carga total no pilar em kN Nk = float(input("Informe a carga total no pilar (em kN): ")) # agora vamos obter o FCK do concreto em MPa fck = float(input("Informe o FCK do concreto (em MPa): ")) # vamos converter MPa para kN/cm2 fck = fck / 10 # vamos obter o menor lado do pilar (menor dimensão da seção transversal) if (hx < hy): b = hx else: b = hy # agora vamos calcular a área do pilar em centímetros quadrados area = hx * hy # a área está de acordo com a norma NBR 6118 (ABNT, 2014) if (area < 360): print("A área do pilar não pode ser inferior a 360cm2") return # vamos calcular a força normal de projeto Nd yn = 1.95 - (0.05 * b) # de acordo com a norma NBR 6118 (ABNT, 2014) Tabela 13.1 yf = 1.4 # regra geral para concreto armado Nd = yn * yf * Nk # vamos fixar o fator de ponderação do concreto em 1.4 yc = 1.4 # e agora calculamos a força normal adimensional do pilar fna = Nd / (area * (fck / yc)) # e mostramos o resultado print("\nA Força Normal Adimensional do pilar é: {0}".format(round(fna, 2))) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe a dimensão do pilar na direção x (em cm): 40 Informe a dimensão do pilar na direção y (em cm): 19 Informe a carga total no pilar (em kN): 841.35 Informe o FCK do concreto (em MPa): 30 A Força Normal Adimensional do pilar é: 0.72 |
Python ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como converter radianos em graus na linguagem PythonQuantidade de visualizações: 5305 vezes |
Todos os métodos e funções trigonométricas em Python recebem seus argumentos em radianos, em vez de graus. Um exemplo disso é a função sin() do objeto math, no módulo math. Esta função recebe o ângulo em radianos e retorna o seu seno. No entanto, há momentos nos quais precisamos retornar alguns valores como graus. Para isso é importante sabermos fazer a conversão de radianos para graus. Veja a fórmula abaixo: \[Graus = Radianos \times \frac{180}{\pi}\] Agora veja como esta fórmula pode ser escrita em código Python: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import math # função principal do programa def main(): # valor em radianos radianos = 1.5 # obtém o valor em graus graus = radianos * (180 / math.pi) # mostra o resultado print(radianos, "radianos convertidos para", "graus é", graus) if __name__== "__main__": main() Ao executarmos este código Python nós teremos o seguinte resultado: 1.5 radianos convertidos para graus é 85.94366926962348 Para fins de memorização, 1 radiano equivale a 57,2957795 graus. Por fim, saiba que a linguagem Python nos oferece o método math.degrees() que nos permite converter ângulos radianos em graus. Meu propósito nesta dica foi mostrar a você como o cálculo de conversão pode ser escrito em Python. Em outras dicas dessa seção abordaremos o método math.degrees(). |
Python ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Python Insertion Sort - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)Quantidade de visualizações: 3727 vezes |
Nesta dica veremos como implementar a ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção na linguagem Python. A ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados. A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com a forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação. A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim por diante, até não receber mais cartas. Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição. Vamos ver a implementação na linguagem Python agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- # método que permite ordenar o vetor de inteiros # usando a ordenação Insertion Sort def insertionSort(vetor): # percorre todos os elementos do vetor começando # pelo segundo elemento for i in range(len(vetor)): atual = vetor[i] # o valor atual a ser inserido # começa a comparar com a célula à esquerda de i j = i - 1 # enquanto vetor[j] estiver fora de ordem em relação # a atual while((j >= 0) and (vetor[j] > atual)): # movemos vetor[j] para a direita e decrementamos j vetor[j + 1] = vetor[j] j = j - 1 # colocamos atual em seu devido lugar vetor[j + 1] = atual # função principal do programa def main(): # cria uma lista de inteiros valores = [4, 6, 2, 8, 1, 9, 3, 0, 11] # exibimos o vetor na ordem original print("Ordem original:\n") for i in range(len(valores)): print(valores[i], end = " ") # vamos ordenar o vetor agora insertionSort(valores) # exibimos o vetor ordenado print("\n\nOrdenado:\n") for i in range(len(valores)): print(valores[i], end = " ") if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Sem ordenação: 4 6 2 8 1 9 3 0 11 Ordenada usando Insertion Sort: 0 1 2 3 4 6 8 9 11 |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Pandas Python Library |
Exercício Resolvido de Python Pandas - Como testar se um DataFrame do Pandas possui algum valor não informadoQuantidade de visualizações: 736 vezes |
Pergunta/Tarefa: Dado o seguinte arquivo CSV (carros.csv): Marca;Modelo;Ano;Valor;Vendido Fiat;Sienna;2010;23500.00;S Volkswagen;Polo;2009;31453.00;N Volkswagen;;2001;19200.00;S Fiat;Palio;1995;7500.00;S Honda;Civic;;42000.00;S Renault;Sandero;2010;52000.00;N Escreva um programa Python Pandas que carrega este arquivo .csv em um DataFrame, exiba o seu conteúdo e informe se o DataFrame contém algum valor não informado para qualquer uma das colunas. Analisando o arquivo vemos que há dois valores ausentes: o modelo do veículo na quarta linha e o ano do veículo na sexta linha. Sua saída deverá ser parecida com: Os dados do DataFrame são: Marca Modelo Ano Valor Vendido 0 Fiat Sienna 2010.0 23500.0 S 1 Volkswagen Polo 2009.0 31453.0 N 2 Volkswagen NaN 2001.0 19200.0 S 3 Fiat Palio 1995.0 7500.0 S 4 Honda Civic NaN 42000.0 S 5 Renault Sandero 2010.0 52000.0 N Há valores ausentes no DataFrame Veja a resolução comentada deste exercício em Python: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- # importamos a biblioteca Pandas import pandas as pd def main(): # vamos carregar os dados do arquivo .csv df = pd.read_csv("C:\\estudos_python\\carros.csv", delimiter=";") # vamos mostrar o DataFrame resultante print("Os dados do DataFrame são:\n") print(df) # vamos testar se existe algum valor ausenta em alguma # das colunas do DataFrame if df.isnull().values.any(): print("\nHá valores ausentes no DataFrame") else: print("\nNão existe valores ausentes no DataFrame") if __name__== "__main__": main() |
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Matemática e Estatística |
Python para estatística - Como calcular a mediana de um conjunto de valores usando o método median() da biblioteca NumPy da linguagem PythonQuantidade de visualizações: 16485 vezes |
A mediana (Md) representa o valor central de um conjunto de dados. Para encontrá-la, é necessário colocar os valores em ordem crescente ou decrescente. Quando o número elementos de um conjunto é par, a mediana é encontrada pela média dos dois valores centrais. Assim, esses valores são somados e divididos por dois. Veja a seguinte figura: ![]() A biblioteca NumPy do Python nos oferece o método median(), que recebe um vetor de valores númericos (inteiro ou decimais) e retorna a mediana deles. Veja um exemplo com os primeiros valores da figura (um conjnto ímpar): ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- # importamos a biblioteca NumPy import numpy def main(): # valores a serem observados valores = [2, 2, 3, 7, 8, 9, 9] # vamos obter a mediana mediana = numpy.median(valores) # vamos mostrar o resultado print("A mediana dos valores é:", mediana) if __name__== "__main__": main() Ao executarmos este código nós teremos o seguinte resultado: A mediana dos valores é: 7.0 Veja agora o exemplo usando o segundo grupo de valores da imagem (conjunto par): ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- # importamos a biblioteca NumPy import numpy def main(): # valores a serem observados valores = [1, 4, 4, 5, 6, 7, 7, 7] # vamos obter a mediana mediana = numpy.median(valores) # vamos mostrar o resultado print("A mediana dos valores é:", mediana) if __name__== "__main__": main() O resultado da execução desse código será: A mediana dos valores é: 5.5 É importante observar que o método median() da NumPy não exige que os valores estejam ordenados. A própria função se encarrega dessa tarefa. |
Python ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar de uma matriz é uma matriz identidade usando PythonQuantidade de visualizações: 1212 vezes |
Seja M uma matriz quadrada de ordem n. A matriz M é chamada de Matriz Identidade de ordem n (indicada por In) quando os elementos da diagonal principal são todos iguais a 1 e os elementos restantes são iguais a zero. Para melhor entendimento, veja a imagem de uma matriz identidade de ordem 3, ou seja, três linhas e três colunas: ![]() Veja um código Python completo no qual nós declaramos uma matriz quadrada de ordem 3, pedimos para o usuário informar os valores de seus elementos e no final informamos se a matriz é uma matriz identidade ou não: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- # método principal def main(): n = 3; # ordem da matriz quadrada matriz = [[0 for x in range(n)] for y in range(n)] # matriz quadrada identidade = True # vamos pedir para o usuário informar os elementos da matriz for i in range(n): for j in range(n): matriz[i][j] = int(input("Elemento na linha {0} e coluna {0}: ".format( (i + 1), (j + 1)))) # agora verificamos se a matriz é uma matriz identidade for linha in range(n): for coluna in range(n): if (matriz[linha][coluna] != 1) and (matriz[coluna][linha] != 0): identidade = False break # agora mostramos a matriz lida print() for i in range(n): for j in range(n): print(matriz[i][j], end=' ') print() if identidade: print("\nA matriz informada é uma matriz identidade.") else: print("\nA matriz informada não é uma matriz identidade.") if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Elemento na linha 1 e coluna 1: 1 Elemento na linha 1 e coluna 2: 0 Elemento na linha 1 e coluna 3: 0 Elemento na linha 2 e coluna 1: 0 Elemento na linha 2 e coluna 2: 1 Elemento na linha 2 e coluna 3: 0 Elemento na linha 3 e coluna 1: 0 Elemento na linha 3 e coluna 2: 0 Elemento na linha 3 e coluna 3: 1 1 0 0 0 1 0 0 0 1 A matriz informada é uma matriz identidade. |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |