将字符串转换为假布尔值



我想知道如何将字符串值转换为 False 布尔值,因为每次运行代码时它都会返回一个 True 值。

high_income = input(“Do you have a high income?:”)
credit = input(“Do you have a credit line?”)
If high_income and credit: 
Print(“eligible for loan”)
else:
print(“not eligible”)

if语句评估你给它的东西作为布尔值(bool(,并作用于它的真值。如果将字符串计算为布尔值,则False空字符串''True任何非空字符串。

因此,无论您输入什么,它都会始终评估为True,除非您什么都不输入。

你想要的是计算一个特定的字符串,所以你有两个选择;第一个是直接检查表示"True"的字符串:

if high_income.lower() in ['yes', 'y', 'true']:

请注意,.lower()会导致答案转换为小写,因此'Yes'也是True

第二种是评估用户键入的内容并使用该值:

if eval(high_income):

但这通常是一个坏主意,因为无论用户类型是什么,都将被评估为有效的 Python 表达式,这可能会导致意外结果甚至不安全的情况。此外,如果用户键入2+2,那也是True,因为它的计算结果为4的整数值,并且任何未0的整数值始终True

high_income = input("Do you have a high income?:")    
credit = input("Do you have a credit line?")   
if high_income == 'yes' and credit == 'yes':  
print("ligible for loan")
else:
print("not eligible")
#output
#Do you have a high income?:yes
#Do you have a credit line?yes
#ligible for loan

相关内容

  • 没有找到相关文章

最新更新