《笨方法学习python3》练习3:Numbers and Math

EX3: Numbers and Math

  • 例子:

    print("I will now count my chickens:")
    
    print("Hens",25 + 31 / 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)
    
  • 学习内容:+、-、/、*、%、<、>、<=、>=

    • 加、减、除、乘、取余、小于、大于、小于等于、大于等于

    • %:取余,取值:X除与Y所得到的余数。(意义不是百分号)

      ​ 比如:100 / 16 = 6 ······ 4 等价于 100 % 16 = 4

  • 深入练习(Study Drills)

    • 浮点数更精确(带小数的为浮点数)
  • 改变代码(寻找可能情况及错误)

    • ++i/--i

      输入:

      print("Is it greater?", 5 > --6 , --6) 
      print("Is it greater?", 5 > -6, -6)
      print("Is it greater?", 5 > --2 , --2)
      print("Is it greater?", 5 > -2 , -2)
      

      print的最后一项是为了验证--i-i输出的数值,可以去掉。结果:

      结果:

      PS F:\python\hard way 练习> python ex3.py
      Is it greater? False 6
      Is it greater? True -6
      Is it greater? True 2
      Is it greater? True -2
      
    1. 不会报错,但是python没有++--
    2. 从以上结果可以看出,--6--2python中是62
    3. 有时候在 Python 中看到存在 ++i 这种形式,这其实不是自增,只是简单的表示正负数的符号而已。正正得正,负负得正,所以 ++i--i 都是 i
    4. python自增自减的表达为:a = a + 1a += 1
  • 补充知识

    • python没有自增自减符号(++/--)
      • 原因
      1. python中的数字类型是不可变数据

      数字类型数据在内存中是不会发生改变。当变量值发生改变时,会新申请一块内存赋值为新值,然后将变量指向新的内存地址。

      >>> a = 1
      >>> id(a)
      140706707333968
      >>> a = a + 1
      >>> id(a)
      140706707334000
      >>> a += 1
      >>> id(a)
      140706707334032
      

      a赋予新值时,a指向的内存地址也发生了改变。而在C语言中,a 指向的内存地址并不会发生改变,而是改变内存的内容。(后补c语言同款代码)

      += 是改变变量,相当于重新生成一个变量,把操作后的结果赋予这个新生成的变量。
      ++ 是改变了对象本身,而不是变量本身,即改变数据地址所指向的内存中的内容。

      1. python的整数池

      理论上,每次赋值都会创建一个新对象,python的整数池是为了节约内存而存在的,整数池的范围是[-5, 256]的整数。也就是说,在[-5, 256]范围内,值相同的变量都指向了同一内存地址。

      • 在[-5,256]范围内的整数:
      >>> a = -5
      >>> id(a)
      140706707333776
      >>> b = -5
      >>> id(b)
      140706707333776
      >>>
      >>> a = 256
      >>> id(a)
      140706707342128
      >>> b = 256
      >>> id(b)
      140706707342128
      

      从查看内存地址可以看出,范围内的值相同的变量会指向同一内存地址。

      • 各种不符合范围的数值:
      >>> a = -6
      >>> id(a)
      2937464506256
      >>> b = -6
      >>> id(b)
      2937464506384
      >>>
      >>> a = 257
      >>> id(a)
      2937466712464
      >>> b = 257
      >>> id(b)
      2937466712432
      >>>
      >>> a = 0.1
      >>> id(a)
      2937464402448
      >>> b = 0.1
      >>> id(b)
      2937464402472
      

      这些不满足整数池条件的就会指向不同的内存地址。

我的GitHub中有详细的代码下载:https://github.com/YukyCookie/learn-python-three-the-hard-way.git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值