Python代码:根据价格范围和排序方式筛选列表
num = [399, 4369, 539, 288, 109, 749, 235, 190, 99, 1000]
max_price = int(input('请输入最大价格:'))
min_price = int(input('请输入最小价格:'))
sort_type = input('''1.价格降序排序
2.价格升序排序
请选择...:''')
filtered_num = [i for i in num if min_price <= i <= max_price]
if sort_type == '1':
sorted_num = sorted(filtered_num, reverse=True)
print(sorted_num)
elif sort_type == '2':
sorted_num = sorted(filtered_num)
print(sorted_num)
else:
print('输入有误,请重新运行程序')
代码说明:
- 输入参数: 程序首先提示用户输入最大价格、最小价格以及排序方式。
- 筛选列表: 使用列表推导式从原始列表
num中筛选出符合用户输入的最小价格和最大价格之间的数字,并将其存储在filtered_num中。 - 排序: 根据用户输入的排序方式,对筛选后的列表进行排序。
- 如果输入
1,则使用sorted(filtered_num, reverse=True)进行降序排序。 - 如果输入
2,则使用sorted(filtered_num)进行升序排序。 - 如果输入其他值,则提示用户输入有误,并重新运行程序。
- 如果输入
- 输出结果: 程序最终输出排序后的结果。
代码示例:
假设用户输入:
- 最大价格:1000
- 最小价格:200
- 排序方式:2(升序)
程序将输出:
[235, 288, 399, 539, 749, 1000]
优化点:
- 使用更清晰的变量名,例如将
num改为original_prices,将num1改为filtered_prices等。 - 使用列表推导式简化代码,提高代码可读性。
- 使用
elif语句,避免多余的if判断。 - 添加错误处理,防止用户输入无效值。
- 添加注释,解释代码逻辑。
其他建议:
- 可以考虑将代码封装成函数,方便复用。
- 可以使用图形用户界面(GUI)来增强用户体验。
- 可以将代码扩展为支持更多排序方式,例如按照特定规则排序。
原文地址: https://www.cveoy.top/t/topic/ohmI 著作权归作者所有。请勿转载和采集!