1
resposta

Dicas para melhorar o código

Escrevi o código abaixo para treinar o que aprendi nas aulas de Python. Sei que o código está em um nível muito iniciante, por isso, gostaria de pedir conselhos do que poderia ser feito para deixar o código mais profissional.

import math
print('<>'*12, '\033[1;34mDIMENSIONAMENTO SAPATA QUADRADA COM CARGA CENTRADA\033[m','<>'*12)
#dados de entrada
dimensao_pilar = int(input('Entre com a dimensão do pilar (cm):\n'))
esforço_pilar = float(input('Entre com o esforço solicitante no pilar(kgf): \n'))
tensao_admissivel_solo = float(input('Entre com a tensão admissível do solo(kgf/cm²):\n'))
fck_concreto= int(input('Qual o fck do concreto utilizado(Mpa): \n'))
#dimensionamento das dimensões da sapata
area_sapata = (esforço_pilar*1.1)/tensao_admissivel_solo
dimensao_sapata = math.sqrt(area_sapata)
print("A dimensão da sapata é de {:.0f} x {:.0f} cm".format(dimensao_sapata, dimensao_sapata))
print('OBS: A BOA PRÁTICA DA ENGENHARIA DE FUNDAÇÕES INDICA QUE AS DIMENSÕES DA SAPATA DEVAM SER MULTIPLAS DE 5')
dimensao_sapata_adotada = int(input('Entre com a dimensão da sapata adotada:\n'))
altura_sapata = (dimensao_sapata_adotada - dimensao_pilar)/3
while altura_sapata < 15:
    if altura_sapata >= 15:
        break
    else:
        altura_sapata += 5
print('A altura da sapata é:{:.0f} cm'.format(altura_sapata))
print('OBS: A BOA PRÁTICA DA ENGENHARIA DE FUNDAÇÕES INDICA QUE AS DIMENSÕES DA SAPATA DEVAM SER MULTIPLAS DE 5')
altura_sapata_adotada = int(input("Entre com a altura da sapata adotada(cm): \n"))
#teste 1 de conformidade da sapata dimensionada: verificação do comprimento de ancoragem
diametro_armadura_pilar = float(input('Entre com o diâmetro da armadura do pilar (cm): \n'))
comprimento_ancoragem = 26*diametro_armadura_pilar
diametro_estimado_armadura_sapata = float(input("Entre com o diâmtro estimado da armadura da sapata:\n"))
altura_util_sapata = altura_sapata_adotada - 5 - diametro_estimado_armadura_sapata/2
while altura_util_sapata < comprimento_ancoragem:
    if altura_util_sapata >= comprimento_ancoragem:
        break
    else:
        altura_sapata += 5
        altura_util_sapata = altura_sapata - 5 - diametro_estimado_armadura_sapata / 20
#dimensionamento da aba da sapata
aba_sapata = float(altura_sapata_adotada/3)
if aba_sapata < 15:
    print('De acordo com a NBR 6122/2019, a aba da sapata tem altura mínima de 15 cm.')
    print('Dessa forma a altura da aba adotada será de 15 cm')
    aba_sapata = 15
else:
    print(' A aba da sapata dimensionada possui altura de {:.0f}'.format(aba_sapata))
#teste 2 de conformidade da sapata: verificação da diagonal comprimida
perimetro_pilar = int(dimensao_pilar*4)
tensao_solicitante = esforço_pilar/(perimetro_pilar*altura_util_sapata)
tensao_resistente = 0.27*(1-fck_concreto/250)*(fck_concreto/14)*101.97
if tensao_solicitante < tensao_resistente:
    print(' A tensão solicitante é {:.2f} kgf/cm² e a tensão resistente é {:.2f}kgf/cm²'.format(tensao_solicitante,tensao_resistente))
    print("A sapata dimensionada passa no teste da Diagonal Comprimida")
else:
    print('ATENÇÃO: A sapata dimensionada não passa no teste da Diagonal Comprimida')
# teste 3 de conformidade da sapata: verificação método das Bielas
if altura_util_sapata >= (dimensao_sapata_adotada - dimensao_pilar)/4:
    print("A sapata dimensionada passa no teste do método das Bielas")
else:
    print('ATENÇÃO: A sapata dimensionada não passa no teste do método das Bielas')
#dimensionamento da armadura da sapata
print(altura_util_sapata)
tensao_solicitante_sapata = ((esforço_pilar*(dimensao_sapata_adotada-dimensao_pilar))/(8*altura_util_sapata))
print(tensao_solicitante_sapata)
area_aço_sapata = (1.61*tensao_solicitante_sapata)/5000
print(area_aço_sapata)
1 resposta

Oiii César, como você está? Espero que esteja bem ^-^

Que ótimo que está aplicando o conhecimento adquirido no curso em aplicações diferentes. Farei algumas considerações sobre seu código:

1 - Para melhor organização do código e divisão de responsabilidades, poderíamos utilizar funções para cada fim específico. Exemplo:

  • Uma função para o cálculo da dimensão da sapata
  • Outra função para o cálculo da aba da sapata e assim por diante

Essa divisão é importante não só por organização, mas também para dividir melhor a responsabilidade do nosso código, pois geralmente passamos mais tempo lendo código do que escrevendo.

Desse modo você poderá pedir os dados no arquivo principal e após isso, apenas chamar as funções. Por exemplo:

if __name__ == '_main__':
    # usuário entra com os dados
    calcula_dimensao_sapata(esforço_pilar, tensao_admissivel_solo)
    calcula_altura_sapata(altura_sapata)
    calcula_aba_da_sapata(aba_sapata)

Observe que temos um código bem mais "limpo" e através das funções podemos ver claramente o que será feito.

2) Você também pode separar as funções que fazem o cálculo em um arquivo a parte e por meio de um arquivo principal, importar as funções do arquivo de cálculos. Algo como:

from calculos import calcula_aba_da_sapata, calcula_altura_sapata, calcula_dimensao_sapata

Desse modo, você terá todos os cálculos em um arquivo responsável por isso e se caso precisar adicionar mais um cálculo, ele ficará nesse arquivo de cálculos.

A estrutura do projeto ficará a seguinte:

projeto
    - calculos.py
    - principal.py

3) Evite o uso de caracteres especiais na nomenclatura das variáveis:

  • Evite isso --> area_aço_sapata, escreva: area_aco_sapata

O uso de caracteres especiais em nomenclatura não é algo convencionado. Oficialmente, os nomes de variáveis ​​no Python podem ter qualquer tamanho e podem consistir em letras maiúsculas e minúsculas ( A-Z, a-z), dígitos ( 0-9) e o caractere sublinhado ( _). Uma restrição adicional é que, embora um nome de variável possa conter dígitos, o primeiro caractere de um nome de variável não pode ser um dígito. Tudo bem?

São pequenas mudanças, mas que dará um outro aspecto para seu código, além de claro, estar em conformidade com as boas práticas.

Espero ter te ajudado e qualquer dúvida, seja na explicação ou na execução, é só dizer. Estou à disposição. Abraços e bons estudos!