繁体   English   中英

计数器变量未在 for 循环内正确递增

[英]Counter variable isnt being incremented inside the for loop correctly

我试图在第一个 if 语句中将 symbol 增加 2 而不是 1,这是 for 循环的默认值。 但是,即使在 if 语句为真并且 symbol 增加 2 之后,下面的迭代也会像 symbol 刚刚增加 1 一样运行。所以我的困境是,即使 symbol 增加了 2,它也会回到增加一,这使得做 symbol+=2 无用。

有没有办法在第一个 if 语句中将符号增加 2?

def solution(roman):
    
    value = 0

    for symbol in range(len(roman)):
            
        if roman[symbol:symbol+2] == 'IV':
            value+=4
            symbol+=2
        
        elif roman[symbol] == 'I':
            value+=1
            
        elif roman[symbol] == 'V':
            value+=5
            
    return value

我担心你不能用for循环来做到这一点:

for 循环对目标列表中的变量进行赋值。 这将覆盖所有先前对这些变量的赋值,包括在 for 循环套件中所做的赋值。 for 语句。 doc.python.org

for在 Python 中略有不同,因为它“[仅]用于迭代序列(例如字符串、元组或列表)或其他可迭代对象的元素”。

试试while循环。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM