• 笨办法学Python


    Exercise2是注释和井号 Comments and Pound Characters 具体详情请参考习题一,这里就不在做过多的赘述。

    习题 3: 数字和数学计算

    学习目标:了解Python中常用的算术运算符,并了解运算符之间的先后运算顺序

    在各大常用的计算机语言中都有常见的算术运算符,Python也是大同小异,下面我们来了解一下Python中常见的算术运算符:

    算术运算符

    以下假设变量x = 10 ,y = 20

    运算符 描述 实例
    + 加 - 两个对象相加 x+y = 30
    - 减 - 是一个数减去另一个数 x-y = -10或y-x = 10
    * 乘 - 两个数相乘或是返回一个被重复若干次的字符串 x*y = 200
    / 除 - x除以y x/y = 0,y/x = 2
    % 取余 - 返回除法的余数 x%y = 10,y%x = 0
    ** 幂 - 返回x的y次幂 x**y = 1(20个0)
    // 取整除 - 返回商的整数部分(向下取整 91 // 2 = 4, -9 // 2 = -5

    Python算术运算符的实例操作:

    #! -*- coding=utf-8 -*-
    x = 10
    y = 20
    
    print "x + y =", x + y
    
    print "x - y =", x - y,",", "y - x =", y - x
    
    print "x * y =", x * y
    
    print "x / y =", x / y,",", "y / x =", y / x
    
    print "x ** y =", x ** y
    
    print "x // y =", x // y,",", "y // x =", y // x
    
    print "9 // 2 =", 9 // 2,",", "-9 // 2=", -9 // 2
    

    输出结果为:

    C:Python27python.exe "D:/pythoncode/stupid_way_study/demo3 Numbers and Math/Exer3-1.py"
    x + y = 30
    x - y = -10 , y - x = 10
    x * y = 200
    x / y = 0 , y / x = 2
    x ** y = 100000000000000000000
    x // y = 0 , y // x = 2
    9 // 2 = 4 , -9 // 2= -5
    

    习题二中的练习代码是:

    print "I will now count my checkens:"
    
    print "Hen", 25 + 30 / 6
    print "Roosters", 100 - 25 * 3 % 4
    
    print "Now i will count the eggs:"
    
    print 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6
    
    print "Is it true that (3 + 2 < 5 -7)?"
    
    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
    

    上述练习代码的运算结果为:

    C:Python27python.exe "D:/pythoncode/stupid_way_study/demo3 Numbers and Math/Exercise3.py"
    I will now count my checkens:
    Hen 30
    Roosters 97
    Now i will count the eggs:
    7
    Is it true that (3 + 2 < 5 -7)?
    False
    What is 3 + 2?= 5
    What is 5 - 7? -2
    Oh, that's why it's False 
    How about some more.
    Is it greater?  True
    Is it greater or equal?  True
    Is it less or equal?  False
    

    加分习题:

    1. 使用 # 在代码每一行的前一行为自己写一个注解,说明一下这一行的作用。
    2. 自己找个想要计算的东西,写一个 .py 文件把它计算出来。
    3. 有没有发现计算结果是”错”的呢?计算结果只有整数,没有小数部分。研究一下这
      是为什么,搜索一下“浮点数(floating point number)”是什么东西。
    4. 使用浮点数重写一遍 ex3.py ,让它的计算结果更准确(提示: 20.0 是一个浮点数)。

    我的答案:

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

    # 打印输出:I will now count my checkens-我将要数我有多少只鸡
    print "I will now count my checkens:"
    
    # 打印输出:计算母鸡的数量,为30只
    print "Hen", 25 + 30 / 6
    # 打印输出:计算公鸡的数量,为97只
    print "Roosters", 100 - 25 * 3 % 4
    
    # 打印输出:Now i will count the eggs-现在我将要去数鸡蛋
    print "Now i will count the eggs:"
    
    # 打印输出:鸡蛋的数量为7个
    print 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6
    
    # 打印输出:Is it true that (3 + 2 < 5 -7)? - (3 + 2 < 5 -7)是否正确呢?
    print "Is it true that (3 + 2 < 5 -7)?"
    
    # 打印输出:False - 3 + 2的运算结果比 5 -7 的运算结果小是不正确的
    print 3 + 2 < 5 -7
    
    # 打印输出:What is 3 + 2?=5 - 3+2的计算结果是5
    print "What is 3 + 2?=", 3 + 2
    
    # 打印输出:What is 5 - 7?-2 - 5-7的运算结果是-2
    print "What is 5 - 7?", 5-7
    
    # 打印输出:Oh, that's why it's False  - 为什么那是错误的呢
    print "Oh, that's why it's False "
    
    # 打印输出:How about some more.  - 那大概是有多少呢?
    print "How about some more."
    
    # 打印输出:Is it greater?True/False   - 进行两个数的大小比较
    print "Is it greater? ", 5 > -2
    print "Is it greater or equal? ", 5 >= -2
    print "Is it less or equal? ", 5 <= 2
    

    2、计算下载时间

    题目:文件大小是1G,下载带宽是10M下水管,计算下载用几分钟?

    1547373015990

    解释说明:

    (4 * 1024):4M 的准确带宽 = 4096 Kb/s。 
    / 8:换算带宽 Kb/s 到 KB/s 
    1G = 1024000 KB 
    

    最后的运算结果是33.33333尾数3无限循环的,但是最后变成了6?(黑人问号),具体原因我们见第3题。

    3、有没有发现计算结果是”错”的呢?计算结果只有整数,没有小数部分。研究一下这是为什么,搜索一下“浮点数(floating point number)”是什么东西。?

    1547378234537

    正常情况下,5除以2结果应该是2.5才对,怎么上面在Python 2.7版本中是2呢?

    注意:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分把其中一个数改成浮点数

    则上面的运算为:

    1547378520557

    在Python的整数除法中,即使除不尽,结果仍然是整数,余数直接被扔掉

    注:在Python 3.5中默认是可以显示浮点数的

    1547378691794

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

    将上面需要计算的两个数中的一个定义为浮点数类型就可以,float(x),这样计算的结果就是浮点数

    总结:

    习题2主要是是认识和掌握常见的Python中的算术运算符,知道整数和浮点数之间的区别,了解Python 2.7和Python 3.5中默认精度。了解整除和取余之间的区别。

    扩展:

    Python比较运算符

    以下假设变量x = 11 ,y = 20

    所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价

    运算符 描述 实例
    == 等于 - 比较对象是否相等 (x == y) 返回 False
    != 不等于 - 比较两个对象是否不相等 (x != y)返回True
    <> 不等于 - 比较两个对象是否不相等 (x <> y) 返回 True
    > 大于 - 返回x是否大于y (x > y) 返回 False
    < 小于 - 返回x是否小于y。 (x < y) 返回 True
    >= 大于等于 - 返回x是否大于等于y (x >= y) 返回 False
    <= 小于等于 - 返回x是否小于等于y (x <= y) 返回 True

    注:<> 运算符类似于 运算符!=

    Python比较运算符的实例代码演示:

    x = 11
    y = 20
    
    print "x == y",  "运算结果是", x == y
    
    print "x != y",  "运算结果是", x != y
    
    print "x <> y",  "运算结果是", x <> y
    
    print "x > y",  "运算结果是", x > y
    
    print "x < y",  "运算结果是", x < y
    
    print "x >= y",  "运算结果是", x >= y
    
    print "x <= y",  "运算结果是", x <= y
    

    上述代码的运行结果为:

    C:Python27python.exe "D:/pythoncode/stupid_way_study/demo3 Numbers and Math/Exer3-3.py"
    x == y 运算结果是 False
    x != y 运算结果是 True
    x <> y 运算结果是 True
    x > y 运算结果是 False
    x < y 运算结果是 True
    x >= y 运算结果是 False
    x <= y 运算结果是 True
    

    Python赋值运算符

    以下假设变量x = 11 ,y = 20

    运算符 描述 实例
    = 简单的赋值运算符 z = x + y 将x + y的运算结果赋值为z
    += 加法赋值运算符 z += x 等效于 z = z + x
    -= 减法赋值运算符 z -= x 等效于 z = z - x
    *= 乘法赋值运算符 z *= x 等效于 z = z * x
    /= 除法赋值运算符 z /= x 等效于 z = z / x
    %= 取模赋值运算符 z %= x 等效于 z = z % x
    **= 幂赋值运算符 z ** = x 等效于 z = z ** x
    //= 取整除赋值运算符 z //= x 等效于 z = z // x

    Python赋值运算符的实例代码演示:

    x = 11
    y = 20
    z = 0
    
    print "z = x + y",  "运算结果为z1=", x+y
    
    z += x
    print "z += x ",  "运算结果为z2=",z
    
    z -= y
    print "z -= x ",  "运算结果为z3=",z
    
    z *= x
    print "z *= x ",  "运算结果为z4=",z
    
    z /= x
    print "z /= x ",  "运算结果为z5=",z
    
    z %= x
    print "z %= x ",  "运算结果为z6=",z
    
    z **= x
    print "z **= x ",  "运算结果为z7=",z
    
    z //= x
    print "z //= x ",  "运算结果为z8=",z
    

    上述代码的运行结果为:

    C:Python27python.exe "D:/pythoncode/stupid_way_study/demo3 Numbers and Math/Exer3-2"
    z = x + y 运算结果为z1= 31
    z += x  运算结果为z2= 21
    z -= x  运算结果为z3= 11
    z *= x  运算结果为z4= 231
    z /= x  运算结果为z5= 11
    z %= x  运算结果为z6= 11
    z **= x  运算结果为z7= 7400249944258160101211
    z //= x  运算结果为z8= 352392854488483814343
    

    Python位运算符

    位运算符是将数字化为二进制来进行计算的

    以下假设变量x = 60 ,y = 13 ,二进制格式如下:

    x = 0011 1100
    
    y = 0000 1101
    
    -----------------
    
    x & y = 0000 1100
    
    x | y = 0011 1101
    
    x ^ y = 0011 0001
    
    ~x  = 1100 0011
    
    运算符 描述 实例
    & 按位与运算符:参与运算的两个值,如果两个对应位都为1,则该位的结果为1,否则为0 (x & y) 输出结果 12 ,二进制解释: 0000 1100
    | 按位或运算符:参与运算的两个值只要对应的两个个二进位有一个为1时,结果位就为1 (x | y )输出结果 61 ,二进制解释: 0011 1101
    ^ 按位异或运算符:当两对应的二进位相异时,结果为1 (x ^ y) 输出结果 49 ,二进制解释: 0011 0001
    ~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 (~x ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。
    << 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0 x << 2 输出结果 240 ,二进制解释: 1111 0000
    >> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 x >> 2 输出结果 15 ,二进制解释: 0000 1111

    Python位运算符的实例代码演示:

    x = 60
    y = 13
    
    print "x & y",  "运算结果是", x & y
    
    print "x | y",  "运算结果是", x | y
    
    print "x ^ y",  "运算结果是", x ^ y
    
    print " ~x ",  "运算结果是", ~x
    
    print "x << 2",  "运算结果是", x << 2
    
    print "x >> 2",  "运算结果是", x >> 2
    

    上述代码的运行结果为:

    C:Python27python.exe "D:/pythoncode/stupid_way_study/demo3 Numbers and Math/Exer3-4.py"
    x & y 运算结果是 12
    x | y 运算结果是 61
    x ^ y 运算结果是 49
     ~x  运算结果是 -61
    x << 2 运算结果是 240
    x >> 2 运算结果是 15
    

    Python逻辑运算符

    以下假设变量x = 10 ,y = 20

    运算符 逻辑表达式 描述 实例
    and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值 (x and y) 返回 20
    or x or y 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值 (x or y) 返回 10
    not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True not(x and y) 返回 False

    Python逻辑运算符的实例代码演示:

    x = 10
    y = 20
    
    print "x and y",  "运算结果是", x and y
    
    print "x or y",  "运算结果是", x or y
    
    print "not(x and y)",  "运算结果是", not(x and y)
    

    上述代码的运行结果为:

    C:Python27python.exe "D:/pythoncode/stupid_way_study/demo3 Numbers and Math/Exer3-5.py"
    x and y 运算结果是 20
    x or y 运算结果是 10
    not(x and y) 运算结果是 False
    

    Python成员运算符

    运算符 描述 实例
    in 如果在指定的序列中找到值返回 True,否则返回 False x 在 y 序列中 , 如果 x 在 y 序列中返回 True
    not in 如果在指定的序列中没有找到值返回 True,否则返回 False x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True

    Python运算优先级

    运算符 描述
    ** 指数 (最高优先级)
    ~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
    * / % // 乘,除,取模和取整除
    + - 加法减法
    >> << 右移,左移运算符
    & 位 'AND'
    ^ | 位运算符
    <= < > >= 比较运算符
    <> == != 等于运算符
    = %= /= //= -= += *= **= 赋值运算符
    in not in 成员运算符
    not and or 逻辑运算符

    具体实例运用还得在以后具体环境中具体分析。

    参考链接:

    http://www.runoob.com/python/python-operators.html

    https://blog.csdn.net/aaazz47/article/details/79431678

  • 相关阅读:
    【笔记】:sort排序大法
    【模块】:torndb
    【模块】:CSV文件 数据可视化
    【模块】:Pygal 绘制直方图
    【模块】:matplotlib 绘制折线图
    【Django】:重构Admin
    【数据结构】:基础
    【数据结构】:排序练习
    【数据结构】:算法(二)
    【数据结构】:算法(一)
  • 原文地址:https://www.cnblogs.com/csyxf/p/10264071.html
Copyright © 2020-2023  润新知