我想知道如何将字符串值转换为 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