Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Python ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Dado um número inteiro positivo n, se n for par, seu código deverá dividí-lo por 2, e - Desafio de Programação Resolvido em Python

Quantidade de visualizações: 540 vezes
Pergunta/Tarefa:

Dado um número inteiro positivo n, se n for par, seu código deverá dividí-lo por 2, e, se n for ímpar, seu código deverá multiplicá-lo por 3 e adicionar 1. O algorítmo deverá repetir estas instruções até que o valor de n seja 1.

Sua saída deverá ser parecida com:

Informe um número inteiro positivo: 6
6 3 10 5 16 8 4 2 1
Resposta/Solução:

Veja a resolução comentada deste exercício usando 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 
----------------------------------------------------------------------

# método principal
def main():
  # vamos pedir para o usuário informar um inteiro positivo
  n = int(input("Informe um número inteiro positivo: "))

  # exibe o valor de n
  print(n, end=" ")

  # enquanto n for maior que 1
  while n > 1:
    # n é par?
    if n % 2 == 0:
      n = n // 2
    else:
      n = (n * 3) + 1
    
    # exibe o valor de n novamente
    print(n, end=" ")

if __name__== "__main__":
  main()


Link para compartilhar na Internet ou com seus amigos:

Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear

Como somar os elementos da diagonal principal de uma matriz em Python

Quantidade de visualizações: 3606 vezes
A Matriz quadrada é um tipo especial de matriz que possui o mesmo número de linhas e o mesmo número de colunas, ou seja, dada uma matriz Anxm, ela será uma matriz quadrada se, e somente se, n = m, onde n é o número de linhas e m é o número de colunas.

Em geral as matrizes quadradas são chamadas de Matrizes de Ordem n, onde n é o número de linhas e colunas. Dessa forma, uma matriz de ordem 4 é uma matriz que possui 4 linhas e quatro colunas.

Toda matriz quadrada possui duas diagonais, e elas são muito exploradas tanto na matemática quanto na construção de algorítmos. Essas duas diagonais são chamadas de Diagonal Principal e Diagonal Secundária.

A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito. Veja:



Nesta dica veremos como calcular a soma dos valores dos elementos da diagonal principal de uma matriz usando Python. Para isso, só precisamos manter em mente que a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. Assim, tudo que temos a fazer é converter essa regra para código Python.

Veja um trecho de código Python completo no qual pedimos para o usuário informar os elementos da matriz e em seguida mostramos a soma dos elementos da diagonal superior:

----------------------------------------------------------------------
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 
----------------------------------------------------------------------

def main():
  # vamos declarar e construir uma matriz de três linhas
  # e três colunas
  linhas, colunas = (3, 3)
  matriz = [[0 for x in range(linhas)] for y in range(colunas)]
  soma_diagonal = 0 # guarda a soma dos elementos na diagonal
  # principal

  # vamos ler os elementos da matriz
  for i in range(len(matriz)):
    for j in range(len(matriz[i])):
      matriz[i][j] = int(input("Informe o valor para a linha " + str(i) 
        + " e coluna " + str(j) + ": "))

  print()
  for i in range(len(matriz)):
    for j in range(len(matriz[i])):
      print(matriz[i][j], end='  ')
    print()

  # vamos calcular a soma dos elementos da diagonal   
  # principal
  for i in range(len(matriz)):
    for j in range(len(matriz[i])):
      if i == j:
        soma_diagonal = soma_diagonal + matriz[i][j]

  # finalmente mostramos a soma da diagonal principal
  print("\nA soma dos elementos da diagonal principal é: %d" %
    soma_diagonal)  

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Informe o valor para a linha 0 e coluna 0: 3
Informe o valor para a linha 0 e coluna 1: 7
Informe o valor para a linha 0 e coluna 2: 9
Informe o valor para a linha 1 e coluna 0: 2
Informe o valor para a linha 1 e coluna 1: 4
Informe o valor para a linha 1 e coluna 2: 1
Informe o valor para a linha 2 e coluna 0: 5
Informe o valor para a linha 2 e coluna 1: 6
Informe o valor para a linha 2 e coluna 2: 8

