Type Error: Unsupported operand types Int and NoneType [closed]

走远了吗. 提交于 2019-12-11 06:43:58

问题


Hey guys I am working on a python program and I keep getting errors returned from the loop which is supposed to just reprompt the user to enter a number. The problem I am having is that it keeps returning a nonetype which cannot be used to operate on which I need to do in on of the other functions any help is appreciated. Thanks.

( Here's my code, Sorry ahead of time if it is not formatted correctly. )

def getTickets(limit):
   ticketSold=int(input("How many tickets were sold? "))
   if (ticketsValid(ticketSold,limit)):
        return ticketSold
   else:
        getTickets(limit)

#This function checks to make sure that the sold tickets are within the Limit of seats
def ticketsValid(sold,limit):

    if (sold>limit or sold<0):
        print ("ERROR: There must be tickets less than "+str(limit)+" and more than 0")
        return False
    return True
# This function calculates the price of the tickets sold in the section.
def calcIncome(ticketSold,price):
    return ticketSold*(price)

回答1:


You are not returning getTickets(limit) inside your else block:

def getTickets(limit):
   ticketSold=int(input("How many tickets were sold? "))
   if (ticketsValid(ticketSold,limit)):
        return ticketSold
   else:
        return getTickets(limit)  # You need to use return here



回答2:


Python functions return None by default, if nothing is returned. You have an else clause that calls a function, but does nothing with it, and the function ends there, therefore if it goes down that control flow path, you will return None from that function.



来源:https://stackoverflow.com/questions/22416093/type-error-unsupported-operand-types-int-and-nonetype

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!