python - Python 不会多次迭代循环
问题描述
我是 Python 新手,我正在尝试在杂货店中模拟 UPC 代码的练习。如果它的位置是奇数,我需要将列表中的每个数字乘以 3,如果它的位置是偶数,我需要乘以 1,然后我需要对所有结果求和。
def upc_code(code):
given_check_digit = code[-1]
new_code = code[0:-1]
list_of_numbers = list(map(int, new_code.strip()))
how_many = len(list_of_numbers)
new_lst = []
counter = 1
for item in range(1, how_many + 1):
check_odd_even = item % 2
for digit in list_of_numbers:
if check_odd_even == 1:
index_number = digit * 3
new_lst.append(index_number)
counter += 1
else:
index_number = digit * 1
new_lst.append(index_number)
counter += 1
break
使用 Pycharm 中的逐步执行功能,我发现一切正常,它通过第一个循环并检查数字是奇数还是偶数,然后逐步执行第二个循环并抓取索引中的第一项。它检查它是 1 还是 0 并正确进入 if/else 条件。这就是问题开始的地方,当它第二次遍历第二个循环(对于 list_of_numbers 中的数字)时,它不会抓取第二个索引、第三个索引等。它只是停留在第一个索引号。
这只是我的代码的其余部分,没关系。
result_of_sum = sum(new_lst)
check_digit = result_of_sum % 10
if 1 <= check_digit <= 9:
print("Hello")
else:
return False
如果有人能解释我做错了什么,以及为什么它没有在第二个循环中正确地通过列表,那将不胜感激。
解决方案
推荐阅读
- jsp - JSP 未在 Spring Boot 中呈现
- compression - 压缩大的、几乎相同的文件
- http2 - 为什么在 light-4j 中同时启用 https/http2 时端口 8080 停止工作
- java - 使用 Zenmuse XT2 将相机模式更改为视频失败并显示错误:不支持
- vuejs2 - VueJS试图在父组件处理输入之前捕获子组件上的输入
- python - 在python中减少数据框的维度
- sql - 如何选择一个更新的sql,以便获取新更新的数据
- sql-server - 带有反向 POCO 生成器的实体框架中存储过程的返回值问题
- javascript - 当单独的函数运行时如何使其他 JQuery 运行?
- c# - 使用 HTMLAgilityPack 到数据表的 C# 节点集合