Código Python – Convertidor de Unidades de Medidas

Este código define una función convertir_unidades que realiza las conversiones entre distintas unidades de medidas. Luego, el programa solicita al usuario la unidad de origen, la unidad de destino y el valor a convertir, y muestra el resultado de la conversión si es válida. Puedes agregar más conversiones al diccionario conversiones según tus necesidades.

def convertir_unidades(valor, unidad_origen, unidad_destino):
    conversiones = {
        "cm_in": 0.393701,
        "in_cm": 2.54,
        "kg_lb": 2.20462,
        "lb_kg": 0.453592
        # Agrega más conversiones según necesites
    }

    clave = f"{unidad_origen}_{unidad_destino}"
    if clave in conversiones:
        factor = conversiones[clave]
        resultado = valor * factor
        return resultado
    else:
        return None

unidad_origen = input("Unidad de origen (cm, in, kg, lb): ")
unidad_destino = input("Unidad de destino (cm, in, kg, lb): ")
valor = float(input("Valor a convertir: "))

resultado = convertir_unidades(valor, unidad_origen, unidad_destino)
if resultado is not None:
    print(f"{valor} {unidad_origen} equivale a {resultado} {unidad_destino}")
else:
    print("Conversión no válida")

Versión simplificada:

conversiones = {"cm_in": 0.393701, "in_cm": 2.54, "kg_lb": 2.20462, "lb_kg": 0.453592}

unidad_origen = input("Unidad de origen (cm, in, kg, lb): ")
unidad_destino = input("Unidad de destino (cm, in, kg, lb): ")
valor = float(input("Valor a convertir: "))

clave = f"{unidad_origen}_{unidad_destino}"
resultado = valor * conversiones.get(clave, 1)

print(f"{valor} {unidad_origen} equivale a {resultado} {unidad_destino}")

Pueder ir al artículo principal:

Códigos Sencillos hechos en Python

One thought on “Código Python – Convertidor de Unidades de Medidas

  1. Public Class Calculadora
    Dim a1, b1, T, a, b, c, v, m, volm, P, P1, P2, P3, P4, Ru, ac, bc As Decimal

    Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click

    End Sub

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    End
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Me.Hide()
    Dim instruccionesForm As New Instrucciones()
    instruccionesForm.Show()
    End Sub

    Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
    ValidateKey2Press(sender, e)
    End Sub

    Private Sub ValidateKey2Press(sender As Object, e As KeyPressEventArgs)
    Dim textBox = DirectCast(sender, TextBox)
    If Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "." AndAlso Not Char.IsControl(e.KeyChar) Then
    e.Handled = True
    Return
    End If
    End Sub
    Private Sub TextBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress
    ValidateKeyPress(sender, e)
    End Sub
    Private Sub ValidateKeyPress(sender As Object, e As KeyPressEventArgs)
    Dim textBox = DirectCast(sender, TextBox)
    If Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> "-" AndAlso Not Char.IsControl(e.KeyChar) Then
    e.Handled = True
    Return
    End If
    End Sub
    Private Sub Calculadora(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    For Each control As Control In Me.Controls
    If TypeOf control Is ComboBox Then
    CType(control, ComboBox).DropDownStyle = ComboBoxStyle.DropDownList
    End If
    Next
    Label6.Text = "" ' Asegúrate de que comience vacío
    End Sub
    Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
    TextBox1.Clear()
    ComboBox1.SelectedIndex = -1
    TextBox2.Clear()
    ComboBox2.SelectedIndex = -1
    ComboBox3.SelectedIndex = -1
    ComboBox4.SelectedIndex = -1
    Label6.Text = ""
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If ComboBox1.SelectedIndex = -1 Then
    MessageBox.Show("Por favor, selecciona una unidad de volumen.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    Exit Sub
    End If

    If ComboBox2.SelectedIndex = -1 Then
    MessageBox.Show("Por favor, selecciona una unidad de temperatura.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    Exit Sub
    End If

    If ComboBox3.SelectedIndex = -1 Then
    MessageBox.Show("Por favor, selecciona un gas.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    Exit Sub
    End If

    If ComboBox4.SelectedIndex = -1 Then
    MessageBox.Show("Por favor, selecciona una unidad de presión.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    Exit Sub
    End If
    If TextBox1.Text = "" Then
    Label7.Text = MessageBox.Show("Por favor, complete todos los campos.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    v = 0
    Label6.Text = ""
    ElseIf TextBox1.Text = 0 Then
    Label7.Text = MessageBox.Show("Error, el volumen no puede ser 0", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    v = 0
    Label6.Text = ""
    Label9.Text = ""
    ElseIf ComboBox1.Text = "cm3/g" Then
    v = TextBox1.Text / 1000
    Label7.Text = ""
    Label9.Text = ""

    ElseIf ComboBox1.Text = "ft3/lb" Then
    v = TextBox1.Text / 16.0185
    Label7.Text = ""
    Label9.Text = ""

    ElseIf ComboBox1.Text = "in3/oz" Then
    v = TextBox1.Text / 1729.994
    Label7.Text = ""
    Label9.Text = ""

    ElseIf ComboBox1.Text = "m3/kg" Then
    v = TextBox1.Text * 1
    Label7.Text = ""
    Label9.Text = ""

    Else
    End If

    If TextBox1.Text = "" Then
    MessageBox.Show("Agrega la variable de volumen.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    ElseIf TextBox2.Text = "" Then
    MessageBox.Show("Por favor, complete todos los campos.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning)

    ElseIf ComboBox3.Text = "Nitrógeno" Then
    a1 = 0.02617
    a = 136.2315
    b1 = -0.00691
    b = 0.05046
    c = 42000
    m = 28.013
    volm = v * m
    ElseIf ComboBox3.Text = "Helio" Then
    a1 = 0.05984
    a = 2.1886
    b1 = 0
    b = 0.014
    c = 40
    m = 4.0026
    volm = v * m

    ElseIf ComboBox3.Text = "Argón" Then
    A1 = 0.02328
    a = 130.78902
    B1 = 0
    b = 0.03931
    c = 59900
    m = 39.95
    volm = v * m
    Else
    End If

    If v > 0 And volm > 0 Then
    Ru = 8.314

    ac = a * (1 - (a1 / volm))

    bc = b * (1 - (b1 / volm))
    Else
    End If

    If TextBox2.Text = "" Then
    Label8.Text = "Error, ingrese la temperatura"
    P = 0
    ElseIf ComboBox2.Text = "°C" Then

    If TextBox2.Text >= -213.15 And TextBox2.Text <= 26.85 Then
    T = TextBox2.Text + 273.15
    Label8.Text = ""
    If v > 0 Then
    P1 = Ru * T / volm ^ 2
    P2 = 1 - (c / (volm * T ^ 3))
    P3 = volm + bc
    P4 = ac / volm ^ 2
    P = P1 * P2 * P3 - P4
    Label6.Text = P
    Label7.Text = " "
    Label8.Text = " "
    Label6.Text = Math.Round(P, 4).ToString
    Else
    End If
    Else
    Label8.Text = "La temperatura debe estar en un rango de: -213.15°C a 26.85°C"
    Label6.Text = ""
    P = 0
    End If
    ElseIf ComboBox2.Text = "°F" Then

    If TextBox2.Text <= 80.33 And TextBox2.Text >= -351.67 Then
    T = ((TextBox2.Text - 32) / 1.8) + 273.15
    Label8.Text = ""
    Label9.Text = ""
    If V > 0 Then
    P1 = Ru * T / volm ^ 2
    P2 = 1 - (c / (volm * T ^ 3))
    P3 = volm + bc
    P4 = ac / volm ^ 2

    P = P1 * P2 * P3 - P4
    Label6.Text = P
    Label7.Text = " "
    Label8.Text = " "
    Label6.Text = Math.Round(P, 4).ToString
    Else
    End If
    Else
    Label8.Text = "La temperatura debe estar en un rango de: -351.67°F a 80.33°F"
    Label6.Text = ""
    P = 0
    End If
    ElseIf ComboBox2.Text = "K" Then
    If TextBox2.Text <= 300 And TextBox2.Text >= 60 Then
    T = TextBox2.Text * 1
    Label8.Text = ""
    Label9.Text = ""
    If v > 0 Then
    P1 = Ru * T / volm ^ 2
    P2 = 1 - (c / (volm * T ^ 3))
    P3 = volm + bc
    P4 = ac / volm ^ 2

    P = P1 * P2 * P3 - P4
    Label6.Text = P
    Label7.Text = " "
    Label8.Text = " "
    Label6.Text = Math.Round(P, 4).ToString
    Else
    End If

    Else
    Label8.Text = "La temperatura debe estar en un rango de: 60K a 300K"
    Label6.Text = ""
    P = 0
    End If
    End If

    If P < 0 Then
    Label8.Text = "El volumen o la temperatura debe ser mayor para que la presión no sea negativa"
    Label6.Text = ""
    Else
    If ComboBox4.Text = "Psi" Then
    Label6.Text = Math.Round(P * 0.145038, 4).ToString
    Label9.Text = ""
    ElseIf ComboBox4.Text = "Kpa" Then
    Label6.Text = Math.Round(P * 1, 4).ToString
    Label9.Text = ""
    ElseIf ComboBox4.Text = "Atm" Then
    Label6.Text = Math.Round(P * 0.00986923, 4).ToString
    Label9.Text = ""
    ElseIf ComboBox4.Text = "Bar" Then
    Label6.Text = Math.Round(P * 0.01, 4).ToString
    Label9.Text = ""
    ElseIf ComboBox4.Text = "Pa" Then
    Label6.Text = Math.Round(P * 1000, 4).ToString
    Label9.Text = ""
    End If
    End If

    End Sub

    Private Sub ComboBox4_SelectedIndexChanged1(sender As Object, e As EventArgs) Handles ComboBox4.SelectedIndexChanged
    ConvertPressure()
    End Sub

    Private Sub ConvertPressure()
    If P <= 0 Then
    Label6.Text = "" ' Deja el label vacío si no se han ingresado valores válidos
    ElseIf P < 0 Then
    Label8.Text = "El volumen o la temperatura debe ser mayor para que la presión no sea negativa"
    Else
    Select Case ComboBox4.Text
    Case "KPa"
    Label6.Text = Math.Round(P * 1, 4).ToString
    Case "Pa"
    Label6.Text = Math.Round(P * 1000, 4).ToString
    Case "Atm"
    Label6.Text = Math.Round(P * 0.00986923, 4).ToString
    Case "Bar"
    Label6.Text = Math.Round(P * 0.01, 4).ToString
    Case "Psi"
    Label6.Text = Math.Round(P * 0.145038, 4).ToString
    Case Else
    Label6.Text = "" ' También considera vacío si no hay unidad seleccionada
    End Select
    End If
    End Sub

    End Class

Deja un comentario