Python-遍历一个字符串,一次拉出 1 个字符,然后拉出 2 个

标签 python

问题:

我有一串数字,我们称它为 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/

相关文章:

python - python中的字符串日期到日期对象

python - 替换 Python 列表中的重复元素?

python - Numpy:读取 csv,处理未定义的值

python - 在 pandas 数据框中创建新列取决于同一数据框中但不同行中的其他列

python - 使用 Supervisor 运行 Flower

python - 如何获得生命变化的数量(pygame)?

python - 如何使用 python 脚本从数据库中检索具有列名的值?

python - 如何解决在本地运行我的 python 代码的问题?

python - 打印 Boost Python 对象

python - BeautifulSoup 中的 re.compile 有什么用?