(初学者问题)为什么我的格式化字符串不能正常工作?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(初学者问题)为什么我的格式化字符串不能正常工作?相关的知识,希望对你有一定的参考价值。
我正在使用Vs Code软件来练习我的编码技巧。如果两项投入都高于100(收入)和70(信用评分),我试图让结果出来'是'。它似乎只担心信用评分的范围,而不是收入。因此,无论收入有多高或多低,它都只根据信用评分输入给出结果。任何人都可以指出我的代码中的任何错误?此外,没有语法错误提醒我任何错误。有人能搞清楚吗?
P.s我明白我可以用另一种方式编写代码,但我正在尝试使用格式化字符串,因为我认为从长远来看,当我开始更复杂的项目时,这将是有益的。我是编码的新手,所以我不确定格式化的字符串是否真的有必要,但我更喜欢它们。
customer_income = input("Annual Salary: ")
customer_credit = input("Credit Score?: ")
good_income = customer_income >= "100"
good_credit = customer_credit >= "70"
message = "Yes" if good_income and good_credit else "No"
print(message)
如果两项投入都高于100(收入)和70(信用评分),我试图让结果出来'是'。结果忽略收入输入,仅关注信用评分。但如果信用评分高于99,也会返回'否'。
答案
哦,我知道,如果你使用int
,你必须将它转换为input
:
customer_income = input("Annual Salary: ")
customer_credit = input("Credit Score?: ")
good_income = int(customer_income) >= 100
good_credit = int(customer_credit) >= 70
message = "Yes" if good_income and good_credit else "No"
print(message)
与
99
和70
的输出是no
,与100
和70
是yes
另一答案
您正在尝试比较字符串而不是整数。它将运行,但比较基于ASCII顺序。
while True:
customer_income = input("Annual Salary: ")
try:
good_income = int(customer_income) >= 100
break
except ValueError:
print('Please type a number.')
while True:
customer_credit = input("Credit Score?: ")
try:
good_credit = int(customer_credit) >= 70
break
except ValueError:
print('Please type a number.')
message = "Yes" if good_income and good_credit else "No"
print(message)
另一答案
您正在尝试比较字符串,而您实际期望的是比较这些字符串表示的int
s。
因此,您需要使用int
函数将这些字符串解析为int()
:
customer_income = input("Annual Salary: ")
customer_credit = input("Credit Score?: ")
good_income = int(customer_income) >= "100"
good_credit = int(customer_credit) >= "70"
message = "Yes" if good_income and good_credit else "No"
print(message)
以上是关于(初学者问题)为什么我的格式化字符串不能正常工作?的主要内容,如果未能解决你的问题,请参考以下文章