Python Forum
TypeError: can't multiply sequence by non-int of type 'str'
Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
TypeError: can't multiply sequence by non-int of type 'str'
#1
Hello again, this time a type error is appearing with the following error (scroll down to the bottom of the post). The aim of this part is for the package to be multiplied by the discount then to be printed out in Pass_Total(). E.g. Pass_Calculate() 7 * 0.6 =  "The total cost is: $ 4.2". I tried to recreate/replicate other code that was similar to this one but did not get any closer. 

def Pass_Show():
    print("Aussie Pass!")
    print("Please select a package and discount depending on age.")
    print("E.g. Package = 7")
    Pass_Package()

def Pass_Package():
    print("7 Day Pass – $139.95")
    print("14 Day Pass - $239.95")
    print("30 Day Pass - $500.00")
    Pass_Discount()

def Pass_Discount():
    print("Children (Under 15) - 60% off")
    print("Students (Over 15 & less than 22) - 40% off")
    print("Seniors (60 or over) - 50% off")
    Pass_Cost()

def Pass_Total():
    cost = Pass_Cost()
    total = Pass_Calculate(cost)
    print("The total cost is: $" + str(total))

def Pass_Cost():#User inputs the type of package they suit and discount
    cost=list()
    package = input('Package: ')
    if package == '7' or '14' or '30': #If they enter those values they will move onto choosing their discount
        print("Proceed...")
        cost.append(package)
        
    if package not in('7','14','30'):
        Pass_Cost()#If they do not enter any of those values they will be prompted to ask again 
    
    p = int(package)
    


    discount = input("Discount: ")     
    if discount == "Children":
        discount == 0.60
        cost.append(discount)
        Pass_Calculate(cost)
    if discount == "Students":
        discount == 0.50
        cost.append(discount)
        Pass_Calculate(cost)
    if discount == "Seniors":
        discount == 0.40
        cost.append(discount)
        Pass_Calculate(cost)
    if discount not in ("Children","Students","Seniors"):
        Pass_Cost()

    d = int(discount)
    
    return p, d
    
    
def Pass_Calculate(cost):
    return (cost[0] * cost[1]) #Calculates the cost from their chosen package and discount e.g. 7 * 0.6
                              #7 being the chosen package (7 Day Pass) and 0.6 being Children discount 




Pass_Show()

Traceback (most recent call last):
  File "F:\Computing\Term 3\Aussie Pass.py", line 67, in <module>
    Pass_Show()
  File "F:\Computing\Term 3\Aussie Pass.py", line 6, in Pass_Show
    Pass_Package()
  File "F:\Computing\Term 3\Aussie Pass.py", line 12, in Pass_Package
    Pass_Discount()
  File "F:\Computing\Term 3\Aussie Pass.py", line 18, in Pass_Discount
    Pass_Cost()
  File "F:\Computing\Term 3\Aussie Pass.py", line 43, in Pass_Cost
    Pass_Calculate(cost)
  File "F:\Computing\Term 3\Aussie Pass.py", line 61, in Pass_Calculate
    return (cost[0] * cost[1]) #Calculates the cost from their chosen package and discount e.g. 7 * 0.6
TypeError: can't multiply sequence by non-int of type 'str'
Reply


Messages In This Thread
TypeError: can't multiply sequence by non-int of type 'str' - by Beatenberg - Oct-09-2017, 03:57 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  TypeError: unsupported operand type(s) for /: 'str' and 'int' enderfran2006 1 2,741 Oct-01-2020, 09:41 AM
Last Post: buran
  TypeError: can't multiply sequence by non-int of type 'complex' FeverDream 2 12,884 Jul-12-2018, 11:08 PM
Last Post: DeaD_EyE
  TypeError: can't multiply sequence by non-int of type 'str' rmpadilla73 4 30,566 May-28-2018, 12:21 AM
Last Post: py_learner
  python!TypeError: can't multiply sequence by non-int of type 'float' shaywune 2 9,612 Sep-24-2016, 04:33 PM
Last Post: shaywune

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020