Python2 EOF读取一行时

时间:2017-03-25 19:48:07

标签: python python-2.7 jupyter-notebook eoferror

大家好!当我尝试调用涉及与用户交互的函数时,我遇到了这个问题,我不知道问题是什么。当与其他功能分离时,需要输入的功能完美。

我正在使用Jupyter Notebook [py2]。

我所说的功能如下:

import numpy as np
import matplotlib.pyplot as plt
#Distribución Exponencial
def dist_exp():
    a = int(raw_input("Ingrese Lambda: "))
    b = int(raw_input("Ingrese la cantidad de numeros a generar: "))
    beta = 1./a

    exp = np.random.exponential((beta), b) #el primer valor es Beta (1/Lambda)

    mediana_t = np.log(2)/(a*a)

    print exp #imprime los números aleatorios generados
    print "Estadísticos teóricos: ", "Minimo=0", " Maximo= infinito", " Media={}".format(beta), " Mediana={}".format(mediana_t), " Varianza={}".format(1/(a*a))
        #imprime los estadísticos teóricos
    print "Estadísticos muestrales: ", "Minimo={}".format(np.min(exp)), " Maximo={}".format(np.max(exp)), " Media={}".format(np.mean(exp)), " Mediana={}".format(np.median(exp)), " Varianza={}".format(np.var(exp))
        #imprime los estadísticos muestrales

    #bins son las clases para el histograma
    if b<1000: #para los bins 
        bn = 20
    else:
        bn = 200
    h = plt.hist(exp, bins=bn, normed=True) #bins son las clases para el histograma

    plt.show() #despliega el histograma

我从以下内容中调用此函数(以及其他4个类似的函数):

from ipywidgets import widgets, interactive
from IPython.display import display

print "Ingrese la distribucion deseada. Las opciones son: Binomial, Exponencial, Geometrica, Lognormal y Triangular"

text = widgets.Text()
display(text)

def handle_submit(sender):
    print(text.value)
    if text.value == "Binomial":
        return dist_bin()
    elif text.value == "Exponencial":
        return dist_exp()
    elif text.value == "Geometrica":
        return dist_geom()
    elif text.value == "Lognormal":
        return dist_log()
    elif text.value == "Triangular":
        return dist_tri()
    else:
        print "Por favor ingrese una distribucion valida. Ponga atencion a las opciones."

text.on_submit(handle_submit)

因此,每次用户在文本框中键入有效的字符串时,我都需要执行一个函数,但我立即收到此错误:

---------------------------------------------------------------------------
EOFError                                  Traceback (most recent call last)
<ipython-input-8-1e49bbab45fa> in handle_submit(sender)
     10     print(text.value)
     11     if text.value == "Binomial":
---> 12         return dist_bin()
     13     elif text.value == "Exponencial":
     14         return dist_exp()

<ipython-input-5-081f517da431> in dist_bin()
      1 #Distribución Binomial
      2 def dist_bin():
----> 3     n = int(raw_input("Ingrese n: ")) #número de intentos
      4     p = float(raw_input("Ingrese p: ")) #probabilidad de cada intento
      5     num  = int(raw_input("Ingrese la cantidad de numeros a generar: "))

EOFError: EOF when reading a line

我将不胜感激任何帮助。

谢谢大家!

0 个答案:

没有答案