帮助将数字转换为罗马数字Python脚本
我正在尝试将数字(最多30个)转换为罗马数字。使用另一个字段计算器函数的脚本作为模板,我创建了这个不想工作的脚本。任何帮助都将不胜感激帮助将数字转换为罗马数字Python脚本,python,arcmap,Python,Arcmap,我正在尝试将数字(最多30个)转换为罗马数字。使用另一个字段计算器函数的脚本作为模板,我创建了这个不想工作的脚本。任何帮助都将不胜感激 def NumberToRomanNumeral ( !CONCESSION! ): if CONCESSION == "1": newstr = "I" elif CONCESSION == 2: newstr = "II" elif CONCESSION == 3: newstr = "III" elif CONCESSION == 4:
def NumberToRomanNumeral ( !CONCESSION! ):
if CONCESSION == "1":
newstr = "I"
elif CONCESSION == 2:
newstr = "II"
elif CONCESSION == 3:
newstr = "III"
elif CONCESSION == 4:
newstr = "IV"
elif CONCESSION == 5:
newstr = "V"
elif CONCESSION == 6:
newstr = "VI"
elif CONCESSION == 7:
newstr = "VII"
elif CONCESSION == 8:
newstr = "VIII"
elif CONCESSION == 9:
newstr = "IX"
elif CONCESSION == 10:
newstr = "X"
elif CONCESSION == 11:
newstr = "XI"
elif CONCESSION == 12:
newstr = "XII"
elif CONCESSION == 13:
newstr = "XIII"
elif CONCESSION == 14:
newstr = "XIV"
elif CONCESSION == 15:
newstr = "XV"
elif CONCESSION == 16:
newstr = "XVI"
elif CONCESSION == 17:
newstr = "XVII"
elif CONCESSION == 18:
newstr = "XVIII"
elif CONCESSION == 19:
newstr = "XIX"
elif CONCESSION == 20:
newstr = "XX"
elif CONCESSION == 21:
newstr = "XXI"
elif CONCESSION == 22:
newstr = "XXII"
elif CONCESSION == 23:
newstr = "XXIII"
elif CONCESSION == 24:
newstr = "XXIV"
elif CONCESSION == 25:
newstr = "XXV"
elif CONCESSION == 26:
newstr = "XXVI"
elif CONCESSION == 27:
newstr = "XXVII"
elif CONCESSION == 28:
newstr = "XXVIII"
elif CONCESSION == 29:
newstr = "XXIX"
elif CONCESSION == 30:
newstr = "XXX"
else:
newstr = ""
return newstr
感叹号放错地方了-应该是 表达方式:
NumberToRomanNumeral(!CONCESSION!)
代码块:正在启动
def NumberToRomanNumeral(CONCESSION):
感叹号放错地方了-应该是 表达方式:
NumberToRomanNumeral(!CONCESSION!)
代码块:正在启动
def NumberToRomanNumeral(CONCESSION):
您是否收到了特定的错误消息?有一些现有的脚本可以进行转换。例如,看看您的输入是数字还是字符串?您的第一个if语句使用引号,而其余语句不使用引号。我想说的是,检查您的选项卡以及kenbuja注释中的数据类型。你可以通过像ILIF int(让步)=28这样的方法强制进入适当的类型:-我也会第二次使用现有的脚本。抱歉,这不直接回答你的问题,但是在将来做这种转换时你可能会考虑的一件事是字典,这是一种内置的Python数据类型,是长elif列表的一种更容易的替代方法。请参阅:。节省了一些输入,并且可能更容易在代码中查找问题。但我猜是kenbuja提出的问题-如果您的输入是字符串,您需要确保所有语句都在检查字符串值。您是否收到了特定的错误消息?有一些现有的脚本可以进行转换。例如,看看您的输入是数字还是字符串?您的第一个if语句使用引号,而其余语句不使用引号。我想说的是,检查您的选项卡以及kenbuja注释中的数据类型。你可以通过像ILIF int(让步)=28这样的方法强制进入适当的类型:-我也会第二次使用现有的脚本。抱歉,这不直接回答你的问题,但是在将来做这种转换时你可能会考虑的一件事是字典,这是一种内置的Python数据类型,是长elif列表的一种更容易的替代方法。请参阅:。节省了一些输入,并且可能更容易在代码中查找问题。但我猜是kenbuja提出的问题——如果输入是字符串,则需要确保所有语句都在检查字符串值。