Im обучение для книги «Intr. Python 2.6.6» и я имею эту ошибку в примереPython «не определен» в лотерею
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()
Благодарю вас за внимание.
Найти другую книгу. 2.6 - это старая версия Python, и вы должны использовать что-то более новое. – Kevin
@Kevin Не имеет значения, какую версию python он использует. Никаких существенных изменений между 2.6 и 2.7, которые по-прежнему очень используются сегодня – letsc
@letsc: Я не могу подсчитать количество раз, когда OP сказал, что у них 2,7, и сказал, что мой ответ не работает, и оказалось, что они 2,6, а не 2,7, и я использовал определение набора или dict, 'str.format' с неявными индексами или два файла в' '' инструкции. :) – abarnert