Member 12120337 Ответов: 4

Python, если после заявления проблемы


Привет,
Я пишу игру на python, чтобы играть, когда мне скучно, но у меня есть issuses с оператором if/then, я буду публиковать код и ошибку.

Ошибка

Обратная трассировка (самый недавний призыв последнего):


Файл "adv.py", строка 12, in & lt;module>
если x = = y:
NameError: имя "y" не определено

Код:

    x = raw_input('[Rome] ---> [y/n]')
if x == y: 

	print '[Nation] Rome has taken over Gaul'
	print '[Nation] Gaul has fallen into ruins.'
	
 

    else:
    	print 'Gaul has defeated Rome'</module>

Member 12120337

Модуль не работал

4 Ответов

Рейтинг:
32

Patrice T

y это переменная 'y' это ценность.
Я думаю, вы хотите сравнить x к значению 'y'

if x == 'y': 


У вашего кода есть и другие проблемы, вы должны улучшить вопрос перечисляя полный модуль или функцию.


ZurdoDev

+5

Patrice T

Спасибо

Рейтинг:
2

TheDarkCyan

В этой строке:

if x == y:

Вы не сказали, что y-это строка, но вместо этого python думает, что это переменная. просто измените эту строку на следующую:
if x == "y" or x == "Y":

(Обратите внимание, что я добавил случай, когда Y-заглавная буква)
Помните, что строки имеют кавычки (") вокруг них, а переменные-нет! :)


Richard MacCutchan

Вы не более чем за год слишком поздно.

Рейтинг:
1

Richard MacCutchan

Я предлагаю вам поработать до конца Учебник По Python[^].


Рейтинг:
0

PythonHeadBanger

Я не знаю, определяли ли вы Y ранее в своем проекте кода, но из включенного кода самая вопиющая ошибка здесь такова: вы спрашиваете

if X == Y
и вы не уточняете
Y
перед рукой.

Так что в принципе; если переменная равна неопределенной переменной, выполните следующий код:

print('[Nation] Rome has taken over Gaul')
print ('[Nation] Gaul has fallen into ruins.'):
else:
    print 'Gaul has defeated Rome'

Однако как часто что-нибудь печатается? Было бы очень жаль, если бы вы получали ложные срабатывания ... то есть ваша переменная y случайно равна x и дает предполагаемый положительный результат выполнения программы в спорадические моменты времени.


Возможно, определение y перед рукой уберет для нас любую двусмысленность.

т.е.
y = f[0]
x = raw_input('[Rome] ---> [y/n]')
if x == y: 
 
	print '[Nation] Rome has taken over Gaul'
	print '[Nation] Gaul has fallen into ruins.'
	
 
 
    else:
    	print 'Gaul has defeated Rome'


Patrice T

y вряд ли будет переменной. если вы посмотрите на перед тестом, x загружается с ответом Да/нет на вопрос, вполне вероятно, что кто-то хочет проверить, каков ответ.

PythonHeadBanger

Это правда. Но я чувствовал, что "y-это переменная, "y" - это значение "недостаточно далеко зашло, чтобы объяснить, что он ссылался на переменную y в своем коде, когда намеревался проверить, является ли x = = "y". Таким образом, буквальная интерпретация кода, который он написал, и должна помочь ему выявить свою ошибку.