自学Python之心得体会(二)

Python 练习实例5

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

程序分析:这道题可谓是经典,学习其他语言时都遇到过,一上来我也是照着C、C++的思维用循环一个一个比较,后来看了网上的案例发现原来Python自带sort和sorted函数,能够将list以升序降序输出,代码精简的很多。

方法一:个人方法,利用循环判断x,y,z的大小。

代码如下:

x=input('x=\n')
y=input('y=\n')
z=input('z=\n')
if(x>y):
    if(y>z):
        print "min=",z
    else:
        print 'min=',y
else:
    if(x>z):
        print 'min=',z
    else:
        print 'min=',x

感觉就是换了层皮的C++代码。毫无一点Python特色。

方法二:利用sort和sorted函数。sort函数是将list里的数据按照顺序排列,sorted函数是将原来list排序后复制给一个新的list,而不改变原来list的值。

代码如下:

l=[]
for i in range(3):
    x=int(raw_input('integer:\n'))
    l.append(x)
x=l[:]
y=sorted(l)
l.sort()
print l
print x
print y

代码不仅精炼了许多,而且运行时间也缩短了。

方法三:利用sort函数、key函数和lambda表达式,将条件整合成一行,更加精炼。key函数是自定义函数,它只能接受一个值;lambda表达式相当于C++的选择表达式,格式:key=lambda x:x[1],分号左边是元素,可以有多个,分号右边是返回值,可以为一个计算表达式。

代码如下:

d={1:'z',2:'y',3:'x'}
print sorted(d.items(),key=lambda x:x[1])

由此可见Python的功能之强大。

 

你可能感兴趣的:(自学Python之心得体会(二))