21.1 LAB:句子单词差异对比程序报错排查求助
问题:找出两个句子的单词差异
任务要求
编写程序找出两个句子的单词差异。输入第一行是第一个句子,第二行是第二个句子,假设两句单词数量相同。程序需逐行输出不同的单词对。
示例输入
Smaller cars get better gas mileage Tiny cars get great fuel economy
示例输出
Smaller Tiny better great gas fuel mileage economy
提示:将每行输入存储为字符串列表。
用户编写的代码
s1 = input() s2 = input() w1 = s1.split() w2 = s2.split() for i in len(w1): if (w1[i] != w2[i]): print(w1[i],w2[i])
报错信息
Traceback (most recent call last): File "main.py", line 7, in <module> for i in len(w1): TypeError: 'int' object is not iterable
问题分析与修复方案
报错原因:len(w1)返回的是一个整数(单词列表的长度),而for循环只能遍历可迭代对象,不能直接遍历整数。
修复后的代码(索引遍历版)
s1 = input() s2 = input() w1 = s1.split() w2 = s2.split() # 用range生成索引序列,遍历每个位置的索引 for i in range(len(w1)): if w1[i] != w2[i]: print(w1[i], w2[i])
更简洁的写法(直接遍历元素)
用zip同时配对两个列表的元素,无需手动处理索引:
s1 = input() s2 = input() w1 = s1.split() w2 = s2.split() for word1, word2 in zip(w1, w2): if word1 != word2: print(word1, word2)
以上两种写法都能正确输出不同的单词对,符合题目要求。
内容的提问来源于stack exchange,提问作者CHUNKYMONKEY
相关产品推荐
相关产品推荐

