Python"未定义"在彩票中

时间:2015-04-17 18:36:53

标签: python function defined

我正在学习一本书“Intr.Python 2.6.6”和 我在示例中有这个错误

line 12, in <module>
aux=num_ele
NameError: name "num_ele" is not defined

但我不明白这个问题

# -*- coding:utf-8 *-*

import random
import os

def combinacion(num_ele, total_num, repetir=False, ordenar_resultado=True):
    elementos=[]
    if num_ele>total_num and not repetir:
        print ("No puedes sacar mas valores de los que ya tienes!")
        return

aux=num_ele

while aux>0:
    numero = int(random.uniform(1,total_num))
    if repetir:
        elementos.append(numero)
        aux=aux-1
    else:
        if elementos.count(numero)==0:
            elementos.append(numero)
            aux=aux-1

if ordenar_resultado:
    elementos.sort()
print (elementos)

def menu():
    print ("""
    Menu Principal

    Este programa genera combinaciones de juegos de azar. elige el juegos
    que mas te guste.

    1) Loteria Primitiva
    2) Euromillones
    9) Salir 
    """)

    opcion = input("")
    return opcion

def aplicacion():
    os.system(cls)
    opcion = ("")
    while opcion!=("9"):
        opcion = menu()
        if opcion ==("1"):
            print ("")
            print ("Combinacion para loteria primitiva: ")
            combinacion(6,49)
            print ("")

        if opcion == ("2"):
            print ("")
            print ("Euromillones")
            print ("Combinacion ganadora: ")
            combinacion(5,50)
            print ("Estrellas: ")
            combinacion(2,9)
            print ("")

aplicacion()
谢谢你的时间。

1 个答案:

答案 0 :(得分:3)

我假设你的aux=num_ele函数中有combination和代码:

# -*- coding:utf-8 *-*
import random
import os

def combinacion(num_ele, total_num, repetir=False, ordenar_resultado=True):
    elementos=[]
    if num_ele>total_num and not repetir:
        print ("No puedes sacar mas valores de los que ya tienes!")
        return
    aux=num_ele

    while aux>0:
      numero = int(random.uniform(1,total_num))
      if repetir:
        elementos.append(numero)
        aux=aux-1
      else:
        if elementos.count(numero)==0:
          elementos.append(numero)
          aux=aux-1
      if ordenar_resultado:
        elementos.sort()
      print (elementos)

def menu():
    print ("""
    Menu Principal

    Este programa genera combinaciones de juegos de azar. elige el juegos
    que mas te guste.

    1) Loteria Primitiva
    2) Euromillones
    9) Salir 
    """)

aux=num_ele的缩进级别以及以下代码将其置于combination的范围之外。