Python “TypeError: '<' not supported between instances of 'int' and 'NoneType'”
我正在为学校编写这个简单的python程序,它使用罗马数字并将其转换为阿拉伯数字。例如:i=1,x=10等
当转换简单的数字时,程序工作得很好,但是当需要转换需要减法的数字时,问题就出现了。例如,当输入"iv"时,程序应该打印4,而不是吐出一个错误代码。
我尝试将输入设置为int,但是这给了我一个新的错误代码。奇怪的是,当我把它交上来的时候,它就工作了,但是当我后来把它下载回我的机器并删除了评论后,它就坏了。而且它基本上是教师代码的复制粘贴,所以是的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | def omkodchiffer(c): if c =="I": return 1 if c =="V": return 5 if c =="X": return 10 if c =="L": return 50 if c =="C": return 100 if c =="D": return 500 if c =="M": return 1000 def omregn(t): arabertal = 0 for i in range(0, len(t)): if i < len(t) - 1: if omkodchiffer(t[i]) < omkodchiffer(t[i + 1]): arabertal -= omkodchiffer(t[i]) i += 1 elif omkodchiffer(t[i]) >= omkodchiffer(t[i + 1]): arabertal += omkodchiffer(t[i]) i += 1 else: arabertal += omkodchiffer(t[i]) return arabertal omregnet = omregn(input("Indtast romertal her:").capitalize()) print(omregnet) |
预期结果:程序在给出"iv"时打印"4"。实际结果:打印错误代码
1 | omregnet = omregn(input("Indtast romertal her:").capitalize()) |
这里不应该使用
用
1 | omregnet = omregn(input("Indtast romertal her:").upper()) |