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('输入有误,请重新运行程序')

代码说明:

  1. 输入参数: 程序首先提示用户输入最大价格、最小价格以及排序方式。
  2. 筛选列表: 使用列表推导式从原始列表num中筛选出符合用户输入的最小价格和最大价格之间的数字,并将其存储在filtered_num中。
  3. 排序: 根据用户输入的排序方式,对筛选后的列表进行排序。
    • 如果输入1,则使用sorted(filtered_num, reverse=True)进行降序排序。
    • 如果输入2,则使用sorted(filtered_num)进行升序排序。
    • 如果输入其他值,则提示用户输入有误,并重新运行程序。
  4. 输出结果: 程序最终输出排序后的结果。

代码示例:

假设用户输入:

  • 最大价格: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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录