0

True我对orFalse布尔值有一个小问题。

我已经定义了一个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

但是正如您在我的代码中看到的那样,我正在返回一个字符串,但我想返回一个Boolean True or False

我怎样才能做到这一点?

谢谢。

4

5 回答 5

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 中,布尔值是Trueand False,不带引号 - 但也知道存在几个虚假值 - 也就是说,False在条件中使用的值的行为完全一样。例如:"", [], None, {}, 0, ().

于 2013-08-15T15:33:32.573 回答
2

这是编写函数并输出布尔值的最短方法

def weekend(day):
    return day == 'Saturday' or day == 'Sunday'

或者

def weekend(day):
    return day in ('Saturday', 'Sunday')
于 2013-08-15T15:33:57.737 回答
1

您的问题是"在 周围使用标记True,删除它们,它将起作用。这里有一些更 Pythonic 的方法来编写这个方法:

def weekend(day):
    if day.lower() in ('saturday', 'sunday'):
        return True
    else:
        return False

使用.lower()when 检查是忽略大小写的好方法。您还可以使用该in语句查看是否在字符串列表中找到该字符串

这是一个超短的方法

def weekend(day):
  return day.lower() in ('saturday', 'sunday')
于 2013-08-15T15:49:41.270 回答
0
def weekend(day):
    if day == 'Saturday' or day == 'Sunday':
        return True
    else:
        return False

你正在做 return "True" 并 return "False" 这使它成为一个字符串而不是布尔值

于 2013-08-15T15:35:02.440 回答
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' 
于 2015-07-12T18:31:15.470 回答