Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x ValueError:以10为基数的int()的文本无效:';x';_Python 3.x - Fatal编程技术网

Python 3.x ValueError:以10为基数的int()的文本无效:';x';

Python 3.x ValueError:以10为基数的int()的文本无效:';x';,python-3.x,Python 3.x,当字符串上的最后一个索引有“x”或“x”(表示为10)时,如果我有类似“1x”的东西,这意味着11(1+10) 我得到一个ValueError:以10为基数的int()的文本无效:“x” 输出应该是[0,1,4,5,11,13,22,27,36,46] 当字符串不包含“X”值时,它可以正常工作 def main(): s1 = "0131629592" partial_sums(s1) def partial_sums(s1): lst1 =[] sum =

当字符串上的最后一个索引有“x”或“x”(表示为10)时,如果我有类似“1x”的东西,这意味着11(1+10)

我得到一个ValueError:以10为基数的int()的文本无效:“x”

输出应该是[0,1,4,5,11,13,22,27,36,46]

当字符串不包含“X”值时,它可以正常工作

def main():
    s1 = "0131629592"  
    partial_sums(s1)

def partial_sums(s1):
    lst1 =[]
    sum = 0
    for i in range(len(s1)):
        sum = sum + int(s1[i])
        lst1.append(sum)
    print(lst1)

main()
如何修复它?

此语句:

   if (i == len(s1) -1) and (s1[i] == "x" or "X"):
        sum = sum + int(s1[i]) + 10
仍然在
s1[i]
上调用
int
,即使
s1[i]
“x”
。您只需要
sum+=10

但是,请注意,
与您使用它的方式不同。引用文档,“表达式
x或y
首先计算x;如果x为真,则返回其值;否则,计算y并返回结果值。“IOW,
“a”==“b”或“c”
返回
“c”
,而不是False,
“c”
计算为真


另外,由于
sum
是一个非常有用的内置变量,因此使用您自己的同名变量对其进行阴影处理可能不是一个好主意<代码>总计经常被使用。

我可以这样做吗?如果(i==len(s1)-1)和((s1[i]==“x”)或(s1[i]==“x”))或者有更好的方法吗?@user1804925:应该可以。你也可以做
s1[i].lower()='x'
s1[i]在('x','x')
(我可能自己做第一个。)
   if (i == len(s1) -1) and (s1[i] == "x" or "X"):
        sum = sum + int(s1[i]) + 10