Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

Код:

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 в 11:02.
Loneymist вне форума   Ответить с цитированием
Старый 17.04.2018, 11:01   #2
Loneymist
Новичок
 
Регистрация: 17.04.2018
Сообщений: 5
Репутация: 10
По умолчанию

Все переменные в цикле находятся, если что
Изображения
Тип файла: png Screenshot_44.png (4.5 Кб, 22 просмотров)
Loneymist вне форума   Ответить с цитированием
Старый 17.04.2018, 11:02   #3
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,121
Репутация: 3316

icq: 512-765
skype: alexp.frl
По умолчанию

Тут нет цикла.
Alex11223 на форуме   Ответить с цитированием
Старый 17.04.2018, 11:03   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,499
Репутация: 5308
По умолчанию

а так?
Код:

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, 11:09   #5
Loneymist
Новичок
 
Регистрация: 17.04.2018
Сообщений: 5
Репутация: 10
По умолчанию

[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, 11:15   #6
Loneymist
Новичок
 
Регистрация: 17.04.2018
Сообщений: 5
Репутация: 10
По умолчанию

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

icq: 491047981
skype: pritvor69
По умолчанию

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

Python - интерпретатор. Иначе говоря:
Объекты, связанные с твоими переменными, будут созданы только в том случае, когда программа попадёт в тело условного оператора: условие будет ИСТИНА.
В операторе
Код:

smes = input()

переменная smes получит строковое значение, а '1' <> 1.
Т.е., следующее далее условие всегда ЛОЖ. При выполнении оператора
Код:

print(ugl,zhiri)

который вне тела условного оператора, переменные ugl и zhiri не определены.
Т.о. надо понять, какой тип должен быть у переменной smes и в соответствии с этим записать условие условного оператора.
Например так:
Код:

 if smes == '1':

или так:
Код:

smes = int(input())
if smes == 1:

Ну а если smes вещественного типа???
__________________
Как-то так, ...
ViktorR вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как задекларировать курсоры и переменные в не процедуры? Нужно SQL запрос выполнять в цикле пройдясь по таблице Alar SQL, базы данных 2 14.12.2014 20: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 22:56


03:10.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru