程序员经常谎称他们是多么牛的数学天才?来看看数字和数学计算

网友投稿 244 2022-09-28

程序员经常谎称他们是多么牛的数学天才?来看看数字和数学计算

每一种编程语言都包含处理数字和进行数学计算的方法。不必担心,程序员经常谎称他们是多么牛的数学天才,其实他们根本不是。如果他们真是数学天才,他们就会去从事数学相关的工作,而不是写一些毛病百出的Web框架,想着赚够钱买辆跑车了。

这个习题里有很多数学运算符号。我们来看一遍它们都叫什么名字,你要一边写一边念出它们的名字来,直到你念烦了为止。名字如下。

​​+​​:加号。​​−​​:减号。​​/​​:斜杠。​​*​​:星号。​​%​​:百分号。​​<​​:小于号。​​>​​:大于号。​​<=​​:小于等于号。​​>=​​:大于等于号。

有没有注意到以上只是些符号,没有给出具体的运算操作呢?录完下面的习题代码后,再回到上面的列表,写出每个符号的作用。例如,+是用来做加法运算的。

ex3.py

1 print("I will now count my chickens:") 2 3 print("Hens", 25 + 30 / 6) 4 print("Roosters", 100 - 25 * 3 % 4) 5 6 print("Now I will count the eggs:") 7 8 print(3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6) 9 10 print("Is it true that 3 + 2 < 5 - 7?")11 12 print(3 + 2 < 5 - 7)13 14 print("What is 3 + 2?", 3 + 2)15 print("What is 5 - 7?", 5 - 7)16 17 print("Oh, that's why it's False.")18 19 print("How about some more.")20 21 print("Is it greater?", 5 > -2)22 print("Is it greater or equal?", 5 >= -2)23 print("Is it less or equal?", 5 <= -2)

应该看到的结果

习题3 会话

$ python3.6 ex3.pyI will now count my chickens: Hens 30.0Roosters 97Now I will count the eggs:6.75Is it true that 3 + 2 < 5 - 7?FalseWhat is 3 + 2? 5What is 5 - 7? -2Oh, that's why it's False.How about some more.Is it greater? TrueIs it greater or equal? TrueIs it less or equal? False

巩固练习

1.每一行的上面使用#为自己写一个注释,说明一下这一行的作用。

2.记得习题0吧?用里边的方法运行Python,然后使用刚才学到的数学运算符,把Python当作计算器玩玩儿。

3.自己找个想要计算的东西,写一个​​.py​​文件把它计算出来。

4.使用浮点数重写一遍​​ex3.py​​​,让它的计算结果更准确。提示:​​20.0​​就是一个浮点数。

常见问题回答

为什么​​%​​是求余数符号,而不是百分号?

很大程度上只是因为设计人员选择了这个符号而已。正常写作时它是百分号没错,在编程中除法我们用了/,而求余数又恰恰选择了%这个符号,仅此而已。

​​%​​是怎么工作的?

换个说法就是“X除以Y的余数是J”,例如“100除以16的余数是4”。​​%​​运算的结果就是J这部分。

运算优先级是怎样的?

在美国,我们用PEMDAS这个简称来辅助记忆,它的意思是“括号(Parentheses)、指数(Exponents)、乘(Multiplication)、除(Division)、加(Addition)、减(Subtraction)”,这也是Python里的运算优先级。一个常见的错误是人们以为PEMDAS是一个绝对次序,需要依次进行,其实乘除是一级,从左到右,然后加减是一级,从左到右,所以你可以把PEMDAS写成PE(M&D)(A&S)。

习题4 变量和命名

你已经学会了​​print​​和算术运算。下一步要学的是“变量”(variable)。在编程中,变量只不过是用来指代某个东西的名字。程序员通过使用变量名可以让自己的程序读起来更像自然语言。而且因为程序员的记性都不怎么好,变量名可以让他们更容易记住程序的内容。如果他们没有在写程序时使用好的变量名,在下一次读到原来写的代码时他们会大为头疼。

如果被这个习题难住了的话,想想之前教过的,要注意找到不同点、关注细节。

1.在每一行的上面写一条注释,给自己解释一下这一行的作用。

2.倒着读你的​​.py​​文件。

3.朗读你的​​.py​​文件,将每个字符都读出来。

ex4.py

1 cars = 100 2 space_in_a_car = 4.0 3 drivers = 30 4 passengers = 90 5 cars_not_driven = cars - drivers 6 cars_driven = drivers 7 carpool_capacity = cars_driven * space_in_a_car 8 average_passengers_per_car = passengers / cars_driven 9 10 11 print("There are", cars, "cars available.")12 print("There are only", drivers, "drivers available.")13 print("There will be", cars_not_driven, "empty cars today.")14 print("We can transport", carpool_capacity, "people today.")15 print("We have", passengers, "to carpool today.")16 print("We need to put about", average_passengers_per_car, "in each car.")

警告​​space_in_a_car​​中的_是下划线(underscore)字符。如果你不知道怎样键入这个字符的话就自己研究一下。这个字符在变量里通常被用作假想的空格,用来隔开单词。

应该看到的结果

习题4 会话

$ python3.6 ex4.pyThere are 100 cars available.There are only 30 drivers available.There will be 70 empty cars today.We can transport 120.0 people today.We have 90 to carpool today.We need to put about 3.0 in each car.

巩固练习

刚开始写这个程序时我犯了个错误,Python告诉我这样的出错消息:

Traceback (most recent call last): File "ex4.py", line 8, in average_passengers_per_car = car_pool_capacity / passengerNameError: name 'car_pool_capacity' is not defined

用你自己的话解释一下这个出错消息,解释时记得使用行号,而且要说明原因。

下面是更多的巩固练习。

1.我在程序里用了​​4.0​​​作为​​space_in_a_car​​​的值,这样做有必要吗?如果只用​​4​​会发生什么?

2.记住​​4.0​​​是一个“浮点数”。这只是一个带小数点的数,如果写作​​4.0​​​而不是​​4​​,那它就是一个浮点数。

3.在每一个变量赋值的上一行加上一条注释。

4.记住=的名字是等于,它的作用是为数据(数值、字符串等)取名(​​cars_driven​​​、​​passengers​​)。

5.记住_是下划线字符。

6.将Python作为计算器运行起来,就跟以前一样,不过这一次在计算过程中使用变量名来做计算,常见的变量名有​​i​​​、​​x​​​、​​j​​等。

常见问题回答

​​=​​​(单等号)和​​==​​(双等号)有什么不同?

=的作用是将右边的值赋给左边的变量名。==的作用是检查左右两边的值是否相等。习题27中你会学到更多相关用法。

写成​​x=100​​​而非​​x = 100​​也没关系吧?

是可以这样写,但这种写法不好。操作符两边加上空格会让代码更容易阅读。

怎样“倒着读”代码?

很简单,假如说你的代码有16行,你就从第16行开始,和我的文件的第16行比对,接着比对第15行,依此类推,直到全部检查完。

为什么​​space_in_a_car​​​用了​​4.0​​?

这主要就是为了让你见识一下浮点数,并且提出这个问题。看看巩固练习吧。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解决java连接虚拟机Hbase无反应的问题
下一篇:Terraform 管理阿里云 VPC
相关文章

 发表评论

暂时没有评论,来抢沙发吧~