首先你要了解一下Python之禅,一行代码输出“TheZenofPython”:python-c"importthis""""TheZenofPython,TimPeters美丽胜于丑陋。明确胜于隐含。简单胜于复杂。复杂胜于复杂。平坦胜于嵌套。稀疏胜于密集。可读性很重要。特殊情况还不够特殊打破规则。虽然实用性胜过纯洁。错误永远不应悄悄过去。除非明确禁止。面对歧义,拒绝猜测的诱惑。应该有一种——最好只有一种——显而易见的方法来做到这一点。尽管除非您是荷兰人,否则这种方式一开始可能并不明显。现在总比没有好。虽然从来没有经常比*现在*好。如果实施很难解释,那不是个好主意。如果实施很容易解释一下,这可能是个好主意。命名空间是一个非常棒的想法——让我们做更多这样的事情!我们接下来要介绍的一行Python可以实现哪些有趣的功能,这可能违反了Explicit原则。如果大家还有这方面的其他小例子,欢迎大家评论。我会添加到文章中,文章可能会更新很长时间。1、一行代码启动一个web服务python-mSimpleHTTPServer8080#python2python3-mhttp.server8080#python32。一行代码实现变量值交换a,b=1,2;a,b=b,a3。一行代码解决FizzBu??zz问题FizzBu??zz问题:打印1到100的数字,打印“Fizz”为3的倍数,打印“Buzz”为5的倍数,打印“FizzBu??zz”为xinrange(1,101):print("fizz"x%3*4:]+"嗡嗡声"[x%5*4:]orx)4.一行代码输出一个由特定字符“Love”组成的心形print(.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*iprint(.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))<2elseforxinrange(-80,20)])foryinrange(-20,20)]))6.一行代码打印九十九乘法表print(.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],范围(2,101))]))print(.join([str(item)foriteminfilter(lambdax:all(map(lambdap:x%p!=0,range(2,x))),range(2,101))]))8.一行代码输出Bonacci序列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(列表(过滤器(lambdax:x>arr[0],arr[1:])))orarr10。一行代码解决八皇后问题[__import__(sys).stdout.write(.join(.*i+Q+.*(8-i-1)foriinvec)+"========")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))))
