gpt4 book ai didi

Python "TypeError: ' <' not supported between instances of ' int'和 'NoneType'“

转载 作者:行者123 更新时间:2023-12-01 08:22:43 32 4
gpt4 key购买 nike

我正在为学校编写这个简单的 python 程序,它需要一个罗马数字并将其转换为阿拉伯数字。例如:I = 1,X = 10 等

该程序在转换简单数字时工作正常,但在需要转换需要减法的数字时就会出现问题。例如,当给出“IV”作为输入时,程序应该打印 4,而不是输出错误代码。

我尝试将输入设置为 int,但这只是给了我一个新的错误代码。奇怪的是,当我提交它时,它起作用了,但是当我后来将它下载回我的机器并删除评论时,它坏了。而且它基本上是教师代码的复制粘贴,所以是的。

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”。实际结果:打印错误代码

最佳答案

omregnet = omregn(input("Indtast romertal her:").capitalize())

您不应该在此处使用大写capitalize 使字符串的第一个字符大写,其余字符小写。例如,"IV".capitalize() 变为 "Iv"。这是一个问题,因为 omkodchiffer 不知道如何处理小写 V。因此它返回 None,并且该 None 值用于条件语句中的不等式之一,无法与整数。

改用.upper()

omregnet = omregn(input("Indtast romertal her:").upper())

关于Python "TypeError: ' <' not supported between instances of ' int'和 'NoneType'“,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54521787/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com