J'utilise le logiciel Vs Code pour pratiquer mes compétences en programmation. J'essaie de faire sortir les résultats «Oui» si les deux entrées sont supérieures à 100 (revenu) et 70 (pointage de crédit). Il semble ne s'inquiéter que de la fourchette de la cote de crédit et non du revenu. Ainsi, quel que soit le niveau ou le niveau de revenu, il donne des résultats basés uniquement sur le pointage de crédit. Quelqu'un peut-il signaler des erreurs dans mon code? De plus, aucune erreur de syntaxe ne m'avertit de tout problème. Quelqu'un peut-il comprendre cela?
P.s Je comprends que je pourrais écrire le code d'une autre manière, mais j'essaie d'utiliser des chaînes formatées car je pense qu'il sera avantageux de l'utiliser à long terme lorsque je démarre des projets plus complexes. Je suis nouveau dans le codage, donc je ne suis pas sûr si les chaînes formatées sont vraiment nécessaires, mais je les préfère.
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)
J'essaie de faire sortir les résultats «Oui» si les deux entrées sont supérieures à 100 (revenu) et 70 (cote de crédit). Les résultats ignorent l'entrée de revenu et se concentrent uniquement sur la cote de crédit. Mais retournera également «Non» si la cote de crédit est supérieure à 99.
3 Réponses :
Oh je vois, vous devez le convertir en int si vous utilisez 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)
La sortie avec
99et70estno, et avec100et70 code > estoui
Vous essayez de comparer des chaînes mais pas des entiers. Il fonctionnera mais la comparaison est basée sur l'ordre 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)
Ahhh ça a du sens merci! Merci également pour les fonctions supplémentaires, je suppose que celles-ci aideront également à gérer les entrées décimales.
Vous essayez de comparer des chaînes, alors que ce que vous attendez réellement est de comparer les int s représentés par ces chaînes.
Par conséquent, vous devez analyser ces chaînes à strong> un int avec la fonction 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)