首页 > 解决方案 > 继续在这个简单的 Python 函数中似乎不起作用

问题描述

该函数应该将字符串作为其输入并返回(如果字符串的所有成员都是数字)和该字符串的整数版本。此示例中提供的字符串是一个 3 位数字。该函数的 for 循环似乎只返回第一个数字,因此 continue 可能无法按预期工作。

e = '484'

def resolving(e):
    for i, o in enumerate(e):

        if o in "0123456789":

            s = []
            s.append(o)
            i += 1

            continue
                
        elif o not in "0123456789":
            print(type(e))
            return e

    k = str(s)
    y = k.replace("'","").replace("[","").replace("]","").replace(",","").replace(" ","")
    p = int(y)
    print(type(p))
    return p

print(resolving(e))

标签: pythoncontinue

解决方案


因为您在循环中创建了列表。只是让它在循环之外。也代替str(s)它使用列表的字符串表示,str.join因为它将列表的所有元素连接成一个字符串。也不需要 continue 语句。因为如果 if 为 True,elif 将不会运行。

for i, o in enumerate(e):
    s = []
    if o in "0123456789":
        s.append(o)
    else:
        print(type(e))
        return e
k = ''.join(s)
p = int(y)
return p

推荐阅读