Вероятно, первое, что вы замечаете питон, что соответствует отступам не просто хорошая идея, это является обязательным. Опытные программисты, пишут ли они Python или нет, всегда делают это так, так что это не имеет большого значения. Используйте пробелы (4 - это норма) и избегайте вкладок - измените свой редактор, чтобы заменить вкладку на 4 пробела.
Плохая идея использовать поплавок на денежные суммы из-за округления. Лучше использовать большой тип, например Decimal, или хранить сумму как int в центах, а затем вставлять десятичную точку при отображении. Для простоты я застрял с использованием float
, но будьте осторожны.
У вас есть ряд логических ошибок в коде, а также проблемы со стилем. Стиль программирования - это не просто то, что выглядит красиво, это то, сможете ли вы понять свой код позже, когда вы вернетесь к нему.
Стиль точек:
Не используйте заглавный переменные. По соглашению ВЕРХНИЙ зарезервирован для констант
Используйте осмысленные имена переменных, а не А и В
Вот исправленная программа, с комментариями. Пожалуйста, прочитайте комментарии! :
# This is a comment, it is ignored by python
# This is used later on by sys.exit()
import sys
# Logically the user would enter "Yes" or "No" to this quesion,
# not US or Canada!
ans = raw_input("Do you live in the US or Canada? ") # Notice the space after ?
# Note how the condition has been expanded
if ans == "US" or ans == "Canada":
print "Welcome!"
else:
print "We're sorry, but your country is currently not supported!"
# Now what? Your program just carried on. This will stop it
sys.exit()
# I'm using a floating point number for simplicity
amount = float(raw_input("How much is your package? "))
# I changed this around, since 50 is also >= 25!
# However, this is strange. Usually the more you spend the LESS the shipping!
# You were missing the : after the condition
if amount >= 50:
print "Your shipping is $8.00"
amount += 8 # This adds 8 to the amount
elif amount >= 25:
print "Your shipping is $4.00"
amount += 4 # This adds 4 to the amount
else:
print "Congrats, your shipping is free!"
# print the amount showing 2 decimal places, rounding
print "Amount to pay: $%.2f" % (amount)
У вас есть еще много дел. Может быть, справиться с тем, что пользователь вводит более низкие или смешанные буквенные буквы для названия страны - и спросите себя, является ли вопрос логичным для пользователя.
Позже вы можете захотеть иметь список допустимых стран и использовать in
, чтобы проверить, введен ли пользователь в действительную страну. Затем разверните его, чтобы использовать словарь, указав символы валюты, суммы доставки и курсы пересчета валют для каждой страны.
Наслаждайтесь Python!
1. отступ, 2. 'if A ==" US "или A ==" Канада ":' –
3. Забудьте закрыть круглые скобки на строке 'B ='. – Kevin
Если вы сделали это сами, это удивительно для 2-дневного ученика. Я должен сказать – ytpillai