在删除Python中的字符后,解析回int是否有问题?
下面是给我带来问题的代码:在删除Python中的字符后,解析回int是否有问题?,python,Python,下面是给我带来问题的代码: newI = int(str(i).replace(char, "")) newJ = int(str(j).replace(char, "")) 我在第一次作业中就遇到了这个问题i和j在此运行之前都是两位整数,如果将它们解析为字符串时在其中任何一个中找到了值,则已为char分配了一个值。例如,如果i是27而j是73,我希望取消7s。所以我解析到字符串,找到了字符,现在我正试图在删除字符的情况下解析回int。我发现了错误 ValueError:基数为10的int()
newI = int(str(i).replace(char, ""))
newJ = int(str(j).replace(char, ""))
我在第一次作业中就遇到了这个问题i
和j
在此运行之前都是两位整数,如果将它们解析为字符串时在其中任何一个中找到了值,则已为char
分配了一个值。例如,如果i
是27
而j
是73
,我希望取消7
s。所以我解析到字符串,找到了字符,现在我正试图在删除字符的情况下解析回int。我发现了错误
ValueError:基数为10的int()的文本无效:“”
有人能给我一些提示吗?这里还有一些代码:
for j in range(10, i):
for char in str(j):
if char in str(i):
newI = int(str(i).replace(char, ""))
newJ = int(str(j).replace(char, ""))
只需将计数设置为1:
"55".replace("5","", count=1)
在您的示例中,有两个嵌套的
for
-循环。使用集合交点将更有效,特别是如果您正在执行大量的i,j
值:
strI = str(i)
strJ = str(j)
# remove any similar characters (once)
for c in set(str(i)) & set(str(j)):
strI = strI.replace(c, "", count = 1)
strJ = strJ.replace(c, "", count = 1)
newI = int(strI)
newJ = int(strJ)
“我把问题写在第三行”那你为什么只发了两行?基于这个错误,我想说您将一个空字符串传递给
int
。您可以显示更多的代码吗?显示输入的打印总是有帮助的。如果没有更多的信息,我真的很难判断出哪里出了问题,几天前我把水晶球弄丢了。对不起,第3行是个打字错误。我本想打1的。我现在要添加一些代码。空字符串不是有效的int文本。好的,假设I
是27
和char
是“2”
。不应该str(i).replace(char,”
返回“7”
,然后可以解析回一个整数吗?我正要回来说我已经弄明白了。谢谢。只是好奇,如果i==j,你希望你的输出是什么?