Python si elif else déclaration
Je suis en train de créer un programme en python qui calcule le coût de l'expédition.
Cependant, je ne peux pas exécuter le programme à l'endroit où il fonctionne correctement.
Ce que jamais mon total montant est le même sort que 6 $US et de 8 $pour le Canada. Je n'arrive pas à faire passer.
total = raw_input('What is the total amount for your online shopping?')
country = raw_input('Shipping within the US or Canada?')
if country == "US":
if total <= "50":
print "Shipping Costs $6.00"
elif total <= "100":
print "Shipping Costs $9.00"
elif total <= "150":
print "Shipping Costs $12.00"
else:
print "FREE"
if country == "Canada":
if total <= "50":
print "Shipping Costs $8.00"
elif total <= "100":
print "Shipping Costs $12.00"
elif total <= "150":
print "Shipping Costs $15.00"
else:
print "FREE"
source d'informationauteur sakefon
Vous devez vous connecter pour publier un commentaire.
ci-dessous est à code fixe.
Vous ne pouvez pas comparer des Chaînes de valeurs numériques. Au lieu de convertir un int en premier et ensuite les comparer.
Par exemple:
Variables afin d'éviter les répétitions pourraient aider trop.
Lorsque vous comparez des chaînes il le fait de manière lexicographique, comme dans un annuaire téléphonique. Par exemple:
"a" < "b"
: Vrai"bill" < "bob"
: Vrai"100" < "3"
: VraiSi vous voulez comparer des nombres dans l'ordre que nous les compter, vous devez utiliser le type int.
total = int(raw_input('What is the total amount for your online shopping?'))
Puis changer tous les littéraux de chaîne dans votre code comme
"50"
pour les littéraux entiers comme50
.De la comparaison de chaînes numériquement. C'est impossible, comme la comparaison de
apple
avecorange
lequel est le plus grand? L'ordinateur ne comprends pas, il a besoin de comparer les taille.Pour ce faire, nous avons besoin de convertir un nombre entier. Utiliser le
int()
fonction. Ici:Espérons que cette aide!
Ce:
crée une chaîne de caractères. Comparaison entre la chaîne et les chiffres ne sont pas très bien définis. Vous avez besoin de convertir le total à un nombre premier. Exemple:
(il ignore les erreurs de saisie de manutention tels que lors de la saisie de l'utilisateur n'est pas un nombre)
Noter que les changements de comportement en Python 2.x et Python 3.x. Dans Python 2.x:
tandis que dans Python 3.x:
Lors de l'utilisation de raw_input votre saisie de l'utilisateur est une chaîne de caractères et vous ne pouvez pas calculer les nombres dans le format des chaînes de caractères. Si vous avez besoin de changer votre entrée de chaîne en un entier afin de rendre les comparaisons.
Vous pouvez le faire comme ceci:
C'est comme l'ajout de pommes & maisons d'obtenir le total de ce qui est impossible. Il doit être du même type, dans ce cas, de type entier, pour obtenir le total. Utilisez le int() pour convertir la chaîne en un entier.
pourrait être aussi (mais moins préférable):
Je suis juste un plus frais ici et de programmation python. J'ai essayé de résoudre votre problème. L'espoir, celui-ci pourrait vous aider.