Python "not defined" 中彩票

Python "not defined" in lottery

我正在学习一本书 "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()

感谢您的宝贵时间。

我假设您打算在 combination 函数中包含 aux=num_ele 和后续代码:

# -*- 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 的范围。