2015-02-06 1 views
-3
def Q7(): 
    names=['ben','thor','zoe','kate'] #the list of names 
    Max = 4 
    found=False 
    Splayer = input("What plaer are you looking for? ") 
    while found == False and current <= Max: 
     if names[current]== Splayer: 
      found = true 
     else: 
      current = current+1 
     if found == True: 
      print('yes, they have a top') 
     else: 
      print('no,they do not have a top score') 

это программа, которая попросила меня сделать следующее: найти имя игрока и распечатать один из выходных данных на основе ввода пользователя, однако, когда я запустил его, вы обнаружите, что он найден == False и текущий < = Макс. : UnboundLocalError: локальная переменная «текущая» ссылка Перед назначением как я заставить его работать должным образомЧто означает, если сообщение об ошибке указывает, что переменная указана перед назначением?

+6

И в чем вопрос? – Edd

+1

Мы не понимаем ... Объясните ... Объясните доктора ... Объясните ... Истребите Доктора. –

+0

В чем вопрос – kid

ответ

2
def Q7(): 
    names=['ben','thor','zoe','kate'] #the list of names 
    Max = 4 
    found=False 
    Splayer = input("What plaer are you looking for? ") 
    current = 0; 
    while found == False and current < Max: 
     if names[current]== Splayer: 
      found = True 
     current = current+1 
    if found == True: 
     print('yes, they have a top') 
    else: 
     print('no,they do not have a top score') 
  1. проверяет, на найдены сделаны после того, как вы закончили поиск, и не сделал внутри
  2. заявляют current в 0.
  3. петли из тока -> 0 Макс-1
  4. найденного True не true
+0

... или просто сделать 'found = Splayer в именах'. Кроме того, '== True' не требуется. –

+0

Я, конечно, просто пытаюсь помочь с текущим кодом. @tobias_k – hyades

0
def Q7(): 
    names=['ben','thor','zoe','kate'] #the list of names 
    Max = 4 
    found=False 
    current = 0 
    Splayer = input("What plaer are you looking for? ") 
    while found == False and current <= Max-1: 
     if names[current]== Splayer: 
      found = True 
     else: 
      current = current+1 
     if found == True: 
      print('yes, they have a top') 
     else: 
      print('no,they do not have a top score') 
+0

Собственно, это не сработает. 'names [4]' не существует. вам нужно зациклиться, пока 'current

+0

да исправил его. спасибо – kid

+0

Спасибо, парень, я ценю помощь – WolfSBanE

0

tobias_k прав. Что вы действительно хотите:

names = ['ben', 'thor', 'zoe', 'kate'] 
player = input("What player are you looking for? ") 
if player in names: 
    print("Yes, they have a top score.") 
else: 
    print("No, they don't.") 
Смежные вопросы