Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.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_Loops_For Loop - Fatal编程技术网

Python 嗨,我怎样才能增加价值;我";内循环

Python 嗨,我怎样才能增加价值;我";内循环,python,loops,for-loop,Python,Loops,For Loop,如果我写I+=2,则“for”中的'I'不会改变。我知道如何解析,但我不知道如何增加“I”。也许这是一个非常愚蠢的问题,但在c++中我可以做到 d = { 'zero': 0, 'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6, 'seven': 7, 'eight': 8, 'nine': 9, 'ten': 10, 'el

如果我写
I+=2
,则“for”中的
'I'
不会改变。我知道如何解析,但我不知道如何增加“I”。也许这是一个非常愚蠢的问题,但在
c++
中我可以做到

d = {
    'zero': 0,
    'one': 1,
    'two': 2,
    'three': 3,
    'four': 4,
    'five': 5,
    'six': 6,
    'seven': 7,
    'eight': 8,
    'nine': 9,
    'ten': 10,
    'eleven': 11,
    'twelve': 12,
    'thirteen': 13,
    'fourteen': 14,
    'fifteen': 15,
    'sixteen': 16,
    'seventeen': 17,
    'eighteen': 18,
    'nineteen': 19,
    'twenty': 20,
    'thirty': 30,
    'forty': 40,
    'fifty': 50,
    'sixty': 60,
    'seventy': 70,
    'eighty': 80,
    'ninety': 90,
    'hundred': 100,
    'thousand': 1000,
    'million': 1000000 } def simple_num(num:str):
    num_s = num.split("-")
    k = d[num_s[0]] + d[num_s[1]]
    return k

def parse_int(string:str):
    string = string.split()
    if "and" in string:
        string.remove('and')
    s = 0
    for i in range(0,len(string)):
        if i+1<len(string) and (string[i+1] in ['million','thousand','hundred']):
            if i+1<len(string) and string[i+1] == 'hundred':
                s += d[string[i]] * d[string[i + 1]]

            else:
                s+=simple_num(string[i])
                s*=d[string[i+1]]

            i+=2
            continue
d={
“零”:0,
"一":一,,
"二":二,,
"三":三,,
"四":四,,
"五":五,,
"六":六,,
七:七,,
"八":八,,
九:九,,
十:十,,
十一:十一,,
十二:十二,,
十三:十三,,
‘十四’:十四,
十五:十五,,
十六:十六,,
‘十七’:十七,
"十八":十八,,
十九:十九,,
二十:二十,,
三十:三十,,
四十:四十,,
五十:五十,,
六十:六十,,
‘七十’:七十,
八十:八十,,
‘九十’:九十,
百分之一百,
“千”:1000,
“百万”:1000000}def简单_num(num:str):
num_s=num.split(“-”)
k=d[num_s[0]]+d[num_s[1]]
返回k
def parse_int(字符串:str):
string=string.split()
如果字符串中有“and”:
string.remove('and')
s=0
对于范围(0,len(字符串))中的i:

如果i+1可以使用while循环:

count = len(string)
i = 0
while(i < count):
    # do something
    i += 2
count=len(字符串)
i=0
而(i
对于循环中的
i
您无能为力,因为在下一次迭代中,它会被
range()
中的下一个值覆盖。你有什么理由需要
i+=2
?你确实增加了它,但是在每次迭代开始时,
i
被分配到迭代器中的下一个对象,因此它被覆盖,因为
i
是循环目标,你对我在…
中做了
,是的,你是对的。但我想理解,为什么我不能在“for”中增加“I”。我认为range()中的问题不,它与
range
无关。您需要了解Python for循环是基于迭代器的for循环。在语句中,
for In:…
中表达式的结果进行迭代器,在本例中,您使用了
范围(0,len(string))
,它创建了一个
范围
对象(即
范围
是一个构造函数)。迭代器是从该iterable创建的,在每次迭代中,
next(迭代器)
的结果被分配给
。因此,在每次迭代开始时,
i
被重新分配,直到迭代器为空,循环退出谢谢!我想我需要研究这个问题