Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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 为什么字符串中的整数在被追加到列表时没有执行正确的算术运算?_Python_String_List - Fatal编程技术网

Python 为什么字符串中的整数在被追加到列表时没有执行正确的算术运算?

Python 为什么字符串中的整数在被追加到列表时没有执行正确的算术运算?,python,string,list,Python,String,List,从以空格分隔的数字(如1、2、3、10、20)的字符串输入中,这些数字将存储在一个列表中 n=初始输入 x=输入 对于rangelenx-1中的i: 如果x[i]!=和x[i+1]!=: k=x[i]*10+x[i+1] z、 附录 i=i+1 持续 elif x[i]!=和x[i+1]==: z、 附录[i] 其他: 持续 对于我在兰根: printz[i] 这表明输出是: 1 2 3 4 11111111110 0 为什么字符串中的整数在被追加到列表时没有执行正确的算术运算?x[i]是一个

从以空格分隔的数字(如1、2、3、10、20)的字符串输入中,这些数字将存储在一个列表中

n=初始输入 x=输入 对于rangelenx-1中的i: 如果x[i]!=和x[i+1]!=: k=x[i]*10+x[i+1] z、 附录 i=i+1 持续 elif x[i]!=和x[i+1]==: z、 附录[i] 其他: 持续 对于我在兰根: printz[i] 这表明输出是:

1
2
3
4
11111111110
0
为什么字符串中的整数在被追加到列表时没有执行正确的算术运算?

x[i]是一个字符串,而不是一个数字。将字符串相乘时,它会复制该字符串。所以当x[i]='1'和x[i+1]='0'时,k=x[i]*10+x[i+1]将k设置为'11110'

你需要做k=intx[i]*10+intx[i+1]

另一个问题是,不能通过执行i=i+1跳过元素。您正在迭代一个范围,因此范围生成器将始终指定该范围内的下一个整数,而不管我当前设置为什么。如果希望能够跳过元素,则应使用while循环:


请注意,您的代码仅适用于1或2位数的数字。您应该使用更通用的方法来查找数字之间的边界,以处理任意数量的数字。

Barmar已经解释了代码中的问题

您还可以使用

n=初始输入 x=输入。拆分“” printlistmapint,x
问题是什么?!提供你的
i = 0
while i < len(x)-1:
    ...
    i += 1