If-else
yoki match-case
yozishdan imkon qadar qochishga harakat qilaman. Sababini keyingi postlarda albatta yozib o'taman. Ho'sh uni o'rniga nima yozish kerak deysizmi?
Albatta vaziyatga qarayman ammo menda uchragan ko'p muammolarni hashmap orqali yechganman. Tasavvur qiling qiymatlar aniq yoki cheklangan muammo bor.
Uni if-else
yozmasdan yechishingiz kerak. Misol uchun, agar son 2ga bo'linsa "toq", bo'linmasa "juft" degan yozuvni ekranga chiqaring deyildi, xo'sh nima qilasiz?
Men mana bunday qilardim:
hashmap = {
0: "juft"
}
number = int(input("Raqamni kiriting: "))
hashmap.get(number % 2, "toq")
Hop yaxshi muammoni biroz qiyinlashtiramiz. Foydalanuvchi uchun pulni konvertatsiya qiladigan tizim yaratayabsiz. Foydalanuvchi amount, from va to ni kiritadi siz esa if-else
yozmasdan uni to'g'ri xisoblashingiz kerak.
Misol uchun siz bergan ma'lumotlar:
Amount : 24
From : USD
To: UZS
Siz endi $24 ni O'zbek so'miga o'girishingiz kerak, xo'sh buni qanday qilasiz?
Meni yechimim:
# Valyutalarni 1$ bo'lgan bahosini saqlaymiz
currencies = {
"USD": 1,
"UZS": 11300,
"RUB": 90,
"EUR": 0.85,
}
# Xisoblash uchun
convert = {
"TO_USD": lambda amount, rate: amount / rate,
"FROM_USD": lambda amount, rate: amount * rate,
}
# User input qismini yozamiz
amount = float(input("Amount: "))
from_currency = input("From: ").upper()
to_currency = input("To: ").upper()
# Istalgan pul birligini USD orqali boshqa birlikka o'giramiz.
# Misol uchun UZS -> RUB ni to'g'ridan to'g'ri emas balki UZS -> USD keyin USD -> RUB
in_usd = convert["TO_USD"](amount, currencies[from_currency])
# Endi USDga o'girilgan qiymatni foydalanuvchi xohlagan qiymatga o'giramiz
result = convert["FROM_USD"](in_usd, currencies[to_currency])
print(result)
Shunday dangasa yechimlar haqida ham o'ylab ko'ring, foydali bo'lgan bo'lsa xursandman!