zoukankan      html  css  js  c++  java
  • Python练习题 005:三个数字由大到小排序输出

    【Python练习题 005】输入三个整数x,y,z,请把这三个数由小到大输出。

    -----------------------------------------------------------------------

    这题想想应该比较容易:无非是先获取3个数字,然后比大小,按顺序输出即可。不过在写代码的过程中遇到了个难题:因为担心输入时输入非指定的分隔符,需要指定多个分隔符(英文逗号、中文逗号、空格),但 str.split() 只接受1个分隔符

    上网搜索了下,发现可以用正则表达式解决这个问题,于是就有了 import re 这一行了。代码如下:

    import re
    
    x, y, z = re.split(',| |,|  ', input('请输入3个数字,用逗号或空格隔开:'))
    x, y, z = int(x), int(y), int(z)
    
    maxNo = max(x, y, z)
    minNo = min(x, y, z)
    print(maxNo, x+y+z-maxNo-minNo, minNo)
    

      

    早就知道正则表达式很强大,但因为太难了,一直没敢碰啊…… 日后一定得好好研究下这部分内容!

    【2016-10-14 更新】------------------------------------------------------------

    坐地铁,手机里读了篇文章,看到了 str.sort() 这个方法,觉得可以用来解这题。思路是:用 re.split() 得到 3 个字符型数字的列表,把字符转换为数字,排下序,然后 print() 不就都解决了吗?代码如下:

    import re
    
    lst = re.split(',| |,|  ', input('请输入3个数字,用逗号或空格隔开:'))
    for i in range(len(lst)):
        lst[i] = int(lst[i])
    lst.sort()
    print(lst)
    

    果然简单很多啊~~~

    ++++++++++++++++++++++++++++++++++++++

    题目出处:编程语言入门经典100例【Python版】

  • 相关阅读:
    hdu 3791 二叉搜索树
    hdu 4041 Eliminate Witches! 栈和队列
    后缀数组讲解
    Theme Section HDU
    Wow! Such Doge! HDU
    Girls' research HDU
    吉哥系列故事――完美队形II HDU
    Best Reward HDU
    String Problem HDU
    最大最小表示法
  • 原文地址:https://www.cnblogs.com/iderek/p/5956756.html
Copyright © 2011-2022 走看看