Форум сайта python.su
0
Никак не могу осилить почему функция не возвращает значение переменной “food”
Где я что то пропустил?
Прикреплённый файлы:
basic.defffff.py (416 байт)
Офлайн
75
Python3 ?
def market(): yes = 'y' no = 'n' buy = input('вы хотите купить это? y/n ') if buy == yes: food = input('напишите количество ') food = food + (' штук купили') print(food) elif buy == no: food = ('') print('А жаль :-)') return food buy = market() print(buy)
Офлайн
0
Да python3. Может все дело в неправильном построении функции?, не могу понять.
Офлайн
0
def market():
buy = input('вы хотите купить это? yes / no ')
if buy == 'yes':
food = input('напишите количество ')
food = food + (' штук купили')
print(food)
elif buy == 'no':
food = ('')
print('А жаль :-)')
market()
Офлайн
857
axrbarsicвторое сообщение прочитай
Может все дело в неправильном построении функции?
def market(): yes, no = 'yn' food = None buy = input('вы хотите купить это? y/n ') if buy == yes: food = input('напишите количество ') print(food + ' штук купили') elif buy == no: food = '0' print('А жаль :-)') return int(food) def main(): food = market() print(food) main()
>>> def market(): ... yes, no = 'yn' ... food = None ... buy = input('вы хотите купить это? y/n ') ... if buy == yes: ... food = input('напишите количество ') ... print(food + ' штук купили') ... elif buy == no: ... food = '0' ... print('А жаль :-)') ... return int(food) ... >>> def main(): ... food = market() ... print(food) ... >>> main() вы хотите купить это? y/n n А жаль :-) 0 >>> main() вы хотите купить это? y/n y напишите количество 10 10 штук купили 10 >>>
Отредактировано py.user.next (Март 9, 2014 19:25:26)
Офлайн
0
Спасибо за помощь теперь все работает! Я тоже чуть сократил код, но так и не понял почему при вызове функции надо использовать название переменной food “food = market()” а просто “market()” не работает.
def market(): yes, no = ('yn') buy = input('вы хотите купить это? y/n ') if buy == yes: food = input('напишите количество ') elif buy == no: food = ('0') print('А жаль :-)') return (food + ' штук купили') food = market() print(food)
Отредактировано axrbarsic (Март 10, 2014 01:27:12)
Офлайн
0
Я ступил :-) Разобрался! Просто что бы вывести в print значение функции ее надо присвоить переменной, правильно я понял идею?
%имя переменной % = %имя функции%()
print(%имя переменной%)
Офлайн
0
Ха, вот так тоже работает
def market(): yes, no = ('yn') buy = input('вы хотите купить это? y/n ') if buy == yes: food = input('напишите количество ') elif buy == no: food = ('0') print('А жаль :-)') return (food + ' штук купили') print(market())
Офлайн
857
не ставь скобки вокруг строк
Офлайн
0
py.user.nextА в чем разница со скобками или без?
не ставь скобки вокруг строк
Офлайн