Найти - Пользователи
Полная версия: Ошибка в коде, не могу понять проблему. Подскажите.
Начало » Python для новичков » Ошибка в коде, не могу понять проблему. Подскажите.
1
playernit
Здравствуйте! Я только начинаю программировать.
Что то уже подучил.
Иногда смотрю всякие примеры кода, перепечатываю. Если допускаю ошибку начинаю разбираться, подглядываю в пример иногда.

Вот один код игры не могу понять в чем ошибка.
В первом примере при условии else ругается. рис.1
line 10
GG == ‘Paper’
NameError: name ‘GG’ is not defined
—————————————————————-
Вариант 1
 import random
print ('Old Old Game')
print ('Stoune/Sci/Paper')
opp = random.randint(1,3)
if opp == '1':
  GG == 'Stoune'
elif opp == '2':
  GG == 'Sci'
else:
  GG == 'Paper'
print ('1) Stoune')
print ('2) Sci')
print ('3) Paper')  
try:
    X = int(input('Write number:\n>'))
    if X == 1:
      print ('')
      print ('Your shoice: Stoune')
      print ('Opponent shoice: '+str(GG))
      print ('')
      if opp == '1':
        print ('Draw')
      elif opp == 2:
        print ('You win!')
      else:
        print ('You Lost')
    elif X == 2:
      print ('')
      print ('You shoice: Sci')
      print ('Opponent shoice: '+str(GG))
      print ('')
      if opp == 1:
        print ('You Win!')
      elif opp == 2:  
        print ('Draw')
      else:
        print ('You Lost')
    elif X == 3:
      print ('')
      print ('You shoice: Paper')
      print ('Opponent shoice: '+str(GG))
      print ('')
      if opp == 1:
        print ('You Lost')
      elif opp == 2:
        print ('You Win!')
      else:
        print ('Draw')
        print ('')
    else:
      print ('Write only numbers: 1,2,3')
except:
  print ('Error! Write only int numbers')

Во втором варианте else изменил на elif, но не отрабатывает код должным образом. рис.2
При выборе от 1 до 3 выводит последнюю строку кода Error! Write only int numbers'

Заранее благодарю за разъяснение!
Romissevd
Первая ошибка вместо сравнения == ,необходимо, выполнить присвоение =
 if opp == '1':
  GG = 'Stoune'
elif opp == '2':
  GG = 'Sci'
else:
  GG = 'Paper'
playernit
Жесть… Столько времени смотрел в чем проблема )) Благодарю!

А еще момент подскажите, почему то не такт выходит результат, т.е. например ножницы на бумагу, будет ничья или проиграл или выиграл, не правильно показывает результат, да и каждый раз по разному.

И так с любой цифрой 1/2/3
PEHDOM
потому что у вас каша в коде , возмите хотябы вот это:
 opp = random.randint(1,3)
if opp == '1':
  GG = 'Stoune'
elif opp == '2':
  GG = 'Sci'
else:
  GG = 'Paper'
random.randint возвращает int, а вы его сравниваете со строкой, вот у вас GG всегда ‘Paper’, а opp случайное число. дальше у вас еще есть строки типа if opp == ‘1’:
playernit
PEHDOM
потому что у вас каша в коде , возмите хотябы вот это:
)) да, сам не разберусь, не могу вникнуть. Буду дальше штудировать, надеюсь со временем придет понимание.
Благодарю!
playernit
PEHDOM
потому что у вас каша в коде , возмите хотябы вот это:
))) немного понял, цифры указанны в ‘ ’

PEHDOM
дальше у вас еще есть строки типа if opp == ‘1’:
Офлайн


А с этой строкой что не так ?
playernit
PEHDOM
дальше у вас еще есть строки типа if opp == ‘1’:

Тоже строка ((

Понял ))
playernit
Исправил, теперь всё ок! Благодарю!
 import random
print ('Old Old Game')
print ('Stoune/Sci/Paper')
opp = random.randint(1,3)
if opp == 1:
  GG = 'Stoune'
elif opp == 2:
  GG = 'Sci'
else:
  GG = 'Paper'
print ('1) Stoune')
print ('2) Sci')
print ('3) Paper')  
try:
    X = int(input('Write number:\n>'))
    if X == 1:
      print ('')
      print ('Your shoice: Stoune')
      print ('Opponent shoice: '+str(GG))
      print ('')
      if opp == 1:
        print ('Draw')
      elif opp == 2:
        print ('You Win!')
      else:
        print ('You Lost')
    elif X == 2:
      print ('')
      print ('You shoice: Sci')
      print ('Opponent shoice: '+str(GG))
      print ('')
      if opp == 1:
        print ('You Lost')
      elif opp == 2:  
        print ('Draw')
      else:
        print ('You WIN!')
    elif X == 3:
      print ('')
      print ('You shoice: Paper')
      print ('Opponent shoice: '+str(GG))
      print ('')
      if opp == 1:
        print ('You Win!')
      elif opp == 2:
        print ('You Lost!')
      else:
        print ('Draw')
        print ('')
    else:
      print ('Write only numbers: 1,2,3')
except:
  print ('Error! Write only int numbers')
playernit
Друзья, а как вставить этот код в цикл? Что бы игра(кон) начиналась заново?
PEHDOM
 while True:
# тут код игры
    if input('Хотите еще раз сыграть? Д/Н').lower() == 'н':
        break
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB