编写Python函数查找Tuple/List中长度与指定值相同的元素
功能实现修正方案
原代码存在的问题
- 内置输入函数拼写错误:Python 中输入函数为小写
input(),原代码写为大写Input会触发名称报错 - 函数定义语法错误:形参位置不能直接做类型转换,需单独定义形参,调用函数时再传入转换后的整数参数
- 逻辑判断错误:原代码判断的是整个元组的总长度,而非元组内每个元素的长度,不符合筛选需求
- 缩进格式错误:Python 强制要求用缩进区分代码块,原代码中函数体、分支判断下的执行代码均无正确缩进
- 输出提示不符合要求:原错误提示字符串和需求指定的内容不一致
修正后可运行代码
names = ('Delta', 'Omega', 'Alpha', 'Charlie', 'Beta') def number_letters_same_length(target_length): # 筛选符合长度要求的元素 matched_names = [name for name in names if len(name) == target_length] if matched_names: print(matched_names) else: print('No names found with same length') if __name__ == '__main__': # 接收用户输入并做合法性校验 try: num_letter = int(input('enter number: ')) number_letters_same_length(num_letter) except ValueError: print('请输入合法的整数')
代码说明
- 函数接收一个整数类型的
target_length作为参数,遍历预定义的 names 元组,筛选出长度和参数值相等的元素存入列表 - 若筛选得到的列表非空,直接输出匹配的名称列表;若为空则输出需求指定的错误提示
- 额外增加了输入合法性校验,避免用户输入非整数时程序直接崩溃
内容的提问来源于stack exchange,提问作者jump
相关产品推荐
相关产品推荐

