[英]Python: Convert String containing Multiple True / False / Parenthesis into a Boolean
[英]Return a Boolean instead of a string containing True or False in Python
我對True
或False
布爾值有一個小問題。
我已經定義了一個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中,布爾值是True
和False
,不帶引號-但也知道存在多個偽造的值-也就是說,在條件中使用時,其行為與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.