不能循环一会儿

时间:2018-11-10 12:56:52

标签: while-loop python-3.6

所以我想做一个while循环只是为了计算一些随机函数的积分。问题是,当我通过opción= 1时,它会首先执行if(好)操作,但是当我通过其他数字时,它会失败。显然,因为True = 1和False =0。所以我该如何做while循环直到(1,2,3)直到按下4为止。。。谢谢您

while opcion == True:
        if opcion == 1:
            print('Vamos a calcular la siguiente integral:')
            f = a*x + b
            integral = sp.Integral(f, x)
            sp.pprint(integral)
            print()
            print('Que tiene como resultado:')
            sp.pprint(sp.integrate(f,x))
            print()
            print('Introducimos los límites y valores de las'
            ' constantes para caluclarla')
            lim_inf = int(input('Límite inferior = '))
            lim_sup = int(input('Límite superior = '))
            while (lim_inf == lim_sup):
                print('Los límites no pueden ser iguales !! '
             'Vuelve a introducir valores diferentes')
                lim_inf = int(input('Límite inferior = '))
                lim_sup = int(input('Límite superior = '))
            a = int(input('valor a = '))
            b = int(input('valor de b = '))
            res = integrate.quad(grad1, lim_inf, lim_sup, args=(a,b))
            print()
            print('Valor de la integral',res[0])

        elif opcion == 2:
            print('Vamos a calcular la siguiente integral:')
            f = a*x**2 + b*x + c
            integral = sp.Integral(f, x)
            sp.pprint(integral)
            print()
            print('Que tiene como resultado:')
            sp.pprint(sp.integrate(f,x))
            print()
            print('Introducimos los límites y valores de las'
            ' constantes para caluclarla')
            lim_inf = int(input('Límite inferior = '))
            lim_sup = int(input('Límite superior = '))
            while (lim_inf == lim_sup):
                print('Los límites no pueden ser iguales !! '
             'Vuelve a introducir valores diferentes')
                lim_inf = int(input('Límite inferior = '))
                lim_sup = int(input('Límite superior = '))
            a = int(input('valor a = '))
            b = int(input('valor de b = '))
            res = integrate.quad(grad2, lim_inf, lim_sup, args=(a,b))
            print()
            print('Valor de la integral',res[0])

        elif opcion == 3:
            print('Vamos a calcular la siguiente integral:')
            f = a*x**3 + b*x**2 + c*x**2 + d
            integral = sp.Integral(f, x)
            sp.pprint(integral)
            print()
            print('Que tiene como resultado:')
            sp.pprint(sp.integrate(f,x))
            print()
            print('Introducimos los límites y valores de las'
            ' constantes para caluclarla')
            lim_inf = int(input('Límite inferior = '))
            lim_sup = int(input('Límite superior = '))
            while (lim_inf == lim_sup):
                print('Los límites no pueden ser iguales !! '
             'Vuelve a introducir valores diferentes')
                lim_inf = int(input('Límite inferior = '))
                lim_sup = int(input('Límite superior = '))
            a = int(input('valor a = '))
            b = int(input('valor de b = '))
            res = integrate.quad(grad3, lim_inf, lim_sup, args=(a,b))
            print()
            print('Valor de la integral',res[0])

        elif opcion == 4:
            break

1 个答案:

答案 0 :(得分:0)

您应该将其包装为while true,然后按预期方式引起中断,并且不要在选择权上感到沮丧。使用sys只是将opcion作为脚本的参数传递,这样4会导致它自动中断...否则,如果它刚生成到脚本中...您可以让opcion默认生成1以开始工作

import sys
...
opcion = sys.argv[1]
while True:
        if opcion == 1:
            print('Vamos a calcular la siguiente integral:')
            f = a*x + b
            integral = sp.Integral(f, x)
            sp.pprint(integral)
            print()
            print('Que tiene como resultado:')
            sp.pprint(sp.integrate(f,x))
            print()
            print('Introducimos los límites y valores de las'
            ' constantes para caluclarla')
            lim_inf = int(input('Límite inferior = '))
            lim_sup = int(input('Límite superior = '))
            while (lim_inf == lim_sup):
                print('Los límites no pueden ser iguales !! '
             'Vuelve a introducir valores diferentes')
                lim_inf = int(input('Límite inferior = '))
                lim_sup = int(input('Límite superior = '))
            a = int(input('valor a = '))
            b = int(input('valor de b = '))
            res = integrate.quad(grad1, lim_inf, lim_sup, args=(a,b))
            print()
            print('Valor de la integral',res[0])

        elif opcion == 2:
            print('Vamos a calcular la siguiente integral:')
            f = a*x**2 + b*x + c
            integral = sp.Integral(f, x)
            sp.pprint(integral)
            print()
            print('Que tiene como resultado:')
            sp.pprint(sp.integrate(f,x))
            print()
            print('Introducimos los límites y valores de las'
            ' constantes para caluclarla')
            lim_inf = int(input('Límite inferior = '))
            lim_sup = int(input('Límite superior = '))
            while (lim_inf == lim_sup):
                print('Los límites no pueden ser iguales !! '
             'Vuelve a introducir valores diferentes')
                lim_inf = int(input('Límite inferior = '))
                lim_sup = int(input('Límite superior = '))
            a = int(input('valor a = '))
            b = int(input('valor de b = '))
            res = integrate.quad(grad2, lim_inf, lim_sup, args=(a,b))
            print()
            print('Valor de la integral',res[0])

        elif opcion == 3:
            print('Vamos a calcular la siguiente integral:')
            f = a*x**3 + b*x**2 + c*x**2 + d
            integral = sp.Integral(f, x)
            sp.pprint(integral)
            print()
            print('Que tiene como resultado:')
            sp.pprint(sp.integrate(f,x))
            print()
            print('Introducimos los límites y valores de las'
            ' constantes para caluclarla')
            lim_inf = int(input('Límite inferior = '))
            lim_sup = int(input('Límite superior = '))
            while (lim_inf == lim_sup):
                print('Los límites no pueden ser iguales !! '
             'Vuelve a introducir valores diferentes')
                lim_inf = int(input('Límite inferior = '))
                lim_sup = int(input('Límite superior = '))
            a = int(input('valor a = '))
            b = int(input('valor de b = '))
            res = integrate.quad(grad3, lim_inf, lim_sup, args=(a,b))
            print()
            print('Valor de la integral',res[0])

        elif opcion == 4:
            break