Функц сэдвийн дадлага болгон хэрэглэгчээс оруулсан ром тоог араб тоо болгох функцийг бичье. Жишээ нь "XV" гэж оруулбал 15, хэрвээ "IV" гэж оруулбал 4 -ийг буцаах гэх мэтээр.
Ром тоог араб тоонд I - 1, V - 5, X - 10, L - 50, C - 100, D - 500, M - 1000 жагсаалтаар шилжүүлнэ.
Ром тоог бичих болон араб тоонд шилжүүлэх дүрэм.
- Том тоо бага тооны өмнө байвал тэдгээрийг нэмнэ.
- Бага тоо том тооны өмнө байвал том тооноос бага тоог хасна.
Функцийг бичээд дараа нь хичээлийн кодтой харьцуулан үзээрэй.
Ром тоог араб тоо болгох функцийн кодийг
дээрх байдлаар хэрэгжүүллээ. Таны бичсэн код зөв үр дүн өгч байвал өөр байх нь хамаагүй. Програмчлалын асуудлыг маш олон янзаар шийдэж сурахыг хичээж байгаарай. Кодод тоог хөрвүүлэх parse_roman функцийг л хэрэгжүүлсэн. Ром тоог араб тоонд хөрвүүлэх жагсаалтыг толь буюу dict төрлөөр romans хувьсагчид олгосон. parse_roman функц хэрэглэгчээс оруулсан ром тоог параметрээр хүлээн авна. result бол өгөгдсөн дүрмээр хөрвүүлэгдсэн ром тоог хадгалан функцээс буцаах утгын хувьсагч. Параметрээр авсан мөр төрлийн өгөгдлийг циклээр гүйлгэн тэмдэгт бүрд анализ хийн араб тоонд шилжүүлэхийн тулд python -ий дотоод enumerate функцийг ашигласан. enumerate функц итерацлагдах (мөр, жагсаалт, толь г.м) обьектийг аваад элементийн индекс болон элементийг өөрийг нь агуулсан tuple -ийг үүсгэдэг. parse_roman функцэд мөр ирэх тул түүнийг enumerate функцэд өгвөл функцээс мөрийн тэмдэгтийн индекс, тэмдэгтийг агуулсан tuple -ийг буцаана. Ингэснээр for циклийн алхам бүрд бид параметрээр ирсэн мөрийн тэмдэгт түүний индексийг авах юм. Өөрөөр хэлбэл циклийн алхам бүрд i -д параметрээр ирсэн мөрийн тэмдэгтийн индекс, c -д параметрээр ирсэн мөрийн тэмдэгт ирнэ. Үүнийг өөрсдөө шалган үзээрэй. Үүний дараа ром тоог араб тоонд шилжүүлэх дүрмийн логикийг хэрэгжүүлсэн. if i+1<len(roman) and romans[c] < romans[roman[i+1]]: бичлэгээр бид индекс сүүлийн тэмдэгтийнх биш бөгөөд тэмдэгтийн romans тольд дахь утга дараагийн тэмдэгтийн romans тольд дахь утгаас бага байх нөхцлийг шалгана. Хэрвээ нөхцөл биелэж байвал өөрөөр хэлбэл бага тоо том тооны өмнө байвал хасах дүрмээр үр дүнгийн result хувьсагчаас тэмдэгтийн romans тольд дахь утгыг хасна. Эсрэг тохиолдолд result хувсагчид тэмдэгтийн romans тольд дахь утгыг нэмнэ. Ром тоог араб тоонд шилжүүлж буй энэ логиийн ажиллагааг сайн ойлгон аваарай. Үүнээс гадна if операторийн нөхцөлд индекс параметрийн уртаас давахгүй эсэхийг шалгаж байгааг анхаарна уу.
Шилжүүлэх функцээ бичсэн тулд input -ээр хэрэглэгчээс ром тоогоо аваад аваад үр дүнг print функцээр үзүүлнэ. Хэрэглэгчээс оруулсан тоо romans тольд тодорхойлсон тоонуудтай тохирч байгаа шалгалтыг нэмэн оруулахыг танд үлдээе. Тоог нэгээр оруулан шалгах ажиллагаа төвөгтэй байвал
гэж шалгалтыг хийсэн ч болно.