c++ 一行输出八个数字_如果只写一行代码能实现什么?看完我彻底服了

d3a613a16a42936d9ba4b908bde1e11a.png

文 | 極光

来源:Python 技术「ID: pythonall」

75b5882ee702682c71c5c563081e895b.png

人生苦短,我用 Python。这句话大家应该相当熟悉了吧,那 Python 到底有多简单呢,今天就来带大家看看,如果只写一行代码,Python 可以实现什么?

心形字符

这个比较容易理解,运行代码直接看结果:

print(''.join([''.join([('Python技术'[(x-y)%len('Python技术')] if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)]))
7bd59107c6183cc72d392d4680f0dbd4.png

输出结果

9*9乘法口诀表

这个也简单,小时候上学天天都要背的,运行看结果:

print(''.join([' '.join(['%s*%s=%-2s' % (y, x, x*y) for y in range(1, x+1)]) for x in range(1, 10)]))
8aa192e0da62a779482bad9e19e5f7cc.png

输出结果

斐波拉契数列

这是个数列又称黄金分割数列,即数列从第3项开始,每一项都等于前两项之和。

print([x[0] for x in [(a[i][0], a.append([a[i][1],a[i][0]+a[i][1]])) for a in ([[1,1]], ) for i in range(30)]])
63b417e5e2d1f7ac90843baba69ac044.png

解决 FizzBuzz 问题

描述:给你一个整数 n. 从 1 到 n 按照下面的规则打印每个数:

  1. 如果这个数被3整除,打印fizz;

  2. 如果这个数被5整除,打印buzz;

  3. 如果这个数能同时被3和5整除,打印fizz buzz。

for x in range(1,101): print("fizz"[x%3*4:]+"buzz"[x%5*4:] or x)
72717e2c5d13fbe05c209ae027c1280a.png

Mandelbrot 图像

Mandelbrot 图实际上是由 Mandelbrot 集合构成的图像,Mandelbrot图像中的每个位置都对应于公式 N=x+y*i 中的一个复数。

print(''.join([''.join(['*'if abs((lambda a: lambda z,c,n:a(a,z,c,n))(lambda s,z,c,n:z if n==0 else s(s,z*z+c,c,n-1))(0,0.02*x+0.05j*y,40))<2 else ' ' for x in range(-80,20)]) for y in range(-20,20)]))
58555c04c4b4e73fb80cbd8cd7433650.png

输出结果

1000以内的素数

计算并输出1-1000之间的所有素数。

print(' '.join([str(item) for item in filter(lambda x: not [x%i for i in range(2,x) if x%i==0],range(2,1001))]))
729c99b78c44c8d817ce4d734bf12261.png

输出结果

八皇后问题

八皇后问题,一个古老而著名的问题,是回溯算法的典型案例。该问题由国际西洋棋棋手马克斯·贝瑟尔于 1848 年提出:在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。

[__import__('sys').stdout.write(''.join('.'*i+'Q'+'.'*(8-i-1) for i in vec)+"========") for vec in __import__('itertools').permutations(range(8)) if 8==len(set(vec[i]+i for i in range(8)))==len(set(vec[i]-i for i in range(8)))]
67e36e07465f5c835835f92d4a43816f.png

生成迷宫

随机输出一个迷宫,看你能不能走出来。

print(''.join(__import__('random').choice('╱╲') for i in range(50*24)))
6b0962b7dd799bcb90b8e3fedf83dfc4.png

屏幕滚动输出

终端屏幕上无限滚动输出你定义的文字或字符。

python -c "while 1:import random;print(random.choice(' 一二三'), end='')"
7c4657519d35acbe174cb3638966d2fe.png

输出结果

总结

本文为大家介绍了如何通过 Python 写一行代码进行复杂的计算或者输出图像,是不是你也感觉到了 Python 的强大,这下又有在朋友面前装 X 的资本了。

PS:公号内回复 :Python,即可进入Python 新手学习交流群,一起100天计划!

老规矩,兄弟们还记得么,,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

7f22aff6a48cca88f3b4c15b1839e0c2.png 2cfceb5cbe8b84ed47f3b405da2bb0fb.gif

【代码获取方式

ef29f71edbb8fa8e0ac6df451456babc.png
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值