日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python布尔值print_python中的用户输入布尔值

發布時間:2023/12/16 python 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python布尔值print_python中的用户输入布尔值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我試圖讓用戶輸入他們是否喜歡辛辣的食物,輸出應該是一個布爾值,但我似乎沒有得到下面代碼的輸出:

def likes_spicyfood():

spicyfood = bool(input("Do you like spicy food? True or False?"))

if spicyfood == ("True"):

print("True")

if spicyfood == ("False"):

print("False")

return(likes_spicyfood)

提示:使用空輸入進行測試。

嗯:1。任何非空字符串輸入都將計算trust-y;和2。兩個布爾值都不等于字符串"True"或"False"。同樣,等式計算中的括號也是多余的。你可以跳過bool;"True" =="True"。

為什么要將用戶輸入轉換為布爾值,然后將其與字符串進行比較?只是不要轉換它。

在輸入正常工作之前刪除bool語句

另外,如果要返回布爾值,為什么要打印字符串("true")。而是使用返回true

嘗試將您的輸入轉換為bool不會像這樣工作。python考慮任何非空字符串True。因此,執行bool(input())基本上與執行input() != ''相同。即使輸入不是"True",兩者都返回true。只需將直接給出的輸入與字符串"True和"False"進行比較:

def likes_spicyfood():

spicyfood = input("Do you like spicy food? True or False?")

if spicyfood =="True":

return True

if spicyfood =="False":

return False

注意,如果輸入不是"True或"False",上述代碼將失敗(返回None而不是布爾值)。如果原始輸入無效(即不是"True或"False"),請考慮返回默認值或重新要求用戶輸入。

是的,但是為什么要使用兩個if語句而不是elif?

嗯,主要是想和操作代碼@anton保持一致。

老實說,這是相當令人困惑的為什么OP決定寫這樣一個奇怪的程序,我想他們只是練習。

是的,可能是@a.smoliak。我不清楚他為什么要嘗試返回他的函數對象,所以這是我自由刪除的一件事。對了,回答得很好!我肯定會投贊成票。

這是我第一次使用python,我正在做家庭作業,我根本不知道if函數,所以這就是為什么我想出了一個令人困惑的程序,我很抱歉。我們剛剛學會了回歸,如果是這樣的話,那就是為什么他們要求我們在每個函數結束時回歸的原因。

不用擔心@user5556453。我們都必須從某個地方開始:(-)但是,在發布下一篇文章之前,我建議您參加巡演并訪問幫助中心,熟悉堆棧溢出的工作原理。

此功能是否打印出用戶答案?

不,不是@user5556453。這個函數名為likes_spicyfood,所以我假設它應該返回一個布爾值,表示用戶是否喜歡辛辣的食物。如果要打印用戶的答案,只需執行print(likes_spicyfood())。

哦,它應該返回一個布爾值!

如果您確定輸入正確,可以執行以下操作:

def likes_spicyfood():

spicyfood = input("Do you like spicy food? True or False?")

return spicyfood.title() =="True"

為什么不更進一步,只寫return input("Do you like spicy food? True or False?") =="True"。

@A.首先是Smoliak可讀性。但是,編程有很多選擇。

是的@a.smoliak,安東說的對。從python zen中:"可讀性很重要。";-)當然,這不是一個硬性規則。在某些情況下,必須將性能置于可讀性之上,但在Python中,這些情況非常罕見。

在您的使用中,將string轉換為bool將不是一個有效的解決方案。在Python中,如果將字符串轉換為bool,例如:bool("False"),布爾值將為True,這是因為如果將非空字符串轉換為bool,它將始終轉換為True,但如果嘗試將空字符串轉換為bool,則會得到False。

為了解決你的問題,必須做一些改變。首先,您的代碼示例甚至不調用您詢問用戶是否喜歡辛辣食物的函數,所以在代碼的最底層調用它。埃多克斯1〔18〕

第二件事你必須改變的是,你必須簡單地使用用戶類型True或False,就像你在代碼中使用的那樣,但是不要將值從string轉換為bool,只需取string并將其與'True'或'False'進行比較,這里是完整的代碼:

def likes_spicyfood():

spicyfood = input("Do you like spicy food? True or False?")

if spicyfood =="True":

print("The user likes spicy food!")

if spicyfood =="False":

print("The user hates spicy food!")

return likes_spicyfood

likes_spicyfood()

您還將看到我返回了一些多余的括號:當將輸入值與'True'或'False'進行比較時,以及在重新執行likes_spicyfood時。下面介紹如何將字符串轉換為bool

試試這個。在0和1中要求答案,然后將其轉換為布爾值。就像我在下面的例子中所做的那樣

isTrue = True

while isTrue:

isTrue = bool(int(input("Continue? 1 for yes, 0 for no:")))

不要將輸入轉換為bool。以后再做一個檢查它是真是假的條件

像這樣:)

def likes_spicyfood():

spicyfood = input("Do you like spicy food? True or False?")

while spicyfood!="True" or"False":

spicyfood=input("Do you like spicy food? True or False?")

if spicyfood == ("True"):

print("True")

if spicyfood == ("False"):

print("False")

return(likes_spicyfood)

。

我該怎么做?

@用戶5556453更新了解決方案

總結

以上是生活随笔為你收集整理的python布尔值print_python中的用户输入布尔值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。