Форум сайта python.su
0
Подскажите пожалуйста, где ошибка?
from Tools.scripts.treesync import raw_input m = raw_input("Введите 1 для вызова первой функции: ") if m == "1": def f_print(): return "Вы ввели число 1" else: def f_print(): return "Альтернативная функция" print (f_print()) return r
Отредактировано mixtaper (Дек. 5, 2015 13:03:52)
Офлайн
221
Ошибка во всем. Но видимо вы хотели фабрику функции, как то так:
# -*- coding: utf-8 -*- def factory_func(value): def f(): return value return f m = raw_input("Введите 1 для вызова первой функции: ") if m == "1": f_print = factory_func(u'Вы ввели число 1') else: f_print = factory_func(u'Альтернативная функция') print(f_print())
Офлайн
0
Этот пример есть в книге Прохоренок, но у меня он не выполняется
не понимаю, я тоже ввожу 1 и выходит альтернативная функция
Отредактировано mixtaper (Дек. 5, 2015 14:51:07)
Офлайн
0
fix
Первое предупреждение: оффтоп,ответ не по существу, пренебрежительное высказывание в адрес тех кто использует все еще актуальную версию Питона
Отредактировано JOHN_16 (Дек. 6, 2015 00:57:30)
Офлайн
0
А как будет в 3 выглядеть?
Офлайн
0
Сюда же ещё один вопрос добавлю…
a = [] a.append(input()) i = 0 while a[i] != 0: print(a[i]) a.append(input()) i += 1
Офлайн
0
Почему программа не прерывается, когда я ввожу 0
Офлайн
76
А вы посмотрите тип объекта, который вы добавляете в конец списка…
P.S. ‘0’ != 0
FIX: правильно не =! , а !=
Отредактировано JOHN_16 (Дек. 6, 2015 01:03:32)
Офлайн
0
mixtaperВы вводите не 0, а ‘0’ т.е не число, а строку вот он и не реагирует.
Почему программа не прерывается, когда я ввожу 0
a = [] a.append(int(input())) i = 0 while a[i] != 0: print(a[i]) a.append(input()) i += 1
Офлайн