True
或False
布尔值存在小问题。
我定义了一个过程weekend
,它接受一个字符串作为输入,否则返回布尔True if 'Saturday' or 'Sunday'
和False
。
这是我的weekend
功能:
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
但正如您在我的代码中所看到的,我正在返回字符串但我想返回布尔 True or False
。
我该怎么做?
感谢。
答案 0 :(得分:6)
试试这个:
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')
无论如何:在Python中,布尔值为True
和False
,没有引号 - 但也知道存在多个 falsy 值 - 也就是说,行为准确的值如果在条件中使用False
。例如:""
,[]
,None
,{}
,0
,()
。
答案 1 :(得分:2)
这是编写函数并输出布尔值
的最短方法def weekend(day):
return day == 'Saturday' or day == 'Sunday'
或
def weekend(day):
return day in ('Saturday', 'Sunday')
答案 2 :(得分:1)
您的问题是在"
周围使用True
标记,删除它们会有效。以下是编写此方法的更多pythonic方法:
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')
答案 3 :(得分:0)
def weekend(day):
if day == 'Saturday' or day == 'Sunday':
return True
else:
return False
你正在回归" True"并返回"错误"这使它成为一个字符串而不是布尔
答案 4 :(得分:0)
如果你想返回一个布尔值而不是一个字符串,只需删除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'