为什么我要继续制作我的"无"使我的程序在Python中运行的资本

时间:2017-04-09 07:56:55

标签: python-3.x

这是我想要了解的代码。它接收用户输入,我关心的是它只有在我键入"否",而不是" no"。

时才有效。
houseprice = int(input("please enter the house cost: $"))

while houseprice <= 0:
    print("please enter a valid number try again")
    houseprice = int(input("please enter the house cost: $"))  

familyincome = int(input("please enter your family income: $"))
houseowened = input("have you owened a house before? ('Yes' or 'No')")
while not houseowened == 'Yes' and houseowened == 'No':
    print("please enter a valid answer")
    houseowened = input("have you owened a house before? ('Yes' or 'No')")    

if houseprice > 500000 or familyincome > 100000 or houseowened == 'Yes':
    print("eligeble")
else:
    if houseowened == 'No' or familyincome < 100000 or houseprice < 500000 :
        print("not eligible")

2 个答案:

答案 0 :(得分:1)

查看代码中的比较。他们正在与字符串"No"进行比较。如果你希望它接受小写形式,也许你应该在houseowned == 'No'的任何地方做这样的事情:

(houseowened.lower() == 'no')

此变体将接受任何大小写。请务必对所有yes es。

进行相应的更改

答案 1 :(得分:1)

在比较几乎所有语言的字符串时,这是一个字面比较。

以下代码:

if(MyString == "No")

只有在字符串为"No"时才会通过。 "no""No "" no"和其他此类示例都不会通过检查,因为它们不同。

大多数语言都提供了一些工具,可以让您的生活更轻松。

对于Python,这称为lower(),它将字符串的所有大写字母转换为小写。

所以"Foo".lower();会给你"foo"

第二个是strip()。这个删除字符串末尾的前导和尾随'空格'字符,因此" Foo "将成为“Foo”

使用这两者使得检查字符串值变得更加简单。