我正在尝试跟踪一段代码的执行情况,该代码包含一个带有两个 if 条件
的 for 循环
。但我需要帮助准确理解 for 循环
在 python 中是如何执行的。
请考虑以下示例:
numAs = 0
numEs = 0
aStr1 = 'abcdefge'
def someFunc(aString):
1. for i in range(len(aString)):
2. if s[i] == 'a':
3. numAs += 1
4. continue
5. if s[i] == 'e':
6. numEs += 1
7. if numEs > numAs:
8. break
9. print(someFunc(aStr1))
问题:使用aStr
作为参数,上面代码中第1行会执行多少次?
我的理解是,这段代码的第1行:for i in range(len(aString))
只会执行一次。而第 2 行和第 5 行将根据传递的字符串执行多次。当函数遇到 continue
语句时,它会返回到第 2 行并运行它。请确认或更正我的想法。
谢谢
最佳答案
您对代码功能的理解是正确的。
FWIW,使用python -m trace --trace some_script.py
很容易跟踪脚本的执行。或者您可以使用 python -m trace --count some_script.py
查看执行行数.
例如,后一个对 trace 的调用会产生:
1: def someFunc(aString):
global numAs, numEs
1: s = aString
10: for i in range(len(aString)):
9: if s[i] == 'a':
2: numAs += 1
2: continue
7: if s[i] == 'e':
1: numEs += 1
1: if numEs > numAs:
break
1: numAs = 0
1: numEs = 0
1: someFunc('flammable')
关于Python:跟踪 For 循环的执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8032484/