3  7  9  
2  4  1  
5  6  8  

A soma dos elementos da diagonal principal é: 15



Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural

Como calcular o Momento Fletor Mínimo e a Excentricidade Mínima de 1ª Ordem de um pilar em Python - Python para Engenharia Civil e Cálculo Estrutural

Quantidade de visualizações: 353 vezes


O cálculo e dimensionamento de pilares, sejam pilares de canto, extremidade ou intermediários, sempre seguem alguns passos cujas ordens são muito importantes, pois os dados de entrada de um passo podem vir de um ou mais passos anteriores.

Em dicas anteriores do uso da linguagem Python no cálculo de pilares eu mostrei como calcular os esforços solicitantes majorados em pilares e também como calcular o índice de esbeltez de um pilar nas direções x e y.

Nesta dica mostrarei como calcular o Momento Fletor Mínimo e a Excentricidade Mínima de 1ª Ordem de um pilar. Estes dados são muito importantes para a aplicação das fórmulas que embasam a área de aço a ser usada no pilar. Note que a Excentricidade Mínima de 1ª Ordem pode ser desprezada no caso de pilares intermediários (também chamados pilares de centro).

O Momento Fletor Mínimo é o momento mínimo que deve ser considerado, mesmo em pilares nos quais a carga está centrada, e é calculado por meio da seguinte fórmula:

