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
被重新分配,直到迭代器为空,循环退出谢谢!我想我需要研究这个问题