python - 无法计算python中double for循环的迭代次数
问题描述
我在实现一个计数器来计算双 for 循环上的迭代时遇到了麻烦。
我的代码如下:
def encode(mat,l,c,mode,m):
sampleCount = 0
for i in range(l):
for j in range(c):
sampleCount += 1
print(sampleCount)
我的程序调用这个函数时,“l”的值分别为 720 和 360,“c”的值分别为 1280 和 640。我所期待的是 921600 和 230400 的 sampleCount 值。但是,它打印 1279 或 639。此外,当我测试打印 i 和 j 时,如下所示:
for i in range(l):
print(i)
for j in range(c):
print(j)
我得到的是程序打印所有 i 值,从 0 到 l-1,然后才打印从 0 到 c-1 的 j 值。
谁能告诉我我可能做错了什么?提前致谢!
编辑:没有标识的粘贴代码
编辑 2:尝试在 sampleCount += 1 之后评论所有内容。在这种情况下,我获得了预期的结果。如果我取消注释以下两行代码,它会继续运行良好。但是,当我尝试取消注释超过 3 行代码时,它又回到了行为不端。简而言之,它在代码如下时起作用:
def encode2(mat,l,c,mode,m):
sampleCount = 0
for i in range(l):
for j in range(c):
sampleCount += 1
a = 0
b = 0
# c = 0
# x = 0
# if (i == 0 & j == 0):
# a = 0
# b = 0
# c = 0
... ...
如果代码是这样的,则会再次行为不端:
def encode2(mat,l,c,mode,m):
sampleCount = 0
for i in range(l):
for j in range(c):
sampleCount += 1
a = 0
b = 0
c = 0
# x = 0
# if (i == 0 & j == 0):
# a = 0
# b = 0
# c = 0
... ...
解决方案
当我运行相同的代码时,我得到了以下结果:
def encode(l,c):
sampleCount = 0
for i in range(l):
for j in range(c):
sampleCount += 1
print(sampleCount)
encode(360,640)
结果:230400
def encode(l,c):
sampleCount = 0
for i in range(l):
for j in range(c):
sampleCount += 1
print(sampleCount)
encode(720,1280)
结果:921600
你的期望是一样的吗?
推荐阅读
- git - git revert 引发冲突并且它不固定(不断显示(master|reverting))
- javascript - 我正在尝试制作汉堡菜单,但单击它时它不会显示
- javascript - 如何在 PDF javascript 中获取现有的邮票注释?
- python - 如何保存登录会话和其他 cookie 以便稍后访问网站?
- meshlab - Meshlab:更新到新版本并得到“错误打开文件写入”
- r-exams - Exams2openolat:shufflesections 和导航不起作用
- firebase - 我无法从 Google Cloud Console(使用 Firebase)查看我的 Cloud Function 的源代码
- python-3.x - python venv的激活(activate_this.py)不会工作或抛出错误
- python - tcmalloc:使用 Google Colab 时出现大的allog 错误
- java - 在可执行 jar 中打包 spring 应用程序导致“无法读取架构文档”