Improved the roman number function and fixed a bug in it
This commit is contained in:
+8
-6
@@ -91,23 +91,25 @@ def countWords(theText):
|
|||||||
def numberToRoman(numVal, isLower=False):
|
def numberToRoman(numVal, isLower=False):
|
||||||
"""Convert an integer to a roman number.
|
"""Convert an integer to a roman number.
|
||||||
"""
|
"""
|
||||||
if numVal < 1 or numVal > 4999:
|
if not isinstance(numVal, int):
|
||||||
return "NAN"
|
return "NAN"
|
||||||
|
if numVal < 1 or numVal > 4999:
|
||||||
|
return "OOR"
|
||||||
|
|
||||||
theValues = [
|
theValues = [
|
||||||
(1000, "M"), (900, "CM"), (500, "D"), (400, "CD"), (100, "C"), (90, "XC"),
|
(1000, "M"), (900, "CM"), (500, "D"), (400, "CD"), (100, "C"), (90, "XC"),
|
||||||
(50, "L"), (40, "XL"), (10, "X"), (9, "IX"), (5, "V"), (4, "IV"), (1, "I"),
|
(50, "L"), (40, "XL"), (10, "X"), (9, "IX"), (5, "V"), (4, "IV"), (1, "I"),
|
||||||
]
|
]
|
||||||
|
|
||||||
romNum = ""
|
romNum = ""
|
||||||
for theDiv, theSym in theValues:
|
for theDiv, theSym in theValues:
|
||||||
for _ in range(numVal//theDiv):
|
n = numVal//theDiv
|
||||||
romNum += theSym
|
romNum += n*theSym
|
||||||
numVal -= theDiv
|
numVal -= n*theDiv
|
||||||
if numVal <= 0:
|
if numVal <= 0:
|
||||||
break
|
break
|
||||||
|
|
||||||
return romNum.lower if isLower else romNum
|
return romNum.lower() if isLower else romNum
|
||||||
|
|
||||||
# =============================================================================================== #
|
# =============================================================================================== #
|
||||||
# Convert an Integer to a Word Number
|
# Convert an Integer to a Word Number
|
||||||
|
|||||||
+1
-1
@@ -46,7 +46,7 @@ from PyQt5.QtWidgets import (
|
|||||||
|
|
||||||
from nw.common import fuzzyTime
|
from nw.common import fuzzyTime
|
||||||
from nw.gui.custom import QSwitch
|
from nw.gui.custom import QSwitch
|
||||||
from nw.core import ToHtml, numberToRoman
|
from nw.core import ToHtml
|
||||||
from nw.constants import (
|
from nw.constants import (
|
||||||
nwAlert, nwFiles, nwItemType, nwItemLayout, nwItemClass
|
nwAlert, nwFiles, nwItemType, nwItemLayout, nwItemClass
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user