Python Forum
Unit 18 Procedural Programming Python - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: Homework (https://python-forum.io/forum-9.html)
+--- Thread: Unit 18 Procedural Programming Python (/thread-7006.html)



Unit 18 Procedural Programming Python - kanwal121 - Dec-17-2017

def newBalance(newBalance,addvertCost,productPurchased): #this is to pass the calculations throgh the parameter
answer = newBalance-addvertCost-productPurchased #this is to output the new balnace after deducting the advertising cost and the product purchased cost from the new balnace
print (answer)
return answer

Traceback (most recent call last):
File "F:\Level 4\Kevin\nadia.py", line 80, in <module>
NewBalance = newBalance(newBalance,addvertCost,productPurchased)
File "F:\Level 4\Kevin\nadia.py", line 16, in newBalance
answer = newBalance-addvertCost-productPurchased #this is to output the new balnace after deducting the advertising cost and the product purchased cost from the new balnace
TypeError: unsupported operand type(s) for -: 'function' and 'tuple'
>>>


RE: Unit 18 Procedural Programming Python - Terafy - Dec-17-2017

You defined the function:

def newbalances(initialbalance, productname, advertisingcost):
    ...
But you didn't called the function.

Example of calling a function:

someVariableName = newbalances(inputParameter0,inputParameter1,inputParameter3)
unfortunately we don't know your input parameters.


RE: Unit 18 Procedural Programming Python - kanwal121 - Dec-17-2017

import random         #this is to import the random number for calculations
initialBalance = 1000  #this is the initial balance £1000
wholeSalePrice = 10    #this is the wholesale price
shopSalePrice = 40    #shops sells the product for £40
addvertCost = 1,20   #advertising cost is between the range of £1-£20
days = 0   

#procedures

def costs (wholeSalePrice,productPurchased):
    calculations = wholeSalePrice*productPurchased #this is to calculte the wholeslae price by the product purchased price
    print (calculations)
    return calculations

def newBalance(newBalance,addvertCost,productPurchased):  #this is to pass the calculations throgh the parameter
    answer = newBalance-addvertCost-productPurchased      #this is to output the new balnace after deducting the advertising cost and the product purchased cost from the new balnace  
    print (answer)
    return answer
    

def calculateSalesFigures(salesFigures): #this is to generate a number to calculate sales on a daily basis
    sales = random.randit(1,50)
    print (sales)
    return sales

def expenses(everyDayExpenses): #this is to calculate the daily expenses 
    dailyExpenses = WholeSalePrice*stock 
    print (dailyExpenses)
    return dailyExpenses

def balanceUpdate():
    updatedBalances = (newBalance + salesFigure - dailyexpenses)#this is the remaining balance after the daily expenses 
    print ("newbalance is £:" + str(updatedBalances))
    print (updatedBalance)
    return updatedBalance



#input

itemPurchased = int(input("please enter the value for itempurchased £"))  #this inforamtion will be displayed for the user to insert the amount
advertisingCost = int(input("please enter a value for addvertcost £"))    #this inforamtion will be displayed for the user to insert the amount
productPurchased = int (input ("please enter the amount of products you wish to purchase for stock £"))  #this inforamtion will be displayed for the user to insert the amount

print ("")

                        
#process

while days>0:
    days = days + 1
    print ("days" + str (days))   #this is the while statement for the loop
    
    randomNumber = random.randint(1,50)          
    salesFigure = (randomNumber*advertisingCost)
    print ("salesFigures is £:" +str(salesFigure)) #this block of code is to work out the sales figure by random number*advertising cost

    updatedBalances = (newBalance + salesFigure - dailyexpenses) #this is to display the newbalnce on the users screen
    print ("newbalance is £:" + str(updatedBalances))
    print ("")

    sold = salesFigure // priceOfProduct - shopPrice
    if (sold > shopPrice):
        lackOfStock = sold - stock
        costProfit = lackOfStock*priceOfProduct #this is a block of code for If statement showing working out for handling products sold and in stock 
        sales = sales - costProfit

        
#output    

    if newBalance >=0:
        print ("stock is fine ")
    else:

        print("we need more stock") #this IF statement is to decide if the stock is okay or more stock is needed 



costs (wholeSalePrice,productPurchased) #these are thevariables set for procedures 
NewBalance = newBalance(newBalance,addvertCost,productPurchased)
SalesFigure = calculateSalesFigures() 
Expenses = expenses()
BalanceUpdate = balanceUpdate()
Error:
please enter the value for itempurchased £50 please enter a value for addvertcost £4 please enter the amount of products you wish to purchase for stock £6 60 Traceback (most recent call last): File "F:\Level 4\Kevin\nadia.py", line 80, in <module> NewBalance = newBalance(newBalance,addvertCost,productPurchased) File "F:\Level 4\Kevin\nadia.py", line 16, in newBalance answer = newBalance-addvertCost-productPurchased #this is to output the new balnace after deducting the advertising cost and the product purchased cost from the new balnace TypeError: unsupported operand type(s) for -: 'function' and 'tuple' >>>

I have added the = sign to call the function but now have another issue. I will post it in the forum. thank you

import random         #this is to import the random number for calculations
initialBalance = 1000  #this is the initial balance £1000
wholeSalePrice = 10    #this is the wholesale price
shopSalePrice = 40    #shops sells the product for £40
addvertCost = 1,20   #advertising cost is between the range of £1-£20
days = 0   

#procedures

def costs (wholeSalePrice,productPurchased):
    calculations = wholeSalePrice*productPurchased #this is to calculte the wholeslae price by the product purchased price
    print (calculations)
    return calculations

def newBalance(newBalance,addvertCost,productPurchased):  #this is to pass the calculations throgh the parameter
    answer = newBalance-addvertCost-productPurchased      #this is to output the new balnace after deducting the advertising cost and the product purchased cost from the new balnace  
    print (answer)
    return answer
    

def calculateSalesFigures(salesFigures): #this is to generate a number to calculate sales on a daily basis
    sales = random.randit(1,50)
    print (sales)
    return sales

def expenses(everyDayExpenses): #this is to calculate the daily expenses 
    dailyExpenses = WholeSalePrice*stock 
    print (dailyExpenses)
    return dailyExpenses

def balanceUpdate():
    updatedBalances = (newBalance + salesFigure - dailyexpenses)#this is the remaining balance after the daily expenses 
    print ("newbalance is £:" + str(updatedBalances))
    print (updatedBalance)
    return updatedBalance



#input

itemPurchased = int(input("please enter the value for itempurchased £"))  #this inforamtion will be displayed for the user to insert the amount
advertisingCost = int(input("please enter a value for addvertcost £"))    #this inforamtion will be displayed for the user to insert the amount
productPurchased = int (input ("please enter the amount of products you wish to purchase for stock £"))  #this inforamtion will be displayed for the user to insert the amount

print ("")

                        
#process

while days>0:
    days = days + 1
    print ("days" + str (days))   #this is the while statement for the loop
    
    randomNumber = random.randint(1,50)          
    salesFigure = (randomNumber*advertisingCost)
    print ("salesFigures is £:" +str(salesFigure)) #this block of code is to work out the sales figure by random number*advertising cost

    updatedBalances = (newBalance + salesFigure - dailyexpenses) #this is to display the newbalnce on the users screen
    print ("newbalance is £:" + str(updatedBalances))
    print ("")

    sold = salesFigure // priceOfProduct - shopPrice
    if (sold > shopPrice):
        lackOfStock = sold - stock
        costProfit = lackOfStock*priceOfProduct #this is a block of code for If statement showing working out for handling products sold and in stock 
        sales = sales - costProfit

        
#output    

    if newBalance >=0:
        print ("stock is fine ")
    else:

        print("we need more stock") #this IF statement is to decide if the stock is okay or more stock is needed 



costs = (wholeSalePrice,productPurchased) #these are thevariables set for procedures 
NewestBalance = newBalance(newBalance,addvertCost,productPurchased)
SalesFigure = calculateSalesFigures() 
Expenses = expenses()
BalanceUpdate = balanceUpdate()
Error:
please enter the value for itempurchased £50 please enter a value for addvertcost £4 please enter the amount of products you wish to purchase for stock £6 Traceback (most recent call last): File "F:\Level 4\Kevin\nadia.py", line 80, in <module> NewestBalance = newBalance(newBalance,addvertCost,productPurchased) File "F:\Level 4\Kevin\nadia.py", line 16, in newBalance answer = newBalance-addvertCost-productPurchased #this is to output the new balnace after deducting the advertising cost and the product purchased cost from the new balnace TypeError: unsupported operand type(s) for -: 'function' and 'tuple' >>>



RE: Unit 18 Procedural Programming Python - j.crater - Dec-17-2017

@kanwal121
Please post your code in Python code tags and error message in error tags.
See help here.
Edit:
Thanks!


RE: Unit 18 Procedural Programming Python - Terafy - Dec-17-2017

You need a naming convention... you used newBalance as a function name and a variable... that's a no-no

while days>0:
    days = days + 1
that loop will never end. Because days will always be >0

updatedBalances = (newBalance + salesFigure - dailyexpenses) #this is to display the newbalnce on the users screen
there's no variable called newBalance or dailyexpenses from line 39 to 58. That why you have that error.

    sold = salesFigure // priceOfProduct - shopPrice
    if (sold > shopPrice):
        lackOfStock = sold - stock
        costProfit = lackOfStock*priceOfProduct #this is a block of code for If statement showing working out for handling products sold and in stock 
        sales = sales - costProfit
bunch of missing variables.

Anyways what j.crater was telling you before. The variable you define in your function are local variables. You can't grab the local variable and use in the main code or other function. You would need to create the variables again.


RE: Unit 18 Procedural Programming Python - kanwal121 - Dec-17-2017

that loop will never end. Because days will always be >0
you have replied to the loop message. What calculations will end the loop please?


RE: Unit 18 Procedural Programming Python - Terafy - Dec-17-2017

I just read your code (I didn't run your code) and pointed what is potentially wrong with it. It you can give the missing information your code would work.