• 16.数字大小升降排序编写


    数字大小升降排序编写输入描述:
    输入为:
    1. 排序方式:DESC(降序) ASCE(升序),分别表示按降序和升序排列,大小写不敏感
    2. 一组十进制整数字符串,以","符号作为分隔符
    例子:
    DESC 789,123,456
    ASCE 234,567,89
    排序方式DESC ASCE请忽略大小写
    输出描述:
    按指定排序方式排序后得到的十进制整数字符串;
    输出的数字字符串数组,以","字符作为分隔符。
    示例1
    输入:
    ASCE 789,123,456
    输出:
    123,456,789 #整体是升序,每一个具体的也是升序

    示例2

    输入:

    DESC 1258,529,2267

    输出:

    8521,7622,952   #整体是降序序,每一个具体的也是降序

    二,下面的代码编写:

             一种是if分别判断,另一种运用了集合优化简单

     1 ###########
     2 print('输入的格式为(输入Q或者q直接退出程序):
    ASCE 123,456,789
    DESC 123,456,789')
     3 while True:
     4     string = input('请输入你的序列:')
     5     if string == 'Q' or string == 'q': #输入的是Q或者q 直接退出程序
     6         exit()
     7     string_clear = string.strip() #这一步是防止用户在首尾出多输入空格,处理首尾的空格
     8     sort = string_clear.split(' ')[0].replace(' ','').upper() #以空格拆分取出排序的方式然后小写改大写
     9     num = string_clear.split(' ')[1].replace(' ','')  #以空格拆分取出用户输入的字符串数字
    10     if sort not in  ['ASCE','DESC']:  
    11         print('请输入正确的排序''ASCE''或者''DESC')
    12         continue               ##这里判断取出来的排序方式是否在列表里 如果不在直接跳过继续循环输入
    13     #第一种if判断方法:
    14     if sort == 'ASCE':
    15         num_list = num.split(',') #把数字字符串拆分字符串列表
    16         index = 0 
    17         for var in num_list:#单个取出字符串列表里的字符串
    18             num_list[index] = ''.join(sorted(num_list[index],reverse=False))
    19             #单独取出来的字符串进行sorted排序后输出为字符串列表,reverse=False是否颠倒,然后再合并在一起
    20             index += 1
    21         else:    
    22             num_list.sort() #进行字符串列表排序
    23     if sort == 'DESC':
    24         num_list = num.split(',') #把数字字符串拆分字符串列表
    25         index = 0 
    26         for var in num_list:#单个取出字符串列表里的字符串
    27             num_list[index] = ''.join(sorted(num_list[index],reverse=True))
    28             index += 1
    29         else:    
    30             num_list.sort(),num_list.reverse()    #进行字符串列表排序,然后颠倒    
    31     print('>>>排序结果为:',','.join(num_list))        #以逗号合并输出字符串
    32     '''
    33     #第二种运用集合优化简短:
    34     sort_dict = {'ASCE':False,'DESC':True}
    35     reverse = sort_dict[sort]
    36     num_list = num.split(',') #把数字字符串拆分字符串列表
    37     index = 0 
    38     for var in num_list:#单个取出字符串列表里的字符串
    39         num_list[index] = ''.join(sorted(num_list[index],reverse=reverse))
    40         index += 1
    41     else:    
    42         num_list.sort(reverse=reverse)        
    43     print('>>>排序结果为:',','.join(num_list))        #以逗号合并输出字符串
    44     '''

    下面是代码演示结果:

  • 相关阅读:
    windows下Mysql免安装版,修改my_default.ini配置文件无效的解决办法
    下压桟(LIFO)
    Dijkstra的双栈算术表达式求值算法
    获取中文的完整拼音并输出
    解析一个文件夹所有文件的中文,并输出到某一文本文档中
    在含有中英文字符串的信息中,提出中文的方法
    创建计算字段
    Docker 常用命令
    mqtt常用命令及配置
    LOG4J
  • 原文地址:https://www.cnblogs.com/zhangan/p/9910409.html
Copyright © 2020-2023  润新知