liosdio12039 Ответов: 1

Попытка написать функцию, которая делает покупку и продажу акций


Создать функцию, называемую функцию func1(АЦЦ, цена, количество, решение),акк должен быть словарь, который содержит два значения: баланс и stock_quantity. Задайте начальное значение счета в основной функции. Цена: текущая цена акций, количество-это количество акций, которые вы хотите купить или продать, решение-логическое ;купить или продать (True = buy, False = sell). Эта функция выполняет продажу и покупку акций,
обновляя аккаунт, он должен печатать красивую отформатированную информацию о том, что
произошла транзакция, каков текущий баланс и количество оставшихся запасов.

-если сделка, которую вы пытаетесь совершить, невозможна (покупка большего количества акций, чем стоимость вашего баланса, или продажа большего, чем у вас есть), следует скорректировать количество. Например, если вы владеете 50 акциями, а входная информация хочет, чтобы вы продали 60, вы должны продать только 50 акций.

Когда я использую этот код он продолжает говорить что acc не определен

Что я уже пробовал:

def func1(account,price,quantity,decision):
    stock_quantity = -1
    balance = -1
    account ={}
    account.update({'balance': balance})
    account.update({'stock_quantity': stock_quantity})
    print(account)
    print('Enter price')
    price=float(input())
    print('Enter quantity')
    quantity=int(input())
    print ('Enter True to buy and False to sell ')
    decision=bool (input())
    if decision==True:
        if (balance>= fprice):
            balance=balance-fprice
            stock_quantity= stock_quant+quantity
        else:
            t=balance//price
            balance=balance-(t*price)
            stock_quantity=stock_quantity+t
    else:
        if (quant>=quantity): 
            balance=balance+fprice
            stock_quant=stock_quant-quantity
        else:
            selling=stock_quantity*price
            balance=balance+ selling

1 Ответов

Рейтинг:
0

Afzaal Ahmad Zeeshan

Проблема в том, что этот единственный код Python имеет несколько проблем с именованием. И проблема, которую вы показываете:

Цитата:
Когда я использую этот код он продолжает говорить что acc не определен
... скорее всего, не будет поднят из этого фрагмента кода. Если это так, то просто измените acc к account; с тех пор как вы прошли и создали "account"переменная (опять!)

Во-вторых, есть несколько других проблем с кодом. Вы можете видеть, в первой строке под решением == True: у вас есть:
if (balance>= fprice):
Но вы так и не определились fprice переменная в любом месте. И так далее, с таким количеством других переменных, как stock_quant, quant, прием.

Хотя Python гибок с именованием, динамической (или утиной) типизацией, вам, по крайней мере, нужно предоставить информацию интерпретатору, чтобы "знать", что переменная была предназначена. Как только вы создадите переменные, инициализируйте их чем угодно (поскольку Python не навязывает тип), ваши "определенные / неопределенные" проблемы исчезнут. Это приведет к возникновению других проблем, таких как несоответствие типов, но их можно легко решить.

Пожалуйста, смотрите эти ссылки, чтобы узнать больше об этом:
typing — поддержка подсказок типа — документация Python 3.8.2[^]
python - input() error - NameError: имя '...' не определено - переполнение стека[^] (Примечание что этот ответ обсуждает случай, когда ваши входные значения отображаются как не определенные в коде Python, прочтите это, если ваш "acc"исходит из вашего ввода)