SHELL四则运算,一行代码可以做什么

伏羲号

SHELL四则运算,一行代码可以做什么?

这里以python为例,简单介绍一下一行代码可以做什么,实验环境win10+python3.6,主要内容如下:

SHELL四则运算,一行代码可以做什么

1.绘制“Love”字符串组成的心形图,打开cmd窗口,输入python,进入python shell环境,输入代码 print('\n'.join([''.join([('Love'[(x-y)%4]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)]))便可绘制出心型,程序运行截图如下:

2.绘制mandelbrot图形,代码 print('\n'.join([''.join(['*'if abs((lambda a:lambda z,c,n:a(a,z,c,n))(lambda s,z,c,n:z if n==0else 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)])),程序运行截图如下:

3.输出九九乘法表,代码 print('\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)])),程序运行截图如下:

4.输出1-1000的素数,代码 print(*(i for i in range(2, 1000) if all(tuple(i%j for j in range(2, int(i**.5)))))),程序运行截图如下:

5.简单计算器,实现四则运算,代码 print(eval(input())),程序运行截图如下:

6.查看漫画,这里需要先“pip install antigravity”,然后运行代码 import antigravity便可自动打开浏览器查看漫画,如下:

浏览器中漫画如下:

7.最后再来一个python之禅,代码 import this,程序运行如下:

就介绍这几个吧,其实还有许多其他的,网上也有相关教程,可以搜搜,希望以上分析的内容能对你有所帮助吧。

如何在Linux下使用bash?

老胡的看法:

Linux的bash shell下面有很多支持整数和浮点运算的工具,比如常见的echo(只支持整数)、printf、awk、bc、dc、以及一些Linux下我们常用的编程语言框架如node、perl、python等都可以用来做一些简单的数学运算。这里我重点介绍几个:

使用printf进行数学计算

利用printf的格式化输出特性,可以计算echo无法输出的浮点数。printf可以支持四则运算、乘方、科学计数法等计算。不过无法支持三角函数和对数计算。对于一般的情形来说其实已经够用:

%f表示以浮点数格式输出,.后面的数字表示保留的小数位数。打印的字符串里**表示乘方,e表示科学计数法。

使用bc进行数学计算

bc是BestCalculator的首字母缩写,它是一个支持交互式计算的命令行计算器,同时也支持内联模式的调用。通过scale可以设置输出的小数精度,通过obase设置输出的进制,ibase设置输入的进制,以此来实现更加强大的功能:

使用awk进行数学计算

不得不说awk简直就是字符串处理的神器,除了一般的字符串处理之外,awk也提供了强大的计算功能。awk的计算函数中还支持了sin、cos等三角函数、sqrt开方和对数函数等运算函数。通常为了使用方便,我们在bash中可以先定义一个计算器函数过程:

cal(){ awk "BEGIN { print $*}"; }

之后再使用cal+算术式就可以进行运算了:

使用dc进行数学计算

dc是一个使用逆波兰表示法输入算术式的计算器,同时支持命令行计算和交互式计算,和bc差不多,但是它使用的逆波兰表示法很有意思,也需要一些时间来适应。逆波兰表示法的核心是使用栈式运算,操作数入栈,遇到运算符时最上面的两个操作数进行计算,结果入栈。

比如:

5 + ((1 + 2) * 4) - 3

写成逆波兰表达式就是:

5 1 2 + 4 * + 3 -在bash shell中使用其它脚本语言计算

比如node、python、perl、php甚至sqlite都可以利用起来用作整数和浮点运算,以node为例,直接使用js里面的数学表达式就可以:

总结一下,老胡介绍的这几样工具是不是很好玩?想知道更加详细的玩法,多使用man命令查看文档。在老胡介绍这几样神器之前是不是以为bash shell只能进行有限的整数运算?老胡非常强烈的建议好好学一下awk这个神器,我感觉它已经快上天入地无所不能了。另外除了bash shell之外,还可以多了解一下zsh shell,它原生的echo就可以进行浮点运算,其它的功能也非常强大,最新版的macOS选用了它作为默认的shell程序。

如果我的回答对你有点价值,请莫忘点赞加关注,谢谢!欢迎在评论区发表各种意见。

本文为作者原创,严禁转载,违者必究。

C语言能干什么?

从功能上来讲,任何其他编程语言能够做的事情,C语言都可以做到。

对于入门来说,推荐学习C语言,毕竟这是绝大多数程序员的入门语言。C语言语法简单,易于学习。

现在广泛流行的绝大部分语言,如Java、Python、Lua、Javascript、Go等这些编程语言,都是在C语言的基础上衍生而来的。而且,这些语言开发在之出的第一个版本的编译器,往往也是采用C语言开发的。因此,这些语言能够实现的功能,C语言全部都可以实现。

但是,随着计算机技术的发展,现代软件项目的规模越来越大,实现的复杂程度越来越高,软件开发周期越来越长。有些大的软件项目,可能需要几千人花费几年的时间来开发。在这样的背景下,为了提高开发效率,缩短软件开发周期,降低软件的维护成本,一些更为高效的语言应运而生。注意,这里说的高效,是指开发效率,不是软件运行效率。

现在流行的高级语言,如Java、Python、Go等,相比C语言来说,提供了很多提高开发效率的高级特性,如面向对象、动态类型、垃圾回收等。这些特性大大缩短了软件的开发难度,降低了开发成本。

小结

简单总结一下,C语言适合开发一些对性能要求很高的的系统软件,如BIOS、操作系统、编译器、数据库、基础库等。其他诸如Java、Python等语言,适合开发规模较大、复杂度高、对性能不是非常敏感的上层应用软件。

一些入门的建议

很多想学习编程或者刚开始学习编程的童鞋,往往会纠结于什么编程语言是最好的,最好的IDE工具是什么,或者哪个版本的语言最好用等等诸如此类的问题。当然,尚未入门的童鞋,对编程还没有什么很具体概念,这些问题也在情理之中。

但是,对于入门来说,最重要的是培养对编程开发的兴趣,尽快找到编写程序的感觉。可以适当了解一下各种编程语言的特点,但是不要过于纠结。

我的建议是,选择一个绝大多数程序员入门的语言(通常是C或Python),然后从最简单的“Hello World”开始,由浅入深,循序渐进,尽快了解并掌握语言的基本语法,然后逐渐培养程序开发的兴趣和感觉。

做软件开发这一行,个人认为兴趣是最重要的,有兴趣才会有动力持续、深入的学习。一旦没有了兴趣,技术上不可能达到很高的乘次,编程也会变成一种煎熬。

希望对你有用!对编程开发感兴趣的童鞋,欢迎关注我!

零基础的人为了娱乐想自学编程?

我现在教学生python,但仍推荐易语言,C系到(C++,JAVA,C#)语言学习难度大,要求高。python想短时达到你的目的很难。

如果不常用编程,易语言因为是用中文编程,没有语言障碍,容易入门,对函数指令不用多作记忆。逻辑十分清晰。

第二就是易语言模块众多,你想要的几个方向都有相关模块可用。对汇编语言的嵌入也十分友好,简单学习,了解汇编指令就可以上手,能阅读汇编指令就好。以后逐渐深入。不会感觉太难。

在网络上易语言教程非常多,在某宝或某多上一大堆,价格还便宜,你讲到的几个编程方向都有。

在易语言入门后如果有余力,再考虑学习C++,这时建议在某宝上找郁金香的C++教程,和汇编教程。

如果以后的方向是人工智能和大数据,python就是第二个语言平台的最佳选择,不过,这个时候学,你会感觉很轻松。

这样学习起来每走一步都有成就感,也少走很多弯路。学完这些,编程思维已经建立,学其他住何语言都差不多,只是要记些相关语言的函数和语法规则而矣,就容易多了。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,54人围观)

还没有评论,来说两句吧...