#python
Вопрос:
Эта программа работает неправильно, она не выдает мне значение первой введенной бутылки и неправильно суммирует значение. Я пытался понять, в чем проблема, но не могу ее понять.
def main():
CAN = 0
GLASS_BOTTLE = 1
PLASTIC_SMALL = 2
PLASTIC_NORMAL = 3
PLASTIC_BIG = 4
NO_DEPOSIT_BOTTLE = 5
CAN_DEPOSIT = 15 # cents
GLASS_BOTTLE_DEPOSIT = 10 # cents
PLASTIC_SMALL_DEPOSIT = 10 # cents
PLASTIC_NORMAL_DEPOSIT = 20 # cents
PLASTIC_BIG_DEPOSIT = 40 # cents
print("Welcome to the bottle recycling.")
print("Bottle types with the corresponding numbers:")
print("Can: 0")
print("Glass bottle: 1")
print("Plastic bottle (0.33l): 2")
print("Plastic bottle(0.5l): 3")
print("Plastic bottle (1.5l): 4")
print("No deposit bottle: 5")
bottle = int(input("Enter the type of the first bottle. Stop with a negative number:n"))
c=0
sum = 0
while bottle >= 0:
sum=sum c
bottle = int(input("Enter the type of the next bottle. Stop with a negative number:n"))
if 0:
c = 15
elif 1:
c = 10
elif 2:
c = 10
elif 3:
c = 20
elif 4:
c = 40
e = sum//100
while sum > 100:
sum-100
print("You got", e, "u20ac and",sum,"cents from the bottles")
main()
Комментарии:
1.
if 0
должно бытьif bottle == 0
, и то же самое для всех остальныхif
утверждений.2. Вы также никогда ничего не делаете с первой бутылкой.
3. Применяйте условия с переменной бутылкой
4. @Бармар, я это вижу. Как бы мне нужно было изменить код, чтобы подсчитать также первую бутылку? Раньше я занимался только C, так что python для меня в новинку
5. Логика та же, что и в C. Вы могли бы поместить
if
блоки в началеwhile
цикла, а не после того, как он попросит следующую бутылку.
Ответ №1:
Как уже говорилось, проблема в состоянии. Первое условие всегда будет Ложным.
bool(0) == False
но второе всегда будет Верным
bool(1) == True
условие должно проверять стоимость бутылки, поэтому
if bottle == 0:
и так далее
Кроме этого, пожалуйста, не используйте sum в качестве имени переменной, это встроенная функция