\[M_\text{1d,min} = Nd \cdot (1,5 + (0,03 \cdot h) \]

Onde:

M1d,min é o momento fletor mínimo na direção x ou y em kN.cm.

Nd são os esforços solicitantes majorados em kN.

h é a dimensão do pilar na direção considerada (x ou y) em cm.

A Excentricidade Mínima de 1ª Ordem do pilar pode ser calculada por meio da fórmula:

\[e_\text{1,min} = \frac{M_\text{1d,min}}{Nd} \]

Onde:

e1,min é excentricidade mínima de 1ª ordem na direção escolhida.

Nd são os esforços solicitantes majorados em kN.

Note que, a exemplo do momento fletor mínimo, a excentricidade mínima de 1ª ordem também deve ser calculada nas direções x e y do pilar.

Vamos ao código Python agora? Veja que o código pede para o usuário informar as dimensões do pilar nas direções x e y em centímetros, a carga total que chega ao pilar em kN e mostra o momento fletor mínimo e a excentricidade mínima de 1ª ordem no pilar, tanto na direção x quanto na direção y:

----------------------------------------------------------------------
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): "))

  # 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

  # e agora vamos calcular o momento fletor mínimo na direção x do pilar
  M1d_min_x = Nd * (1.5 + (0.03 * hx))

  # e agora vamos calcular o momento fletor mínimo na direção y do pilar
  M1d_min_y = Nd * (1.5 + (0.03 * hy))

  # agora vamos calcular a excentricidade mínima de 1ª ordem na direção x do pilar
  e1x_min = M1d_min_x / Nd

  # e finalmente a excentricidade mínima de 1ª ordem na direção y do pilar
  e1y_min = M1d_min_y / Nd

  # e mostramos os resultados
  print("\nO momento fletor mínimo na direção x é: {0} kN.cm".format(
    round(M1d_min_x, 2)))
  print("O momento fletor mínimo na direção y é: {0} kN.cm".format(
    round(M1d_min_y, 2)))
  print("A excentricidade mínima de 1ª ordem na direção x é: {0} cm".format(
    round(e1x_min, 2)))
  print("A excentricidade mínima de 1ª ordem na direção y é: {0} cm".format(
    round(e1y_min, 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

O momento fletor mínimo na direção x é: 3180.3 kN.cm
O momento fletor mínimo na direção y é: 2438.23 kN.cm
A excentricidade mínima de 1ª ordem na direção x é: 2.7 cm
A excentricidade mínima de 1ª ordem na direção y é: 2.07 cm


Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes)

Como repetir os elementos de um vetor ou matriz usando a função repeat() da NumPy do Python

Quantidade de visualizações: 844 vezes
A função repeat() da biblioteca NumPy do Python é usada quando queremos repetir os elementos de um vetor ou matriz um determinado número de vezes. Em sua forma mais simples esta função pede um array e um número inteiro indicando a quantidade de repetições.

Veja o código Python completo para o exemplo:

----------------------------------------------------------------------
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 a biblioteca NumPy
import numpy as np

def main():
  # vamos criar um vetor contendo 5 elementos
  vetor = np.array([5, 3, 9, 1, 4])

  # agora vamos aplicar a função repeat() a este vetor
  novo_vetor = np.repeat(vetor, 3)

  # vamos mostrar o resultado
  print("O vetor original é: {0}".format(vetor))
  print("O novo vetor é: {0}".format(novo_vetor))

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

O vetor original é: [5 3 9 1 4]
O novo vetor é: [5 5 5 3 3 3 9 9 9 1 1 1 4 4 4]

Veja agora o efeito desta função em uma matriz de 2 linhas por 3 colunas:

----------------------------------------------------------------------
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 a biblioteca NumPy
import numpy as np

def main():
  # vamos criar uma matriz de 2 linhas e 3 colunas
  matriz = np.array([(1, 2, 3), (4, 5, 6)])

  # agora vamos aplicar a função repeat() a esta matriz
  nova_matriz = np.repeat(matriz, 3, 0)

  # vamos mostrar o resultado
  print("A matriz original é:\n\n{0}".format(matriz))
  print("A nova matriz é:\n\n{0}".format(nova_matriz))

if __name__== "__main__":
  main()

Note que informei o valor 0 para o terceiro parâmetro da função repeat(). Isso faz com que os elementos da matriz sejam repetidos no eixo x. Veja:

A matriz original é:

[[1 2 3]
 [4 5 6]]

A nova matriz é:

[[1 2 3]
 [1 2 3]
 [1 2 3]
 [4 5 6]
 [4 5 6]
 [4 5 6]]


Se trocarmos o valor 0 por 1, o resultado será:

A matriz original é:

[[1 2 3]
 [4 5 6]]

A nova matriz é:

[[1 1 1 2 2 2 3 3 3]
 [4 4 4 5 5 5 6 6 6]]



Python ::: Desafios e Lista de Exercícios Resolvidos ::: Pesquisa Operacional

Exercício Resolvido de Python - Programação Linear em Python - Uma madeireira deseja obter 1000kg de lenha, 2000kg de madeira para móveis e 50 metros

Quantidade de visualizações: 643 vezes
Pergunta/Tarefa:

Este exercício de Python aborda o uso da biblioteca PuLP para resolver um problema de Pesquisa Operacional usando Programação Linear.

Uma madeireira deseja obter 1000kg de lenha, 2000kg de madeira para móveis e 50 metros quadrados de casca de árvore, dispondo de carvalho e pinheiro, sendo que o carvalho gera 40kg de lenha, 150kg de madeira e 3 metros quadrados de casca aproveitável; o pinheiro 100kg de lenha, 60kg de madeira e 8 metros quadrados de casca aproveitável.

Formule o problema, de modo a minimizar os custos, sabendo que cada carvalho custa R$ 1500,00 para a empresa e cada pinheiro R$ 1200,00. Em seguida use a API de Programação Linear do PuLP para resolver o problema e mostrar a melhor solução.

Sua saída deverá ser parecida com:

x: 11.111111
y: 5.5555556
Resposta/Solução:

Antes de passarmos para o código Python é importante entendermos e fazermos a modelagem do problema. Neste exercício busca-se encontrar o custo mínimo. Assim, a nossa função objetivo será dada pela combinação dos preços do carvalho e do pinheiro. Veja:

Zmin = 1500x + 1200y

Aqui nós definimos a variável x para o carvalho e a variável y para o pinheiro.

Agora que já temos a função Z, o próximo passo é analizarmos as restrições. Note que a empresa precisa de 1000kg de lenha. O carvalho gera 40kg de lenha, enquanto o pinheiro gera 100kg. Então nossa primeira restrição é:

R1 = 40x + 100y >= 1000

Para a segunda restrição nós temos que a empresa precisa de 2000kg de madeira. O carvalho gera 150kg de madeira, enquanto o pinheiro gera 60kg. Assim, nossa segunda restrição é:

R2 = 150x + 60y >= 2000

Finalmente, para a terceira restrição, sabemos que a empresa necessita de 50 metros quadrados de casca de árvore. O carvalho gera 3 metros quadrados de casca aproveitável, enquanto o pinheiro gera 8 metros quadradros. Então a terceira restrição é:

R3 = 3x + 8y >= 50

As restrições 4 e 5 dizem que tanto o x quanto o y devem ser maiores ou iguais a zero, e que ambos devem pertencer aos números reais.

Veja agora como usamos os dados de formulação para resolver este exercício usando Python e a biblioteca PuLP:

----------------------------------------------------------------------
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 as ferramentas necessárias
from pulp import LpMinimize, LpProblem, LpVariable

# método principal
def main():
  # vamos criar o modelo
  modelo = LpProblem(name="Pesquisa Operacional em Python", sense=LpMinimize)

  # agora inicializamos as variáveis de decisão
  x = LpVariable(name="x", lowBound=0)
  y = LpVariable(name="y", lowBound=0)

  # vamos adicionar as restrições de acordo com a formulação do problema
  modelo += (40 * x + 100 * y >= 1000, "R1")
  modelo += (150 * x + 60 * y >= 2000, "R2")
  modelo += (3 * x + 8 * y >= 50, "R3")

  # definimos a função objetivo e a adicionamos ao modelo
  funcao_objetivo = 1500 * x + 1200 * y
  modelo += funcao_objetivo

  # e tentamos resolver o problema
  modelo.solve()
  
  # assumindo que o problema foi resolvido com sucesso, vamos
  # mostrar os valores das variáveis x e y
  for var in modelo.variables():
    print(f"{var.name}: {var.value()}")

if __name__== "__main__":
  main()

Note como o PuLP nos deu o custo mínimo de 23333.33 para atingir o objetivo desejado pela madeireira.


Python ::: Dicas & Truques ::: Arquivos e Diretórios

Como criar um diretório em Python usando a função mkdir() do módulo os

Quantidade de visualizações: 3125 vezes
Podemos usar a função mkdir() do módulo os da linguagem Python para criarmos diretórios. Em sua versão mais simples, este método pede somente o nome e caminho do diretório a ser criado. Se o caminho for omitido, o novo diretório será criado no diretório atual, ou seja, o diretório da aplicação Python.

Veja um exemplo no qual criamos um diretório chamado "app" no diretório "C:\estudos_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 
----------------------------------------------------------------------

# importa o módulo os
import os

# método principal  
def main():
  # nome do diretório
  diretorio = "C:\\estudos_python\\app"

  # vamos criar o diretório
  os.mkdir(diretorio)

  # mostramos o resultado
  print('O diretório foi criado com sucesso.')

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

c:\estudos_python>python estudos.py
O diretório foi criado com sucesso.

Note que um erro do tipo FileExistsError será exibido se o diretório já existir:

Traceback (most recent call last):
File "c:\estudos_python\estudos.py", line 16, in <module>
main()
File "c:\estudos_python\estudos.py", line 10, in main
os.mkdir(diretorio)
FileExistsError: [WinError 183] Não é possível criar um arquivo já existente: 'C:\\estudos_python\\app'

Uma forma de evitar este erro é verificar se o diretório já existe ou usar uma construção try...except. 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 
----------------------------------------------------------------------

# importa o módulo os
import os

# método principal  
def main():
  # nome do diretório
  diretorio = "C:\\estudos_python\\app"

  try:
    # vamos criar o diretório
    os.mkdir(diretorio)
    # mostramos o resultado
    print('O diretório foi criado com sucesso.')
  except os.error as error_msg:
    print("Houve um erro: %s" % str(error_msg))

if __name__== "__main__":
  main()

Execute o código novamente e veja como o tratamento de erro ficou mais elegante.


Python ::: wxPython ::: wxFrame

Como usar a classe wx.Frame para criar um objeto window top-level (janelas top-level) em aplicações wxPython

Quantidade de visualizações: 8875 vezes
Um objeto window top-level é um widget (geralmente um frame) que não está contido em nenhum outro widget na aplicação. É o que o usuário geralmente aponta e diz "Este é o programa". O objeto window top-level é geralmente a janela principal de sua aplicação e contém widgets (controles) e objetos de interface com os quais o usuário interage. Desta forma, a aplicação é encerrada quando todas as janelas top-level são fechadas.

Sua aplicação deve ter no mínimo um objeto window top-level. O objeto window top-level geralmente é uma subclasse de wx.Frame, embora ele possa também ser uma subclasse de wx.Dialog. Na maioria das vezes, definiremos subclasses customizadas de wx.Frame para usar em nossas aplicações.

Contudo, há um grande número de subclasses pré-definidas de wx.Dialog que fornecem muitos dos diálogos típicos que poderíamos encontrar em uma aplicação.

A classe wx.Frame é derivada de: wx.TopLevelWindow, wx.Window, wx.EvtHandler e wx.Object.


Python ::: Python para Engenharia ::: Física - Mecânica - Estática

Como calcular o centroide ou centro de gravidade de um triângulo em Python

Quantidade de visualizações: 1743 vezes
O centro de gravidade, ou centroide (centro geométrico), é o ponto no qual a massa de um triângulo se equilibra. Para ajudar a visualizar isso, imagine uma figura triangular suspensa sobre a ponta de um lápis. A figura vai se equilibrar se a ponta do lápis for posicionada em seu centro de gravidade. Encontrar o centroide pode ser necessário em vários projetos e aplicações de engenharia, e pode ser encontrado usando geometria simples.

Veja a seguinte figura:



Nesta figura nós temos os três vértices do triângulo devidamente registrados, assim como o ponto representando seu centroide. Assim, a fórmula do centroide do triângulo é:

\[x_c = \frac{x_1 + x_2 + x_3}{3}\]
\[y_c = \frac{y_1 + y_2 + y_3}{3}\]

Agora vamos ver como calcular o centro de gravidade do triângulo em Python. Para isso nós vamos pedir para o usuário informar as coordenadas dos três vértices do triângulo e, em seguida, vamos mostrar as coordenadas do ponto que representa o centroide. 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 
----------------------------------------------------------------------

# função principal do programa
def main():
  # vamos ler as coordenadas do primeiro vértice
  va_x = float(input("Informe o x do primeiro vértice: "))
  va_y = float(input("Informe o y do primeiro vértice: "))

  # vamos ler as coordenadas do segundo vértice
  vb_x = float(input("Informe o x do segundo vértice: "))
  vb_y = float(input("Informe o y do segundo vértice: "))

  # vamos ler as coordenadas do terceiro vértice
  vc_x = float(input("Informe o x do terceiro vértice: "))
  vc_y = float(input("Informe o y do terceiro vértice: "))
  
  # vamos calcular as coordenadas do centroide
  c_x = (va_x + vb_x + vc_x) / 3
  c_y = (va_y + vb_y + vc_y) / 3

  # vamos mostrar o resultado
  print("As coordenadas do centroide são: x={0}; y={1}".format(
    round(c_x, 2), round(c_y, 2))) 

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Informe o x do primeiro vértice: 3
Informe o y do primeiro vértice: 10
Informe o x do segundo vértice: 12
Informe o y do segundo vértice: 15
Informe o x do terceiro vértice: 14
Informe o y do terceiro vértice: 7
As coordenadas do centroide são: x=9.67; y=10.67


Python ::: Dicas & Truques ::: Strings e Caracteres

Como testar se uma substring está contida no final de uma string em Python usando a função endswith()

Quantidade de visualizações: 9089 vezes
Em várias situações nós precisamos verificar se uma palavra, frase ou texto termina com um determinado texto, ou seja, uma substring. A linguagem Python nos oferece a função endswith(), que possui a seguinte assinatura:

endswith(substring[, start[, end]])


Se o argumento start for especificado, a busca inicia a partir de tal índice. Se o argumento end for especificado, a busca terminará no índice definido.

Dessa forma, a função endswith retorna 1 se a substring estiver contida no final da string. Do contrário, o valor 0 será retornado.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
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 
----------------------------------------------------------------------

def main():
  frase = "Gosto de programar em Java"
 
  if frase.endswith("Java") == 1:
    print("A frase termina com \"Java\"")
  else:
    print("A frase NÃO termina com \"Java\"")   
 
if __name__== "__main__":
  main()

Ao executarmos este código nós teremos o seguinte resultado:

A frase termina com "Java"


Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Fases de uma obra

A camada de argamassa executada sobre uma base, que pode ser a parte de baixo de uma laje de piso pré-fabricada ou uma parede, é denominada:

A) Acabamento.

B) Contrapiso.

