百科问答小站 logo
百科问答小站 font logo



一行代码可以做什么? 第1页

  

user avatar   hui-zhi-zhi-liao-tang-99 网友的相关建议: 
      

7月27日更新:必须要说明一下,很多人评论说所谓一行代码背后实现逻辑是千万行代码,小姐姐我当然知道。

至于为什么会有下面这些代码,答案当然是为了炫技啊,工作中你试试写这样的代码会不会被拉来祭天?


以下为原回答:

作者:IT趣学社
原文链接:一行代码可以做什么?看到最后一个我终于忍不住了...


雷军曾说过:一名合格的程序员必须要经历过数万行代码的洗礼。
但是大部分程序员工作之后才发现,优秀的程序员从不写代码,只是代码的搬运工
但只有写过代码的人才能懂得代码的魅力
即便只有一行,也能写出真我风采:

一行代码画大黄鸭


一行代码做歌词词云


一行代码画个爱心


       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 <= 0 else ' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))     



一行代码输出Mandelbrot图像


       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)]))     


一行代码打印九九乘法表


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



一行代码禁止网页的右键和复制功能


       <body ondragstart="window.event.returnValue=false" oncontextmenu="window.event.returnValue=false" onselectstart="event.returnValue=false">     



一行代码画个迷宫


       python -c "while 1:import random;print(random.choice('|| __'), end='')"     



一行代码实现地图投影



一行代码实现神经催眠




一行代码画个米老鼠



一行代码做个乒乓球游戏



一行代码从删库到跑路

       rm -rf /*     


资料参考:

Wolfram一行代码大赛获奖作品

————————我是分割线————————

感谢大家的赞和讨论,虽然小姐姐我不能像大牛一样写出这些装X的炫技代码,但 @知了堂 带你入坑IT小姐姐我可以写保证书的。



user avatar   ling-kou-leetcode 网友的相关建议: 
      

在编程的世界里,一行精妙的语句可能胜过 100 行赘述。

能删库跑路

这行指令就像是在你的所有文件上浇汽油然后一把火把他们全烧了。

       sudo rm -rf /*     

能让电脑死机

       :(){ :|: & };:     

能让你上演黑客帝国

       sudo apt-get install hollywood cmatrix     

能追心仪对象

这行代码能展示出一个心型:

       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 <= 0 else ' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))     

能飞速创建一个服务器

       python -m http.server     

能解决一道算法题

比如 力扣 231. 2 的幂,input 是一个整形,要求判断这个数字是否是 2 的幂,并返回布尔值。

       def isPowerOfTwo(self, n: int) -> bool:     return n > 0 and n & n - 1 == 0     


       def isPowerOfTwo(self, n):  return n > 0 and 2**int(math.log2(n)) == n     

n 小于等于 0 时一定为否,n 大于 0 的前提下,第二种解法就是简单的通过数学运算比较,第一种解法则是基于二进制理论:如果一个数是 2 的幂,它的二进数最高位是 1,其它都为 0;对它减 1 后最高位为 0,其余都是 1,做与运算会得到 0。


再比如 力扣 151. 反转字符串里的单词,也可以用一行代码解答。

       def reverseWords(self, s: str) -> str:     return " ".join(s.split()[::-1])     

首先用 split 方法将字符串转化成 list 并去除头尾的空格,[::-1] 可以用 list[<start>:<stop>:<step>] 理解,即从头到尾以每步 -1 的方式获取元素,也就是反转了 list,最后合并。


当然,上面举的这些例子不过是现代程序员们的小把戏,早在上个世纪 60 年代,one-liner program 的概念在就已经在计算机领域的上古巨佬之间流传。在维基百科上,你可以搜索到相关词条。

那些古老到比你年纪还大,甚至你可能根本没听说过的语言,像 AWK 语言,J 语言的世界里,都出现过令人惊讶的单行程序,例如下面这个用 J 语言实现的快速排序:

       quicksort=: (($:@(<#[) , (=#[) , $:@(>#[)) ({~ ?@#)) ^: (1<#)     

你可能需要求助你的爷爷,才知道怎么运行它。


到了上世纪 70 年代,随着家用电脑和 BASIC 的兴起,单行程序也变得更受追捧,当时的电脑杂志经常记录一些让人印象深刻的简短的或者单行的程序。

发黄的纸张上,杂志编辑以「魔法」来定义这些程序。


C 语言诞生后,随着一个诡异编程大赛:国家 C 语言混乱大赛(IOCCC)的兴起,更多的奇妙的单行程序诞生了。比如下面这个包含 1255 个字符的国际象棋程序(你可以把它当成单行程序):

       B,i,y,u,b,I[411],*G=I,x=10,z=15,M=1e4;X(w,c,h,e,S,s){int t,o,L,E,d,O=e,N=-M*M,K =78-h<<x,p,*g,n,*m,A,q,r,C,J,a=y?-x:x;y^=8;G++;d=w||s&&s>=h&&v 0,0)>M;do{_ o=I[ p=O]){q=o&z^y _ q<7){A=q--&2?8:4;C=o-9&z?q["& .$  "]:42;do{r=I[p+=C[l]-64]_!w|p ==w){g=q|p+a-S?0:I+S _!r&(q|A<3||g)||(r+1&z^y)>9&&q|A>2){_ m=!(r-2&7))P G[1]=O, K;J=n=o&z;E=I[p-a]&z;t=q|E-7?n:(n+=2,6^y);Z n<=t){L=r?l[r&7]*9-189-h-q:0 _ s)L +=(1-q?l[p/x+5]-l[O/x+5]+l[p%x+6]*-~!q-l[O%x+6]+o/16*8:!!m*9)+(q?0:!(I[p-1]^n)+ !(I[p+1]^n)+l[n&7]*9-386+!!g*99+(A<2))+!(E^y^9)_ s>h||1<s&s==h&&L>z|d){p[I]=n,O [I]=m?*g=*m,*m=0:g?*g=0:0;L-=X(s>h|d?0:p,L-N,h+1,G[1],J=q|A>1?0:p,s)_!(h||s-1|B -O|i-n|p-b|L<-M))P y^=8,u=J;J=q-1|A<7||m||!s|d|r|o<z||v 0,0)>M;O[I]=o;p[I]=r;m? *m=*g,*g=0:g?*g=9^y:0;}_ L>N){*G=O _ s>1){_ h&&c-L<0)P L _!h)i=n,B=O,b=p;}N=L;} n+=J||(g=I+p,m=p<O?g-3:g+2,*m<z|m[O-p]||I[p+=p-O]);}}}}Z!r&q>2||(p=O,q|A>2|o>z& !r&&++C*--A));}}}Z++O>98?O=20:e-O);P N+M*M&&N>-K+1924|d?N:0;}main(){Z++B<121)*G ++=B/x%x<2|B%x<2?7:B/x&4?0:*l++&31;Z B=19){Z B++<99)putchar(B%x?l[B[I]|16]:x)_ x-(B=F)){i=I[B+=(x-F)*x]&z;b=F;b+=(x-F)*x;Z x-(*G=F))i=*G^8^y;}else v u,5);v u, 1);}}     

这段神奇的代码由 IOCCC 的 5 届冠军得主经由两届比赛改进得来。在 2014 年,代码作者甚至专门出了一本书解释这段代码,并添加了注释。


当然,大赛也产生了一些看起来不那么变态的单行程序,比如下面这个:

       main(int c,char**v){return!m(v[1],v[2]);}m(char*s,char*t){return*t-42?*s?63==*t|*s==*t&&m(s+1,t+1):!*t:m(s,t+1)||*s&&m(s+1,t);}     

你能看出来它在干嘛吗?


历史的车轮滚滚向前,代码的形状也产生了不可思议的变化,比如下面这个算 Pi 的代码:


以及下面这个模拟飞机飞行的代码:

对于技术实力过硬又充满想象力的程序员来说,一行代码可以做任何事。


欢迎各位知友关注力扣官方微信公众号:「LeetCode力扣」,更多关于程序员面试、技术干货的内容等你来啃!


user avatar   yeecode 网友的相关建议: 
      

就下面这一行代码。

你看完之后,别忘了给我点赞就好。

       document.body.contentEditable='true';     


操作如下:

  1. 在网页中点击F12,任意页面都行。
  2. 在弹出的调试面板最上面选中Console,然后输入上面这行代码,回车。
  3. 好了,整个网页你可以随便编辑了。

如下面视频所示:

一行让你为所欲为的代码 https://www.zhihu.com/video/1236443767449587712

行了,我知道你想去修改支付宝余额了。

装逼不用那么着急。

先给我点个赞再去。



我啊?

我不装逼。

下面的余额都是真的。


钱都是我作软件架构师赚的。

不信啊?

那,关注我,我会偶尔分享软件架构编程方面的知识,带你一起赚(xie)大(dai)钱(ma)。





好的,不开玩笑了。

其实,一行代码说明不了什么。如果是程序员要多读优秀的源码才能提升自己的编程能力。在这里,给大家推荐一本教你阅读源码的书籍

淘宝则更便宜些:


user avatar   xie-jun-47-41 网友的相关建议: 
      

C语言上机课,某女同学偷偷吃起牛肉干。 有一粒牛肉干掉到了键盘上,卡在7和8键之间。 女同学就在键盘上抠啊抠啊抠 程序里一行代码变成这个样子

int *pa=&*&*&*&*&*&*&*&*&*&*&*&a; 后来的结局是程序顺利通过编译运行结果正确!






好的文字都有灵性,看过便不会永远忘记。欢迎关注 @鬼谷弈邪 ,一个以写出能让人永远不忘的文字为目标的卖字人。


user avatar   zhang-yin-hui-96 网友的相关建议: 
      

在Linux下:sudo apt-get install hollywood cmatrix

https://www.zhihu.com/video/1015751117854162944

如果你修电脑,请记得在女生面前展示这一技能,然后装作淡定的快速敲击键盘,相信我,完全好莱坞黑客镜头范,妹子肯定会膜拜死你的!


1.讲真的,评论区这么多杠精真的好吗?妹子会不会linux不重要啊,你难道不会做一个盘嘛!学会把机会把握在自己手里啊。

2.其次是sorry啊,昨晚我只是脑洞想到这行代码而已,没有考虑到RPM 和DPKG下的使用指令区别。


user avatar   aaas-61-92 网友的相关建议: 
      

谢邀,

基本上所有高复杂性的问题,比如说天气预报、地球洋流、股票预测、大型生态系统演化、癌症、狂犬病等等。

具体一点的,湍流、堆积固体颗粒的流动计算。


user avatar   su-sheng-bu-huo-58 网友的相关建议: 
      

居然有怎么又有本事的医生?能私自去手术室?还能找到麻醉师,手术室护士一起手术?我很好奇!




  

相关话题

  我该怎么选择电脑? 
  把围棋棋盘上下边和左右边连起来,变成面包圈,下棋策略会有什么变化? 
  如何优雅地叫一个程序员给我修电脑呢? 
  28岁可以通过考研二战top2的计算机专业改变人生吗? 
  为什么 CPU 的浮点运算能力比 GPU 差,为什么不提高 CPU 的浮点运算能力? 
  如何零基础入门 Python? 
  有哪些明明是 bug,却被说成是 feature 的例子? 
  可以自学Python吗? 
  面向对象编程的下一阶段是什么? 
  为什么会有码农控? 

前一个讨论
下一个革命性的人机交互方式会是什么?
下一个讨论
为什么计算机分盘都是从C开始到F?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利