笨办法学python 习题3

加分习题3

一、引言

在讨论话题之前,我们先说下程序中除法的三种情况:

1. 传统的除法,我称之为整型地板除。在C、C++、Java中常见,特点是整数相除舍弃小数取整,浮点数相除则保留小数(如果有)。

1 >>>1/2
2 0
3 >>>1.0/2.0
4 0.5

2. 真实的除法,我称之为精确除法。特点是无论整数还是浮点数,均保留小数(如果有)。

1 >>>1/2
2 0.5
3 >>>1.0/2.0
4 0.5

3. 只留整数的除法,我称之为完全地板除。特点是无论整数还是浮点数,均不保留小数(如果有)。

1 >>>1//2
2 0
3 >>>1.0//2.0
4 0.0

二、Python2中的除法

1. python2中的除法与传统语言(c、c++、java)无异,也是整型地板除。

 

2. 也可以进行精确除法,只需要在开头加上 from __future__ import division 

   

3. 也可以进行完全地板除,只需要将 / 替换为 // 即可(这一点在3里也是完全一样的)

   

三、Python3中的除法

1. Python3与Python2的一个巨大改变就是默认除法由整型地板除变为精确除法。

   这导致2的代码在3里,所有整形相除的运算结果都会变化。

2. 可以加//实现完全地板除。(和2一样)

注:上述除法解析引自https://www.cnblogs.com/36bian/p/7201363.html

四、习题解析

  1. 使用#在代码每一行的前一行为自己写一个注解,说明一下这一行的作用。

    #常规字符串输出
    print ("I will now count my chickens:")
    #常规字符串输出,逗号后面是进行数值计算
    print ("Hens",25+30/6)
    print("Roosters",100-25*3%4)
    
    print("Now I will count the eggs:")
    
    # Python2中,采用整型地板除法1/4=0,即直接舍弃小数。Python3中,采用精确除法1/4=0.25,即正规数学除法。
    print (3+2+1-5+4%2-1/4+6)
    
    print("It is true that 3+2<5-7?")
    #此输出表示判断,先分别计算<符号左右两边的值,然后比较大小,输出True或者False
    print (3+2<5-7)
    
    print("What is 3+2?",3+2)
    print("What is 5-7?",5-7)
    
    print("oh,that's why it's False.")
    
    print("How about some more.")
    
    print("Is it greater?",5>-2)
    print("Is it greater or equal?",5>=-2)
    print("Is it less or equal?",5<=-2)
  2. 记得开始时的 <练习 0> 吧?用里边的方法把 Python 运行起来,然后使用刚才学

    到的运算符号,把 Python 当做计算器玩玩。

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

  4. 有没有发现计算结果是”错”的呢?计算结果只有整数,没有小数部分。研究一下这

    是为什么,搜索一下“浮点数(floating point number)”是什么东西。

python2中计算结果只有整数,原因上文已经说明,因为python2中的除法采用整型地板除。若要使python2中采用精确除法,可以在除法前添加 from __future__ import division ,或者将整型除法转换为浮点数除法。

浮点数:浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。注意,近似表明浮点数并非一个准确的小数,具体原因读者可以进一步研究,简单提示是因为所取小数位数的原因。

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

将所有除法前后的数值都加上.0,即完成了浮点数计算。

猜你喜欢

转载自blog.csdn.net/cjx_cqupt/article/details/88175678