Уведомления

Группа в Telegram: @pythonsu

#1 Май 10, 2016 15:27:52

Ahmasoft
Зарегистрирован: 2016-05-10
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

UnboundLocalError: local variable 'ii' referenced before assignment

В общем вот программа:

 import random
week = []
pn = []; vt = []; sr = []; ct = []; pt = []; sb = []
g = int(input("BBeguTe KoJIu4ecTBo hpegMeToB B geHb: "))
prs = int(input("BBeguTe KoJIu4ecTBo hpegMeToB (o6LLLee) : "))
i = 0
ii = 0
while i < prs:
    week.append(raw_input())
    i += 1
random.shuffle(week)
def days(a):
   if ii == g:
      g =  g +  g
      while ii < g:
        a.append(week[ii]) 
        ii += 1
   else:
     while ii < g:
        a.append(week[ii]) 
        ii += 1
days(pn); days(vt); days(sr); days(ct); days(pt); days(sb)
print("TIoHegeJIbHuk: ", pn)
print("BTopHuK: ", vt)  
print("Cpega: ", sr)
print("4eTBepr: ", ct)
print("TI9ITHuLLa: ", pt)
print("Cy66oTa: ", sb)

Отредактировано Ahmasoft (Май 10, 2016 16:13:34)

Офлайн

#2 Май 10, 2016 16:13:10

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

UnboundLocalError: local variable 'ii' referenced before assignment

Потому что

def days(a):
   global i
   if ii == g:



Офлайн

#3 Май 10, 2016 16:20:12

Ahmasoft
Зарегистрирован: 2016-05-10
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

UnboundLocalError: local variable 'ii' referenced before assignment

Может

global ii
? A то с
global i 
не катит

Офлайн

#4 Май 10, 2016 16:22:25

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

UnboundLocalError: local variable 'ii' referenced before assignment

Ну разумеется



Офлайн

#5 Май 10, 2016 16:43:06

Ahmasoft
Зарегистрирован: 2016-05-10
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

UnboundLocalError: local variable 'ii' referenced before assignment

В общем вот что получилось:

import random 
week = [] 
pn = []; vt = []; sr = []; ct = []; pt = []; sb = [] 
g = int(input("BBeguTe KoJIu4ecTBo hpegMeToB B geHb: ")) 
prs = int(input("BBeguTe KoJIu4ecTBo hpegMeToB (o6LLLee) : ")) 
i = 0
while i < prs: 
    week.append(raw_input()) 
    i += 1 
random.shuffle(week)
def days(a): 
    ii = 0 
    global g
    if ii == g: 
        iii = ii
        g = g + g 
        while ii < g: 
            a.append(week[ii-iii]) 
            ii += 1 
    else: 
        while ii < g: 
            a.append(week[ii])
            ii += 1 
    return ii
days(pn); days(vt); days(sr); days(ct); days(pt); days(sb)
print("TIoHegeJIbHuk: ", pn)
print("BTopHuK: ", vt) 
print("Cpega: ", sr) 
print("4eTBepr: ", ct) 
print("TI9ITHuLLa: ", pt)
print("Cy66oTa: ", sb)
Хотелось бы узнать как в функции days сделать чтобы при последующем проходе ii уже не присваивалось значение 0, а только в самом начале ?

Офлайн

#6 Май 10, 2016 16:55:16

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

UnboundLocalError: local variable 'ii' referenced before assignment

Ничего вы не узнаете, у вас кажется проблемы с логикой

 if ii == g: 
        while ii < g: 
Вы сравнили ii с g, получили, что они равны и тут же ждете, что ii станет меньше? Как, почему, каким образом?



Офлайн

#7 Май 10, 2016 17:03:17

Ahmasoft
Зарегистрирован: 2016-05-10
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

UnboundLocalError: local variable 'ii' referenced before assignment

Не то отправил. Вот:

import random 
week = [] 
pn = []; vt = []; sr = []; ct = []; pt = []; sb = [] 
g = int(input("BBeguTe KoJIu4ecTBo hpegMeToB B geHb: ")) 
prs = int(input("BBeguTe KoJIu4ecTBo hpegMeToB (o6LLLee) : ")) 
i = 0
ii = 0
while i < prs: 
    week.append(raw_input()) 
    i += 1
random.shuffle(week)
def days(a): 
    global g
    global ii
    if ii == g: 
       while ii >= g: 
            a.append(week[ii]) 
            ii -= 1 
    else: 
        while ii < g: 
            a.append(week[ii])
            ii += 1 
    return ii
days(pn); days(vt); days(sr); days(ct); days(pt); days(sb)
print("TIoHegeJIbHuk: ", pn)
print("BTopHuK: ", vt) 
print("Cpega: ", sr) 
print("4eTBepr: ", ct) 
print("TI9ITHuLLa: ", pt)
print("Cy66oTa: ", sb)

Офлайн

#8 Май 10, 2016 17:43:15

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

UnboundLocalError: local variable 'ii' referenced before assignment

Давайте мы поступим по-другому. Вы толково изложите задачу, а кто-нибудь из местных или я (если позволят обстоятельства) вам помогут с решением. От вашего кода, честно говоря, хочется чесаться, поэтому лучше сделать по-правильному, да и вам будет мастер-класс.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version