2015-09-04 3 views
0

Ниже приведен код. Переменные определены ранее в файлепеременная неопределенная в python3

if selc == "1": 
    unitPrice = a2 
elif selc == "2": 
    unitPrice = b2 
elif selc == "3": 
    unitPrice = c2 
elif selc == "4": 
    unitPrice = d2 
elif selc == "5": 
    unitPrice = e2 
print (unitPrice) 

терминал говорит, что UNITPRICE не определено, как я могу это исправить?

+0

I не мои глаза обманывают меня; но ваша переменная 'unitprice' является ошибкой, так что это может быть так. Другой способ - «unitPrice» не был объявлен, пока условия не были оценены. – Poriferous

+0

ваше право, некоторые из капитализации отключены, я надеюсь, что это был не плохой вопрос. –

+0

@JohnStivers. Итак, проблема была в капитализации? – Zizouz212

ответ

1

Во-первых, вам нужно некоторое соответствие с вашими именами переменных. Похоже, вы исходите из «старого» языкового фона (например, C или Java). В Python переменные называются с символами подчеркивания. Таким образом, unit_price в отличие от CamelCase unitPrice.

Далее, убедитесь, что unit_price всегда объявляется. Там два способа сделать это:

unit_price = 0 
if something: 
    unit_price = 1 

Или убедитесь, что unit_price всегда определяется в вашем if блоке, путем включения и else блока:

if something == 0: 
    unit_price = 0 
elif something == 1: 
    unit_price = 1 
else: 
    unit_price = 2 

Надежда, что помогает :)

+0

ха-ха, вы правы насчет java. оказывается, что я должен был спросить инструкции if для проверки на int вместо строк. Сейчас он работает :) –

+0

@JohnStivers Ha, lol. Это восхитительно. Рад, что смог помочь :) – Zizouz212

0

Прежде всего, если вы скопируете/вставляете свой код, то unitPrice и unitprice не совпадают. Проверьте свою капитализацию.

Если есть проблема, скорее всего, вы не указали переменную unitPrice выше. Не 100% уверены в области python, но вам, скорее всего, нужно объявить переменную прямо над оператором if.

т.е.

unitPrice = defaultValue 
if selc == "1": 
    unitPrice = a2 
. 
. 
. 
print(unitPrice) 
+0

Я исправил это и объявил переменную выше операторов, однако она все еще говорит о той же ошибке –

+2

Ваше объявление unitPrice неверно. Это ничего не делает. – Zizouz212

+0

Упс. Забыл инициализацию. Исправлена. – SWPhantom

Смежные вопросы