Giriş
Döviz kurları, global ekonominin dinamik doğası nedeniyle sürekli değişim göstermektedir. Bu durum, seyahat edenler, yatırımcılar ve işletmeler için döviz çeviricilerin önemini artırmaktadır. Python, güçlü kütüphaneleri ve basit sözdizimi ile döviz çevirici uygulamaları oluşturmak için ideal bir dildir.
Bu yazıda, Python kullanarak basit bir döviz çevirici uygulaması geliştireceğiz. Uygulama, kullanıcıdan bir para birimi miktarını alacak ve kullanıcının seçtiği döviz cinsine göre dönüşümünü gerçekleştirecektir. Ayrıca, döviz kurlarını güncel verilerden alabilmek için bir API kullanacağız. Adım adım ilerleyerek hem kodu hem de işlem adımlarını detaylı bir şekilde inceleyeceğiz.
Yazının devamında, Python’da döviz çevirici oluşturma sürecine dair tüm aşamaları ele alacak ve her adımda örnek kodlar ile konuları pekiştireceğiz. Hadi başlayalım!
Döviz Kuru API’sini Seçmek
Uygulamamız için döviz kurlarını alabilecek bir API seçmemiz gerekiyor. Bugün piyasada birçok döviz kuru API’si bulunmaktadır. Bu yazıda, ExchangeRate-API’yi kullanacağız. Bu API, döviz kurlarını real-time olarak sağlamakta ve oldukça kullanıcı dostu bir arayüze sahiptir.
API kullanımına başlamak için öncelikle ExchangeRate-API web sitesine gidip bir hesap oluşturmalıyız. Hesabımız oluşturduktan sonra, bize sağlanan API anahtarını not alalım. Bu anahtar, API’ye erişim sağlamak için gereklidir.
API anahtarını aldıktan sonra, kullanacağımız URL şemasını belirleyeceğiz. Örneğin, kurların güncel listesini almak için kullanacağımız URL şu şekildedir:
https://open.er-api.com/v6/latest/USD
Buradaki USD, döviz kuru bilgilerini almak istediğimiz ana para birimini belirtir. Başka bir döviz cinsi için kurların listesini almak isterseniz, USD yerine o döviz biriminin kodunu yazabilirsiniz.
Python ile API’den Döviz Kurlarını Çekmek
Artık döviz kuru API’sini seçtiğimize göre, bu API’den nasıl veri çekeceğimizi görelim. Bunun için öncelikle Python’da HTTP istekleri göndermek için kullanabileceğimiz requests kütüphanesini kullanacağız.
Python’da gerekli kütüphaneyi yüklemek için terminalden aşağıdaki komutu çalıştırmalıyız:
pip install requests
Kütüphaneyi yükledikten sonra, API’den döviz kuru verilerini çekmek için aşağıdaki Python kodunu kullanabiliriz:
import requests
API_URL = 'https://open.er-api.com/v6/latest/USD'
response = requests.get(API_URL)
if response.status_code == 200:
data = response.json()
print(data)
else:
print('API isteği başarısız oldu.')
Yukarıdaki kod, API’ye bir GET isteği gönderir ve yanıt başarılıysa döviz kuru verilerini JSON formatında yazdırır. Eğer bir hata ile karşılaşılırsa, kullanıcıya bir mesaj gösterilir.
Döviz Çevirici Fonksiyonu Oluşturma
Şimdi döviz kuru verilerini başarıyla aldığımıza göre, bir döviz çevirici fonksiyonu oluşturabiliriz. Bu fonksiyon, kullanıcının girdiği miktarı ve döviz cinsini alacak, ardından dönüşüm hesaplamalarını gerçekleştirecektir.
Aşağıdaki kodda, dönüşüm işlemini gerçekleştiren bir fonksiyon yazıyoruz:
def convert_currency(amount, from_currency, to_currency, rates):
if from_currency != 'USD':
# USD cinsine çevirmek için
amount = amount / rates[from_currency]
# İstenen döviz cinsine çevirme
return round(amount * rates[to_currency], 2)
Bu fonksiyonda önce kullanıcının belirttiği para biriminin USD cinsine çevrilmesi (eğer gerekliyse) sağlanır. Ardından, USD’den istenilen para birimine dönüşüm yapılır ve sonucun iki ondalık basamağa yuvarlanması sağlanır.
Kullanıcıdan Girdi Alma ve Dönüşüm Yapma
Artık döviz çevirici fonksiyonumuzu oluşturduğumuza göre, kullanıcıdan girdi alarak dönüşüm işlemini gerçekleştirmeye geçelim. Bunun için bir ana fonksiyon oluşturarak tüm süreçleri bir araya getireceğiz.
Aşağıdaki kodda, kullanıcıdan döviz bilgilerini alıp dönüşüm gerçekleştiren ana fonksiyonu görebilirsiniz:
def main():
# Döviz kuru verilerini alma
response = requests.get(API_URL)
data = response.json()['rates']
# Kullanıcıdan değerler alma
amount = float(input('Döviz miktarını girin: '))
from_currency = input('Kaynak döviz cinsini girin (örneğin, USD): ')
to_currency = input('Hedef döviz cinsini girin (örneğin, EUR): ')
# Dönüşümü gerçekleştirme
result = convert_currency(amount, from_currency, to_currency, data)
print(f'{amount} {from_currency} = {result} {to_currency}')
# Ana fonksiyonu çalıştırma
tif __name__ == '__main__':
main()
Bu ana fonksiyonun çalışmasıyla kullanıcıdan hem miktar hem de döviz türlerini alıyoruz. Ardından, bu bilgilerle convert_currency fonksiyonumuzu çağırarak dönüşümü gerçekleştiriyoruz.
Hataları Yönetmek ve Kullanıcı Deneyimi
Gerçek bir uygulamada, kullanıcı girdisinin doğruluğunu kontrol etmek oldukça önemlidir. Kullanıcıdan alınan verilerin geçerliliğini kontrol ederek daha iyi bir kullanıcı deneyimi sunabiliriz.
Aşağıda kodumuzda bazı hata yönetimi ekleyerek kodumuzu geliştiriyoruz:
def main():
response = requests.get(API_URL)
data = response.json()['rates']
try:
amount = float(input('Döviz miktarını girin: '))
from_currency = input('Kaynak döviz cinsini girin: ').upper()
to_currency = input('Hedef döviz cinsini girin: ').upper()
if from_currency not in data or to_currency not in data:
raise ValueError('Geçersiz döviz cinsi!')
result = convert_currency(amount, from_currency, to_currency, data)
print(f'{amount} {from_currency} = {result} {to_currency}')
except ValueError as e:
print(e)
if __name__ == '__main__':
main()
Bu kod daha iyi bir kullanıcı deneyimi sağlar; eğer kullanıcı geçersiz bir döviz cinsi girerse, program hata vererek kullanıcıyı bilgilendirir.
Sonuç
Python ile döviz çevirici oluşturma sürecini adım adım incelemiş olduk. Döviz kuru API’sini kullanarak gerçek zamanlı verilere eriştik ve kullanıcıdan aldığımız girdilerle döviz çevirme işlemi gerçekleştirdik.
Renklendirebilir, kullanıcı arayüzü ekleyebilir veya daha karmaşık özellikler ile kodumuzu geliştirebiliriz. Ancak, burada gösterdiğimiz basit uygulama sayesinde Python ile bir API’den veri çekmeyi, kullanıcıdan girdi almayı ve temel hata kontrolü yapmayı öğrenmiş olduk.
Şimdi siz de kendi döviz çevirici uygulamanızı geliştirebilir, farklı API’ler deneyebilir veya mevcut kodu özelleştirerek yeni özellikler ekleyebilirsiniz. Her zaman merakınızı koruyun ve yeni şeyler denemekten çekinmeyin!