为何同款代码在JavaScript可运行,Python却无法正常工作?
问题分析与解决方案
你的两段代码核心逻辑差异在于索引追踪的方式:
JavaScript代码里用了外部变量x来持续记录lastname的当前索引,每次外层循环都会递增x,内层循环只负责输出当前索引对应的字符就终止;而Python代码里的letters_lastname是内层for循环的局部迭代变量,每次进入内层循环都会被重置为0,你后续的letters_lastname += 1完全不起作用——因为下次内层循环启动时,变量会被重新赋值。
修正后的Python代码
name = "kayque" lastname = "othon" # 对应JS里的x,初始化-1 last_idx = -1 for letters_name in range(len(name)): print(name[letters_name], end="") last_idx += 1 # 检查last_idx是否在lastname的索引范围内 if last_idx < len(lastname): print(lastname[last_idx], end="")
逻辑说明
- 定义外部变量
last_idx对应JS里的x,初始值设为-1 - 每次外层循环输出
name的当前字符后,递增last_idx - 判断
last_idx是否还在lastname的有效索引范围内(小于长度5),如果是就输出对应的字符 - 当
last_idx递增到5时,超出lastname的索引范围,不再输出
执行这段代码后,输出结果会和JavaScript版本一致:koathyqoune
内容的提问来源于stack exchange,提问作者Kayque Othon
相关产品推荐
相关产品推荐

