Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 20, 2019 15:17:55

playernit
Зарегистрирован: 2019-02-20
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в коде, не могу понять проблему. Подскажите.

Здравствуйте! Я только начинаю программировать.
Что то уже подучил.
Иногда смотрю всякие примеры кода, перепечатываю. Если допускаю ошибку начинаю разбираться, подглядываю в пример иногда.

Вот один код игры не могу понять в чем ошибка.
В первом примере при условии 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'

Заранее благодарю за разъяснение!

Отредактировано playernit (Фев. 20, 2019 15:21:37)

Прикреплённый файлы:
attachment 1.jpg (243,6 KБ)

Офлайн

#2 Фев. 20, 2019 15:36:03

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Ошибка в коде, не могу понять проблему. Подскажите.

Первая ошибка вместо сравнения == ,необходимо, выполнить присвоение =

 if opp == '1':
  GG = 'Stoune'
elif opp == '2':
  GG = 'Sci'
else:
  GG = 'Paper'

Офлайн

#3 Фев. 20, 2019 15:59:31

playernit
Зарегистрирован: 2019-02-20
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в коде, не могу понять проблему. Подскажите.

Жесть… Столько времени смотрел в чем проблема )) Благодарю!

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

И так с любой цифрой 1/2/3

Прикреплённый файлы:
attachment 3.jpg (93,0 KБ)

Офлайн

#4 Фев. 20, 2019 16:15:10

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Ошибка в коде, не могу понять проблему. Подскажите.

потому что у вас каша в коде , возмите хотябы вот это:

 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’:



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#5 Фев. 20, 2019 17:07:10

playernit
Зарегистрирован: 2019-02-20
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в коде, не могу понять проблему. Подскажите.

PEHDOM
потому что у вас каша в коде , возмите хотябы вот это:
)) да, сам не разберусь, не могу вникнуть. Буду дальше штудировать, надеюсь со временем придет понимание.
Благодарю!

Офлайн

#6 Фев. 20, 2019 17:19:08

playernit
Зарегистрирован: 2019-02-20
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в коде, не могу понять проблему. Подскажите.

PEHDOM
потому что у вас каша в коде , возмите хотябы вот это:
))) немного понял, цифры указанны в ‘ ’

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


А с этой строкой что не так ?

Офлайн

#7 Фев. 20, 2019 17:22:41

playernit
Зарегистрирован: 2019-02-20
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в коде, не могу понять проблему. Подскажите.

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

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

Понял ))

Офлайн

#8 Фев. 20, 2019 17:25:32

playernit
Зарегистрирован: 2019-02-20
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в коде, не могу понять проблему. Подскажите.

Исправил, теперь всё ок! Благодарю!

 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')

Офлайн

#9 Фев. 21, 2019 09:38:09

playernit
Зарегистрирован: 2019-02-20
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в коде, не могу понять проблему. Подскажите.

Друзья, а как вставить этот код в цикл? Что бы игра(кон) начиналась заново?

Отредактировано playernit (Фев. 21, 2019 09:38:34)

Офлайн

#10 Фев. 21, 2019 09:58:24

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Ошибка в коде, не могу понять проблему. Подскажите.

 while True:
# тут код игры
    if input('Хотите еще раз сыграть? Д/Н').lower() == 'н':
        break



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version