Skip to content

Latest commit

 

History

History
56 lines (43 loc) · 2.2 KB

File metadata and controls

56 lines (43 loc) · 2.2 KB

本节目标:

  • 掌握Python中的算术运算。

如前所述,Python中的数字也是对象。 一个数的方法有加、减、乘、除等等。

如果我们要画一个正五边形,我们需要知道正五边形 的每个角多少度。一个方法是预先算好, 另一个方法是让Python帮我们算。

Learning By Doing 难度:★ 重要性:★★★★★

  • 运行以下代码,观察结果。
x = int(360).__truediv__(5) # 注意前后都是两个下划线
t1.fd(50)
t1.rt(x)
t1.fd(50)
t1.rt(x)
t1.fd(50)
t1.rt(x)
t1.fd(50)
t1.rt(x)
t1.fd(50)
t1.rt(x)
print(type(x))

这段代码中,我们首先创建了一个int(整数)类型的对象,参数360 表示这个整数的值是360__truediv__是创建出来的这个对象的一个方法,作用是做除法,返回除法的结果并且 再赋值给x。这样,我们就得到了一个五边形的外角度数。

这段代码看起来很蠢,所以Python为我们提供了便利,写成x = 360 / 5就好。

最后我们发现(提示:用type来发现),x的类型是一个浮点型float

Learning By Reading 难度:★★ 重要性:★★★★★

  • 阅读材料,了解Python的运算符
  • 以及运算符对应的方法: 运算符相关的魔术方法
    • 它们的用法和__truediv__类似,比如文章中的第一个函数__eq__int(1).__eq__(1)即等价于求1 == 1, 求得的结果是一个bool类型(bool类型可以取两个值:真、假)。

为什么必须写int(360).__truediv__(5)却不可以写成360.__truediv__(5)? 这其实跟解释过程中的“词法分析”有关。

"词法分析"是将代码切分成“词”的过程,比如在这里, 360.会被认为是浮点数360.0,因而这行代码变成360.__truediv__(5)5个词。 浮点数360.后面跟了一个__truediv__,这是不合Python语法的。

但写成(360).__truediv__是可以的,360 .__truediv__(注意空格)也可以, 360..__truediv__也是合法的(浮点数360.__truediv__方法)。