Devdit
 

แปลงเลขโรมันเป็นเลขอารบิก Python

1.7K

บทความนี้สอนเขียนวิธีแปลงเลขโรมันเป็นเลขอารบิก Python โดยเริ่มต้นจากการสร้างข้อมูลแบบพจนานุกรม (data dictionary) เพื่อเก็บค่าตัวเลข กับเลขโรมัน จากนั้นใช้คำสั่ง for วนลูปแบบย้อนกลับ และแปลงเลขโรมันเป็นเลขอารบิก พร้อมแสดงผลลัพธ์ออกสู่หน้าจอ

 

ตัวอย่าง แปลงเลขโรมันเป็นเลขอารบิก Python

def roman_to_nunber(roman):
    values = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
    total = 0
    prev_value = 0
    for char in reversed(roman):
        value = values[char]
        if value >= prev_value:
            total = total + value 
        else:
            total = total - value
        prev_value = value
    result = roman+'\t= '+str(total)
    return result

print( roman_to_nunber('I') )
print( roman_to_nunber('II') )
print( roman_to_nunber('III') )
print( roman_to_nunber('IV') )
print( roman_to_nunber('V') )
print( roman_to_nunber('VI') )
print( roman_to_nunber('VII') )
print( roman_to_nunber('VIII') )
print( roman_to_nunber('IX') )
print( roman_to_nunber('X') )
print( roman_to_nunber('XI') )
print( roman_to_nunber('XII') )
print(roman_to_nunber('LVIII'))
print(roman_to_nunber('MCMXCIV'))

ผลลัพธ์

I       = 1
II      = 2
III     = 3
IV      = 4
V       = 5
VI      = 6
VII     = 7
VIII    = 8
IX      = 9
X       = 10
XI      = 11
XII     = 12
LVIII   = 58
MCMXCIV = 1994

จากตัวอย่างโค้ดอธิบายได้ดังนี้

1. สร้างฟังก์ชันชื่อ roman_to_nunber รับค่า paramter 1 ตัวคือเลขโรมัน ที่ต้องการแปลงเป็นเลขอารบิก

2. สร้างพจนานุกรม (data dictionary) เก็บค่าตัวเลขของตัวอักษรโรมันแต่ละตัว

3. สร้างตัวแปร total คือผลรวมเลขอารบิก และ prev_value คือเก็บค่าตัวเลขของเลขอักษรโรมันตัวก่อนหน้า

4. วนลูปแบบย้อนกลับด้วย reversed กรณีถ้าตัวเลขของเลขโรมันมีค่ามากกว่า prev_value ให้บวก total เพิ่ม ถ้าไม่ใช้ให้ลบ total

5. ใช้งานโปรแกรมผ่านฟังก์ชัน roman_to_nunber พร้อมกำหนดค่า paramter เป็นเลขโรมันที่ต้องการแปลงเลขอารบิก เช่น roman_to_nunber('I')

 

สรุป บทความนี้ได้เรียนรู้วิธีการเขียนโค้ดแปลงเลขโรมันเป็นเลขอารบิกด้วยภาษา Python พร้อมคำอธิบายโค้ด และผลลัพธ์จากการทำงานของฟังก์ชัน roman_to_nunber

แก้ไข 11 เดือนที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