Уведомления

Группа в Telegram: @pythonsu

#1 Март 9, 2014 02:52:07

axrbarsic
Зарегистрирован: 2014-02-22
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу вернуть значение переменной из функции (совсем новичек)

Никак не могу осилить почему функция не возвращает значение переменной “food”
Где я что то пропустил?

Прикреплённый файлы:
attachment basic.defffff.py (416 байт)

Офлайн

#2 Март 9, 2014 03:58:50

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Не могу вернуть значение переменной из функции (совсем новичек)

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)

Офлайн

#3 Март 9, 2014 04:31:23

axrbarsic
Зарегистрирован: 2014-02-22
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу вернуть значение переменной из функции (совсем новичек)

Да python3. Может все дело в неправильном построении функции?, не могу понять.

Офлайн

#4 Март 9, 2014 13:08:08

Be@r_Not_beer
Зарегистрирован: 2014-03-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу вернуть значение переменной из функции (совсем новичек)

def market():
buy = input('вы хотите купить это? yes / no ')
if buy == 'yes':
food = input('напишите количество ')
food = food + (' штук купили')
print(food)
elif buy == 'no':
food = ('')
print('А жаль :-)')
market()

а так мы сократили строки до минимума, может еще как нибудь сократить?

Офлайн

#5 Март 9, 2014 19:16:02

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Не могу вернуть значение переменной из функции (совсем новичек)

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)

Офлайн

#6 Март 10, 2014 01:25:09

axrbarsic
Зарегистрирован: 2014-02-22
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу вернуть значение переменной из функции (совсем новичек)

Спасибо за помощь теперь все работает! Я тоже чуть сократил код, но так и не понял почему при вызове функции надо использовать название переменной 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)

Офлайн

#7 Март 10, 2014 01:53:17

axrbarsic
Зарегистрирован: 2014-02-22
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу вернуть значение переменной из функции (совсем новичек)

Я ступил :-) Разобрался! Просто что бы вывести в print значение функции ее надо присвоить переменной, правильно я понял идею?
%имя переменной % = %имя функции%()
print(%имя переменной%)

Офлайн

#8 Март 10, 2014 02:04:27

axrbarsic
Зарегистрирован: 2014-02-22
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу вернуть значение переменной из функции (совсем новичек)

Ха, вот так тоже работает

def market():
    yes, no = ('yn')
    buy = input('вы хотите купить это? y/n ')
    if buy == yes:
        food = input('напишите количество ')
    elif buy == no:
        food = ('0')
        print('А жаль :-)')
    return (food + ' штук купили')
print(market())

Офлайн

#9 Март 10, 2014 02:54:05

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Не могу вернуть значение переменной из функции (совсем новичек)

не ставь скобки вокруг строк



Офлайн

#10 Март 10, 2014 04:34:59

axrbarsic
Зарегистрирован: 2014-02-22
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу вернуть значение переменной из функции (совсем новичек)

py.user.next
не ставь скобки вокруг строк
А в чем разница со скобками или без?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version