Loading...
kirilyordanov108 avatar kirilyordanov108 0 Точки

Python - 3. Конзолен междувалутен конвертор*

Здравейте,

Търсих из форума решение на задачата с Python, но не успях да намеря.

 >>>   Напишете програма за конвертиране на парична сума от една валута в друга. Трябва да се поддържат следните валути: BGN, USD, EUR, GBP. Използвайте следните фиксирани валутни курсове:

Курс

USD

EUR

GBP

1 BGN

1.79549

1.95583

2.53405

Входът се състои от три реда:

  1. сума за конвертиране - реално число
  2. входна валута - текст
  3. изходна валута - текст

Изходът е едно число – преобразуваната сума по посочените по-горе курсове, закръглен до 2 цифри след десетичната точка.    >>>

От Programming Basic съм и много бих се радвал да помогнете с просто решение, предполагам, че трябва да се ползва If- Else, но в момента решавам задачите от Прости операции и пресмятания и синтаксиса не ми е познат.

Благодаря предватително!

Тагове:
0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

Пусни код да видим какво си направил. Да if else или switch e подхода. Но като цяло има много начини.

0
MishoMoney avatar MishoMoney 16 Точки

Лесно решение със знанията от първата лекция, когато излиза тази задача, мисля че няма...

Ето го моят код

 

 

usd_bg_ex_rate = 1.71
eur_bg_ex_rate = 1.96
gbp_bg_ex_rate = 2.22

amount = float(input('Enter amount: '))
currency_input = input('Enter currency to convert: ')
currency_output = input('Enter currency to convert into: ')
output = 0

if currency_input == 'BGN':
    if currency_output == 'USD':
        output = amount/usd_bg_ex_rate
    elif currency_output == 'EUR':
        output = amount / eur_bg_ex_rate
    elif currency_output == 'GBP':
        output = amount / gbp_bg_ex_rate

if currency_input == 'USD':
    if currency_output == 'BGN':
        output = amount * usd_bg_ex_rate
    elif currency_output == 'EUR':
        output = amount * usd_bg_ex_rate
        output = output / eur_bg_ex_rate
    elif currency_output == 'GBP':
        output = amount * usd_bg_ex_rate
        output = output / gbp_bg_ex_rate

if currency_input == 'EUR':
    if currency_output == 'BGN':
        output = amount * eur_bg_ex_rate
    elif currency_output == 'USD':
        output = amount * eur_bg_ex_rate
        output = output / eur_bg_ex_rate
    elif currency_output == 'GBP':
        output = amount * eur_bg_ex_rate
        output = output / gbp_bg_ex_rate

if currency_input == 'GBP':
    if currency_output == 'BGN':
        output = amount * gbp_bg_ex_rate
    elif currency_output == 'USD':
        output = amount * gbp_bg_ex_rate
        output = output / usd_bg_ex_rate
    elif currency_output == 'EUR':
        output = amount * gbp_bg_ex_rate
        output = output / eur_bg_ex_rate


print (f'{output:.2f}')
0
The_assassin avatar The_assassin 158 Точки

Ако под „просто решение“ имаш предвид с по-малко писане, ето:

RT_USD = 1.79549
RT_EUR = 1.95583
RT_GBP = 2.53405

ipt_sum = float(input())
inpt_curr = input().upper()
otpt_curr = input().upper()
inpt_val = 1
otpt_val = 1

if inpt_curr == 'USD':
    inpt_val = RT_USD
elif inpt_curr == 'EUR':
    inpt_val = RT_EUR
elif inpt_curr == 'GBP':
    inpt_val = RT_GBP

sum_lv = ipt_sum * inpt_val

if otpt_curr == 'USD':
    otpt_val = RT_USD
elif otpt_curr == 'EUR':
    otpt_val = RT_EUR
elif otpt_curr == 'GBP':
    otpt_val = RT_GBP

if otpt_curr == 'BGN':
    reslt = sum_lv
else:
    reslt = sum_lv / otpt_val

print(round(reslt, 2))

 

0
MishoMoney avatar MishoMoney 16 Точки

Хитро е. Мерси, че го сподели

1
mfilipov avatar mfilipov 24 Точки

Ако под „просто решение“ имаш предвид с по-малко писане, ето:

 

money = float(input())
currency_1 = input()
currency_2 = input()
this_dict = dict(BGN=1, USD=1.79549, EUR=1.95583, GBP=2.53405)
result = money * (this_dict[currency_1] / this_dict[currency_2])
print(f'{result:.2f} {currency_2}')
0
MishoMoney avatar MishoMoney 16 Точки

Мисля, че колегата е BASICS. Ние в BASICS-а още не сме учили dictionaries...

Иначе е яко, че може да се напише толкова кратко

1
DenitsaGenkova avatar DenitsaGenkova 13 Точки

Да споделя и аз код :)

sum = float(input())
type_currency_in = input()
type_currency_out = input()

BGN_ = 1
USD_ = 1.79549
EUR_ = 1.95583
GBP_ = 2.53405

if type_currency_in == "BGN":
    sum = sum * BGN_
elif type_currency_in == "USD":
    sum = sum * USD_
elif type_currency_in == "EUR":
    sum = sum * EUR_
elif type_currency_in == "GBP":
    sum = sum * GBP_

if type_currency_out == "USD":
    result = sum / USD_
elif type_currency_out == "EUR":
    result = sum / EUR_
elif type_currency_out == "GBP":
    result = sum / GBP_
elif type_currency_out == "BGN":
    result = sum / BGN_

print(f"{result:.2f}")
0
JohnSmitoff avatar JohnSmitoff 13 Точки

https://pastebin.com/ThNJbLL8

не видях че 2 поста нагоре колегата го е дал като вариянт

currency = {'BGN': 1, 'USD': 1.79549, 'EUR': 1.95583, 'GBP': 2.53405} 

money = float(input())
currency_in = input()
currency_out = input()

result = currency[currency_in] / currency[currency_out]*money
print(f'{result:.2f}')
0
30/11/2018 00:19:25
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.