Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2018, 09:59   #1
Loneymist
 
Регистрация: 17.04.2018
Сообщений: 5
Смущение переменные не объявлены, хотя объявляются в цикле

Код:
smes = input()

if smes == 1:
    ugl = 7.38
    zhiri = 3.39
    belok = 1.73
    kalium = 2
    natrium = 1.1
    calcium = 1.6
    magnium = 0.23
    kkal = 67
    osm = 264
print(ugl,zhiri)
Говорит, что переменные не объявлены, хотя объявляются в цикле, Python 3.6.1

______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 17.04.2018 в 10:02.
Loneymist вне форума Ответить с цитированием
Старый 17.04.2018, 10:01   #2
Loneymist
 
Регистрация: 17.04.2018
Сообщений: 5
По умолчанию

Все переменные в цикле находятся, если что
Изображения
Тип файла: png Screenshot_44.png (4.5 Кб, 66 просмотров)
Loneymist вне форума Ответить с цитированием
Старый 17.04.2018, 10:02   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Тут нет цикла.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 17.04.2018, 10:03   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

а так?
Код:
if smes == 1:
    ugl = 7.38
    zhiri = 3.39
    belok = 1.73
    kalium = 2
    natrium = 1.1
    calcium = 1.6
    magnium = 0.23
    kkal = 67
    osm = 264
    print(ugl,zhiri)
а где цикл то?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.04.2018, 10:09   #5
Loneymist
 
Регистрация: 17.04.2018
Сообщений: 5
По умолчанию

[QUOTE=Serge_Bliznykov;1730550]а так?
Код:
if smes == 1:
    ugl = 7.38
    zhiri = 3.39
    belok = 1.73
    kalium = 2
    natrium = 1.1
    calcium = 1.6
    magnium = 0.23
    kkal = 67
    osm = 264
    print(ugl,zhiri)
Так выводит пустые значения
Loneymist вне форума Ответить с цитированием
Старый 17.04.2018, 10:15   #6
Loneymist
 
Регистрация: 17.04.2018
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Тут нет цикла.
Как в него тогда засунуть переменные? х)
Loneymist вне форума Ответить с цитированием
Старый 16.05.2018, 16:54   #7
pritvor69
Новичок
Джуниор
 
Регистрация: 18.04.2018
Сообщений: 1
По умолчанию

По умолчанию у тебя в smes записывается строка, при проверке "1" == 1 ошибочно и переменные не обьявляются. Обьяви переменную как smes = int(input), или при проверке укажи if int(smes) == 1.
pritvor69 вне форума Ответить с цитированием
Старый 17.05.2018, 11:39   #8
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Python - интерпретатор. Иначе говоря:
Объекты, связанные с твоими переменными, будут созданы только в том случае, когда программа попадёт в тело условного оператора: условие будет ИСТИНА.
В операторе
Код:
smes = input()
переменная smes получит строковое значение, а '1' <> 1.
Т.е., следующее далее условие всегда ЛОЖ. При выполнении оператора
Код:
print(ugl,zhiri)
который вне тела условного оператора, переменные ugl и zhiri не определены.
Т.о. надо понять, какой тип должен быть у переменной smes и в соответствии с этим записать условие условного оператора.
Например так:
Код:
 if smes == '1':
или так:
Код:
smes = int(input())
if smes == 1:
Ну а если smes вещественного типа???
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как задекларировать курсоры и переменные в не процедуры? Нужно SQL запрос выполнять в цикле пройдясь по таблице Alar SQL, базы данных 2 14.12.2014 19:12
Считывание в цикле в одни и те же переменные (Си) paulusfr Помощь студентам 5 12.10.2014 15:36
Используя объявлены типа: gudok2 Помощь студентам 0 29.04.2013 00:12
Где объявлены константы курсора "OCR_"? 8Observer8 Win Api 4 22.05.2012 12:58
Переменные экземпляра,класса, константы и переменные cop08 Общие вопросы .NET 3 20.12.2010 21:56