Python入门求助:列表元素筛选任务的实现方法咨询
解决方案与提示
先说说你原代码里的问题:
lst.append(inputs)这个方法没有返回值(实际返回None),所以直接print它会输出None,正确做法是先调用lst.append(inputs),再单独打印列表。- 你没处理输入等于5的情况,而且当前逻辑只处理单个用户输入,和任务要求的基于给定列表
a处理的需求不符。
基础任务:输出列表a中所有小于5的元素
给定列表:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
直接遍历打印符合条件的元素:
for num in a: if num < 5: print(num)
附加任务1:创建新列表并输出
遍历原列表,将符合条件的元素存入新列表,最后输出新列表:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] new_lst = [] for num in a: if num < 5: new_lst.append(num) print(new_lst)
附加任务2:一行代码实现
用列表推导式可以一行完成新列表生成与输出:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] print([num for num in a if num < 5])
附加任务3:结合用户输入实现
先获取用户输入并转为整数,再筛选出原列表中小于该数的元素:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] try: user_num = int(input("请输入一个数字:")) result = [num for num in a if num < user_num] print(result) except ValueError: print("请输入有效的整数!")
加try-except是为了处理用户输入非整数的情况,避免程序直接报错。
内容的提问来源于stack exchange,提问作者Alexander Stolle
相关产品推荐
相关产品推荐

