Python练习题 005:三个数字由大到小排序输出

题目

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

分析

这个用什么语言都很容易。但是拓展一点,如果输入的不一定是按照我们所要求的的格式,怎么办?

Python的str类有split方法,但是这个split方法只能根据指定的某个字符分隔字符串,如果要同时指定多个字符来分隔字符串,该怎么办呢?
幸运的是python的re模块中提供的split方法可以用来做这件事情,如下代码示例:
import re
re.split(’; |, ',str)
例如:

a=‘Beautiful, is; better*than\nugly’
import re
re.split(’; |, |*|\n’,a)
[‘Beautiful’, ‘is’, ‘better’, ‘than’, ‘ugly’]

做的时候出现了点插曲,就是re.split()中可能用到的分隔符要写成列表形式,即用[ ]括起来才行,否则报错ValueError: not enough values to unpack。
这个方法很好,学到了,以后针对一些不规范输入,用这种方法太省心了。

实现

  • 代码
import re
x,y,z=re.split("[ ,.,、|\/]",input("请输入三个数字:"))
x,y,z=int(x),int(y),int(z)
maxNum=max(x,y,z)
minNum=min(x,y,z)
print(maxNum,x+y+z-maxNum-minNum,minNum)
  • 代码
l=[]
for i in range(3):
    x=int(input("Integer:"))
    l.append(x)
l.sort()
print(l)

你可能感兴趣的:(Python练习题 005:三个数字由大到小排序输出)