返回一个布尔值,而不是Python中包含True或False的字符串
我对返回一个布尔值,而不是Python中包含True或False的字符串,python,python-2.7,boolean,Python,Python 2.7,Boolean,我对True或False布尔值有一个小问题 我已经定义了一个过程weekend,它以字符串作为输入,如果“星期六”或“星期日”返回布尔值True,否则返回False 这是我的周末功能: def weekend(day): if day == 'Saturday' or day == 'Sunday': return "True" else: return "False" 以下是我的输出: >>>print weekend('Mo
True
或False
布尔值有一个小问题
我已经定义了一个过程weekend
,它以字符串作为输入,如果“星期六”或“星期日”返回布尔值True,否则返回False
这是我的周末
功能:
def weekend(day):
if day == 'Saturday' or day == 'Sunday':
return "True"
else:
return "False"
以下是我的输出:
>>>print weekend('Monday')
False
>>>print weekend('Saturday')
True
>>>print weekend('July')
False
但正如您在代码中看到的,我返回一个字符串,但我想返回一个布尔值真或假
我该怎么做
谢谢。试试这个:
def weekend(day):
if day == 'Saturday' or day == 'Sunday':
return True
else:
return False
或者这个:
def weekend(day):
return day == 'Saturday' or day == 'Sunday'
或者更简单:
def weekend(day):
return day in ('Saturday', 'Sunday')
def weekend(day):
return day in ('Saturday', 'Sunday')
无论如何:在Python中,布尔值是True
和False
,没有引号-但也知道存在多个假值-即,如果在条件中使用,则其行为与False
完全相同。例如:”
,[]
,None
,{}
,0
,()
,这是编写函数并输出布尔值的最短方法
def weekend(day):
return day == 'Saturday' or day == 'Sunday'
或
您正在执行返回“True”和返回“False”的操作,这使它成为字符串而不是布尔值您的问题是在True
周围使用了标记,删除这些标记,它就会起作用。下面是编写此方法的一些更具python风格的方法:
def weekend(day):
if day.lower() in ('saturday', 'sunday'):
return True
else:
return False
检查时使用.lower()
是忽略大小写的好方法。您还可以使用in
语句查看字符串列表中是否找到该字符串
这是一条超短的路
def weekend(day):
return day.lower() in ('saturday', 'sunday')
如果您想返回一个布尔值而不是字符串,只需去掉围绕True和False的引号'
试试这个:
def weekend(day):
""" Return True if day is Saturday or Sunday otherwise False."""
return day in ('saturday', 'sunday'):
或者正如我前面的其他人所说:
def weekend(day):
""" Return True if day is Saturday or Sunday otherwise False."""
return day == 'Saturday' or day == 'Sunday'
只要去掉“True”
/“False”
,当然0.
也是假的(更不用说0j
和0L
)。
def weekend(day):
""" Return True if day is Saturday or Sunday otherwise False."""
return day == 'Saturday' or day == 'Sunday'