@tarroma9

Как построить цикл в python, без ошибки?

Подскажите пожалуйста, как сделать цикличность в простой программе python.
usd = 65.59
euro = 75.37



new_exchange = []



money = int (input("Введите сумму, которую хотите обменять в валюту    "))
exchange = input ("Выберите валюту (USD или Euro)   ")


while new_exchange == ():
	if exchange.lower() == "usd":
	result_usd = money * usd
	print("После обмена вы получите", result_usd, "долларов сша")

	elif exchange.lower() == "euro":
	result_euro = money * euro
	print("После обмена вы получите", result_euro, " евро")
	
	new_exchange = input ("Хотите снова обменять?? ")
	if new_exchange.lower == "да"


print("Работа программы завершена! ")


В результате выдает ошибку:

File "C:\python\test.py", line 17
    result_usd = money * usd
             ^
IndentationError: expected an indented block


Если сделать без цикла, то всё работает:

usd = 65.59
euro = 75.37

money = int (input("Введите сумму, которую хотите обменять в валюту    "))
exchange = input ("Выберите валюту (USD или Euro)   ")


if exchange.lower() == "usd":
	result_usd = money * usd
	print("После обмена вы получите", result_usd, "долларов сша")

elif exchange.lower() == "euro":
	result_euro = money * euro
	print("После обмена вы получите", result_euro, " евро")
	
print("Работа программы завершена! ")


Результат:

Введите сумму, которую хотите обменять в валюту    4
Выберите валюту (USD или Euro)   euro
После обмена вы получите 301.48  евро
Работа программы завершена!


Я еще новичок в python, только изучаю цикл while. И в данном случае необходимо, чтобы программа спрашивала, продолжить ли еще и если да, то заново запускала цикл. Но только уже к результату прибавлялось новое значение. Возможно тут слишком очевидная ошибка, но, повторюсь, я только начал изучать этот язык..
  • Вопрос задан
  • 535 просмотров
Решения вопроса 1
@Mirinum
В этой программе ты считаешь не то сколько ты долларов или евро получишь, ты считаешь наоборот -- сколько рублей получишь за N валюты
Так как тебе надо программа работать будет c таким кодом

usd = 0.01524622655
euro = 0.01326787846

def exchng():
  money = int(input("Введите сумму, которую хотите обменять в валюту   "))
  exchange = input("Выберите валюту (USD или Euro)   ")
  if exchange.lower() == "usd":
    result_usd = money * usd
    print("После обмена вы получите", result_usd, "долларов сша")
  elif exchange.lower() == "euro":
    result_euro = money * euro
    print("После обмена вы получите", result_euro, " евро")

new_exchange = 1

while new_exchange == 1:
  exchng()
  rep = input("Хотите снова обменять?? (Y/N)   ")
  if(rep.upper() == "N"):
    print("Работа программы завершена! ")
    new_exchange = 0
    break
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Keste
@Keste
test1
Ошибка в отсупах(У тебя в цикле после ifов нужно добавить отступы).
Python чувствителен к регистру и отступам. - Это его главная фишка!
Один отступ это 4 пробела или одина табуляция, если использовать и так и сяк то тоже будет ошибка!
P.S. знаю что я не первый ответил но решил ответить!
Ответ написан
@bbkmzzzz
IndentationError: expected an indented block <- ошибка отступов. Питон чувствителен к регистру и отступам. В блоках нужно делать отступ, по умолчанию 4 пробела. Не стоит использовать табуляции:
x = 5
if x == 10:
    print('x == 10')
elif x == 3:
    print('x == 3')
else:
    print('x что-то странное')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы