几个小例子告诉你, 一行Python代码能干哪些事
2017-11-01 00:00
771 查看
首先你要了解一下Python之禅,一行代码输出“TheZenofPython”:
我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。
python-c"importthis"
"""
TheZenofPython,byTimPeters
Beautifulisbetterthanugly.
Explicitisbetterthanimplicit.
Simpleisbetterthancomplex.
Complexisbetterthancomplicated.
Flatisbetterthannested.
Sparseisbetterthandense.
Readabilitycounts.
Specialcasesaren'tspecialenoughtobreaktherules.
Althoughpracticalitybeatspurity.
Errorsshouldneverpasssilently.
Unlessexplicitlysilenced.
Inthefaceofambiguity,refusethetemptationtoguess.
Thereshouldbeone--andpreferablyonlyone--obviouswaytodoit.
Althoughthatwaymaynotbeobviousatfirstunlessyou'reDutch.
Nowisbetterthannever.
Althoughneverisoftenbetterthan*right*now.
Iftheimplementationishardtoexplain,it'sabadidea.
Iftheimplementationiseasytoexplain,itmaybeagoodidea.
Namespacesareonehonkinggreatidea--let'sdomoreofthose!
"""
从“TheZenofPython”也能看出,Python倡导Beautiful、Explicit、Simple等原则,当然我们接下来要介绍的一行Python能实现哪些好玩的功能,可能和Explicit原则相违背。
如果你有其他这方面的小例子,也欢迎评论,我会加到文章中,文章也许会长期更新。
(1)一行代码启动一个Web服务
python-mSimpleHTTPServer8080#python2
python3-mhttp.server8080#python3
(2)一行代码实现变量值互换
a,b=1,2;a,b=b,a
(3)一行代码解决FizzBuzz问题:
FizzBuzz问题:打印数字1到100,3的倍数打印“Fizz”,5的倍数打印“Buzz”,既是3又是5的倍数的打印“FizzBuzz”
forxinrange(1,101):print("fizz"[x%3*4:]+"buzz"[x%5*4:]orx)
(4)一行代码输出特定字符”Love”拼成的心形
print('\n'.join([''.join([('Love'[(x-y)%len('Love')]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0else'')forxinrange(-30,30)])foryinrange(30,-30,-1)]))
(5)一行代码输出Mandelbrot图像
Mandelbrot图像:图像中的每个位置都对应于公式N=x+y*i中的一个复数
print('\n'.join([''.join(['*'ifabs((lambdaa:lambdaz,c,n:a(a,z,c,n))(lambdas,z,c,n:zifn==0elses(s,z*z+c,c,n-1))(0,0.02*x+0.05j*y,40))<2else''forxinrange(-80,20)])foryinrange(-20,20)]))
(6)一行代码打印九九乘法表
print('\n'.join([''.join(['%s*%s=%-2s'%(y,x,x*y)foryinrange(1,x+1)])forxinrange(1,10)]))
(7)一行代码计算出1-100之间的素数(两个版本)
print(''.join([str(item)foriteminfilter(lambdax:not[x%iforiinrange(2,x)ifx%i==0],range(2,101))]))
print(''.join([str(item)foriteminfilter(lambdax:all(map(lambdap:x%p!=0,range(2,x))),range(2,101))]))
(8)一行代码输出斐波那契数列
print([x[0]forxin[(a[i][0],a.append([a[i][1],a[i][0]+a[i][1]]))forain([[1,1]],)foriinrange(30)]])
(9)一行代码实现快排算法
qsort=lambdaarr:len(arr)>1andqsort(list(filter(lambdax:x<=arr[0],arr[1:])))+arr[0:1]+qsort(list(filter(lambdax:x>arr[0],arr[1:])))orarr
(10)一行代码解决八皇后问题
[__import__('sys').stdout.write('\n'.join('.'*i+'Q'+'.'*(8-i-1)foriinvec)+"\n========\n")forvecin__import__('itertools').permutations(range(8))if8==len(set(vec[i]+iforiinrange(8)))==len(set(vec[i]-iforiinrange(8)))]
(11)一行代码实现数组的flatten功能:将多维数组转化为一维
flatten=lambdax:[yforlinxforyinflatten(l)]ifisinstance(x,list)else[x]
(12)一行代码实现list,有点类似与上个功能的反功能
array=lambdax:[x[i:i+3]foriinrange(0,len(x),3)]
(13)一行代码实现求解2的1000次方的各位数之和
print(sum(map(int,str(2**1000))))
python-c"importthis"
"""
TheZenofPython,byTimPeters
Beautifulisbetterthanugly.
Explicitisbetterthanimplicit.
Simpleisbetterthancomplex.
Complexisbetterthancomplicated.
Flatisbetterthannested.
Sparseisbetterthandense.
Readabilitycounts.
Specialcasesaren'tspecialenoughtobreaktherules.
Althoughpracticalitybeatspurity.
Errorsshouldneverpasssilently.
Unlessexplicitlysilenced.
Inthefaceofambiguity,refusethetemptationtoguess.
Thereshouldbeone--andpreferablyonlyone--obviouswaytodoit.
Althoughthatwaymaynotbeobviousatfirstunlessyou'reDutch.
Nowisbetterthannever.
Althoughneverisoftenbetterthan*right*now.
Iftheimplementationishardtoexplain,it'sabadidea.
Iftheimplementationiseasytoexplain,itmaybeagoodidea.
Namespacesareonehonkinggreatidea--let'sdomoreofthose!
"""
从“TheZenofPython”也能看出,Python倡导Beautiful、Explicit、Simple等原则,当然我们接下来要介绍的一行Python能实现哪些好玩的功能,可能和Explicit原则相违背。
如果你有其他这方面的小例子,也欢迎评论,我会加到文章中,文章也许会长期更新。
(1)一行代码启动一个Web服务
python-mSimpleHTTPServer8080#python2
python3-mhttp.server8080#python3
(2)一行代码实现变量值互换
a,b=1,2;a,b=b,a
(3)一行代码解决FizzBuzz问题:
FizzBuzz问题:打印数字1到100,3的倍数打印“Fizz”,5的倍数打印“Buzz”,既是3又是5的倍数的打印“FizzBuzz”
forxinrange(1,101):print("fizz"[x%3*4:]+"buzz"[x%5*4:]orx)
(4)一行代码输出特定字符”Love”拼成的心形
print('\n'.join([''.join([('Love'[(x-y)%len('Love')]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0else'')forxinrange(-30,30)])foryinrange(30,-30,-1)]))
(5)一行代码输出Mandelbrot图像
Mandelbrot图像:图像中的每个位置都对应于公式N=x+y*i中的一个复数
print('\n'.join([''.join(['*'ifabs((lambdaa:lambdaz,c,n:a(a,z,c,n))(lambdas,z,c,n:zifn==0elses(s,z*z+c,c,n-1))(0,0.02*x+0.05j*y,40))<2else''forxinrange(-80,20)])foryinrange(-20,20)]))
(6)一行代码打印九九乘法表
print('\n'.join([''.join(['%s*%s=%-2s'%(y,x,x*y)foryinrange(1,x+1)])forxinrange(1,10)]))
(7)一行代码计算出1-100之间的素数(两个版本)
print(''.join([str(item)foriteminfilter(lambdax:not[x%iforiinrange(2,x)ifx%i==0],range(2,101))]))
print(''.join([str(item)foriteminfilter(lambdax:all(map(lambdap:x%p!=0,range(2,x))),range(2,101))]))
(8)一行代码输出斐波那契数列
print([x[0]forxin[(a[i][0],a.append([a[i][1],a[i][0]+a[i][1]]))forain([[1,1]],)foriinrange(30)]])
(9)一行代码实现快排算法
qsort=lambdaarr:len(arr)>1andqsort(list(filter(lambdax:x<=arr[0],arr[1:])))+arr[0:1]+qsort(list(filter(lambdax:x>arr[0],arr[1:])))orarr
(10)一行代码解决八皇后问题
[__import__('sys').stdout.write('\n'.join('.'*i+'Q'+'.'*(8-i-1)foriinvec)+"\n========\n")forvecin__import__('itertools').permutations(range(8))if8==len(set(vec[i]+iforiinrange(8)))==len(set(vec[i]-iforiinrange(8)))]
(11)一行代码实现数组的flatten功能:将多维数组转化为一维
flatten=lambdax:[yforlinxforyinflatten(l)]ifisinstance(x,list)else[x]
(12)一行代码实现list,有点类似与上个功能的反功能
array=lambdax:[x[i:i+3]foriinrange(0,len(x),3)]
(13)一行代码实现求解2的1000次方的各位数之和
print(sum(map(int,str(2**1000))))
相关文章推荐
- 几个小例子告诉你, 一行Python代码能干哪些事
- python一行代码能干什么
- 神奇的Python,一行代码能做哪些炫酷的事情?
- 教你用一行Python代码实现并行(附代码)
- 用一行python代码做一个简单的web服务器
- 一行代码搞定矩阵旋转——python
- Python3 使用GUI统计代码量的例子
- python正则表达式几个例子
- python——一行代码将列表里的元素去重
- Python告诉你iPhone X有多热卖(附代码)
- sql 存储过程 几个 简单例子,及在asp.net(C#)中调用存储过程的代码
- python输出问题,一行代码解决
- python初学-列表和字典的几个小例子
- Python中使用urllib2防止302跳转的代码例子
- [置顶] 【python keras实战】keras几个例子
- python一行代码解决SyntaxError: Non-ASCII character '\xe4'
- 一行Python代码统计词频
- Python 编写通过DOS压缩的例子遇到的几个问题
- cookies提取——从字符串到字典(一行Python代码)
- Logistic Regression 逻辑回归算法例子,python代码实现