C) Fundação.

D) Pavimento.

E) Concreto.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Responsabilidade civil dos prepostos e preponentes

Considera-se ___________ a entrega de papéis, bens ou valores ao ____________, encarregado pelo __________, se os recebeu sem ______________, salvo nos casos em que haja prazo para reclamação. Qual opção abaixo preenche corretamente as lacunas?

A) Perfeita - preponente - preposto - protesto.

B) Inválida - preponente - preposto - protesto.

C) Inválida - preposto - preponente - protocolo.

D) Perfeita - preposto - preponente - protocolo.

E) Perfeita - preposto - preponente - protesto.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Água Fria: Reservatórios

Um reservatório é dimensionado com diversos componentes que auxiliam na manutenção e limpeza do mesmo. Sobre os componentes acessórios de um reservatório é correto afirmar:

A) A tubulação extravasora deve ter o mesmo diâmetro da tubulação de alimentação do reservatório.

B) A tubulação de limpeza deve estar posicionada acima da saída da distribuição predial.

C) Em pequenas edificações, com reservatórios de 500 litros, não é necessária a instalação de tubulação de limpeza.

D) A tubulação extravasora deve jogar a água em local visível para alertar sobre o extravasamento do reservatório.

E) É obrigatória a instalação de registro na saída da tubulação extravasora.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Características do concreto armado

Os domínios de deformação em concreto armado são categorias que descrevem diferentes estados de deformação do material em relação às tensões aplicadas. Cada domínio corresponde a um comportamento específico do material e pode ser usado para entender como o concreto e o aço de reforço interagem sob diferentes condições de carga.

Nesse sentido, assinale a alternativa que traz o domínio no qual as peças de concreto armado devem ser projetadas de modo a melhor aproveitar as resistências dos materiais.

A) Domínio 1.

B) Domínio 2.

C) Domínio 3.

D) Domínio 4.

E) Domínio 5.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Agregados naturais

Os agregados classificam-se segundo sua origem, dimensões das partículas e o peso específico aparente. Conforme o peso específico aparente, assinale a alternativa que contenha um agregado pesado.

A) Escória granulada.

B) Calcário.

C) Granito.

D) Magnetita.

E) Arenito.
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 29 usuários muito felizes estudando em nosso site.