问题:
我有一串数字,我们称它为 strNumbers。我需要遍历这个字符串,一个字符一个字符地对每个数字进行计算,直到某个点。那时,我需要开始一次提取两个数字并对这两个数字进行计算。到目前为止,这是我的想法,如您所见,我已经想出如何遍历拉出单个字符的循环没有问题。我也明白我需要一个计数器来确定我何时需要同时开始拉两个字符,但现在呢?感谢您提供任何帮助,谢谢。
for i in strNumbers:
intNumber = int (i)
**do math on intNumber*
**print result**
count = count +1
if count == 5:
??
编辑: 我决定使用两个单独的循环来完成此任务,但是我遇到了另一个问题。下面的代码抛出一个,TypeError: Can't convert 'int' object to str implicitly at line, number = int(strTail[i:i+2])
for i in strTail:
number = int(strTail[i:i+2])
intRooted = int( math.sqrt(number))
strDecoded += str(intRooted)
从逻辑上讲,这似乎正是我想要做的,我把位置“i”的数字和 i 前面的第一位置拉出来。我在这里缺少什么?
最佳答案
您可以将字符串视为单独访问每个字符(或一次访问两个)的数组。因此,一旦达到指定数量,您就可以设置一个标志,告诉您的循环开始一次获取两个字符。
i=0
offset = 1
while i <len(str_numbers):
if offset>1:
int_number = int(str_numbers[i:i+offset])
else:
int_number = int(str_numbers[i])
if i==5:
offset=2
i+=offset
编辑: 我只是想到了一种不那么令人困惑的方法:
offset=1
i=0
while i<len(str_numbers):
if i==5:
offset=2
int_number = int(str_numbers[i:i+offset])
i+=offset
关于Python-遍历一个字符串,一次拉出 1 个字符,然后拉出 2 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12677227/