簡體   English   中英

在Python中返回布爾值而不是包含True或False的字符串

[英]Return a Boolean instead of a string containing True or False in Python

我對TrueFalse布爾值有一個小問題。

我已經定義了一個weekend程序,將字符串作為輸入, True if 'Saturday' or 'Sunday'返回Boolean 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

我怎樣才能做到這一點?

謝謝。

嘗試這個:

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中,布爾值是TrueFalse ,不帶引號-但也知道存在多個偽造的值-也就是說,在條件中使用時,其行為與False完全一樣。 例如: ""[]None{}0()

這是編寫函數並輸出布爾值的最短方法

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

要么

def weekend(day):
    return day in ('Saturday', 'Sunday')

您的問題是在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')
def weekend(day):
    if day == 'Saturday' or day == 'Sunday':
        return True
    else:
        return False

您正在做的是返回“ 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' 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM