Python第一阶段学习总结

【第2天】Python第一阶段学习总结

2021/09/15

一. 变量

1. 同时定义多个变量

  1. 同时定义多个变量赋相同的值:变量名1 = 变量名2 =变量名3 = … = 数据。

    x = y = z = 0
    
    print(x, y, z)
    
  2. 同时定义多个变量赋不同的值:变量名1. 变量名2, 变量名3,… = 数据1, 数据2, 数据3,…。

    ❗️ 注意:赋值的数量与变量的数量必须保持一致。

    name, age, gender = '小明', 30, '男'
    
    print(name, age, gender)
    

2. 变量重新赋值

  1. 重新给变量赋值以后,再次使用时使用的是变量中最新的值。

    score = 100
    print(score)
    
    score = 95
    print(score)
    
    运行结果:95
    

3. Python定义变量和重新给变量赋值的原理

  1. Python在定义变量的时候会申请内存保存数据,内存申请多大看被保存的数据需要多大。
    请添加图片描述

  2. 重新给变量赋值的时候,会申请新的内存,新的内存的大小由新的数据大小决定,然后变量会和新的内存关联,原来的内存被自动销毁。
    请添加图片描述

  3. 获取变量对应的内存地址:id(变量)

    num = 100
    print(id(num))
    
    num = 1000
    print(id(num))
    

二. 数学运算符:+、-、*、/、%、//、**

1. +、-、*、/和数学中的+、-、x、÷的功能一模一样

❗️ 注意:除法运算的结果类型均为浮点数

print(10 + 20)		#30
print(2 - 5)		# -3
print(2 * 5)		# 10
print(5 / 2)		# 2.5
print(4 / 2)		# 2

2. % - 取余(取模)

# x % y - 求x处以y的余数
# 被除数 ÷ 除数 = 商 ... 余数
# 被除数 = 除数 x 商 + 余数

print(10 % 3)		# 1
# 应用一:判断两个数是否存在整除关系 - 判断两个数的余数是否为0
print(10 % 2)		# 0
print(25 % 5)		# 0
# 应用二:取整数的低位数
# 一个整数对10取余,能够获取这个数的个位数
# 一个整数对100取余,能够获取这个数的后两位数
# 一个整数对1000取余,能够获取这个数的后三位数

num = 2346
print(num % 10)   #6
print(789 % 10)   #9
print(num % 100)  #46

3. // - 整除(商向小取整)

print(5 // 2)    # 2.5取2
print(1/8 // 2)  # 0.9取0
print(-5 // 2)   # -2.5取-3
# 应用:去掉低位数
num = 2342
print(num // 10)  # 234
print(num // 100) # 23
print(num // 1000) # 2
# 练习1:获取任意一个正整数的十位数
num = 5678
print(num // 10 % 10)      # 7
print(num % 100 // 10)     # 7
# 练习2:获取任意一个正整数的白位数
num = 28293
print(num // 100 % 10)     # 3
print(num % 1000 // 100)   # 3

4. ** - 幂运算

# x ** y - 求x的y次方
print(2 ** 2) 		   # 4
print(9 ** (1/2))      # 3.0
print(8 ** (1/3))      # 2.0

三. 比较运算符

❗️ 结论:所有的比较运算符的运算结果都是布尔值。

print(10 > 20)
print(10 < 20)
print(10 == 20)
print(10 != 20)
print(10 >= 10)
print(10 <= 10)
  1. Python的比较运算符支持连写表示范围
x = 0.5

print(0 <= x <= 1)

四. 逻辑运算符:and、or、not

1. and(逻辑与)

  1. 应用场景:用于需要多个条件同时满足的时候,相当于生活中的并且。

  2. 运算规则:条件1 and 条件2 - 两个都是True,结果才是True;其中一个是False,结果就是False。

    # 练习1:写出判断一个数是否能够被3和7整除的条件
    num = 22
    print('是否能够同时被3和7整除:', num % 3 == 0 and num % 7 == 0)
    print('是否能够同时被3和7整除:', num % 21 == 0)
    
    # 练习2:判断指定数是否能被3整除的偶数
    num = 9
    print('是否能被3整除的偶数:', num % 3 == 0 and num % 2 == 0)
    print('是否能被3整除的偶数:', num % 6 == 0)
    

2. or(逻辑或)

  1. 应用场景:用于多个条件只要有一个条件满足就行的时候,相当于生活中的或者

  2. 运算规则:条件1 or 条件2 - 两个条件中只要有一个条件是True,结果就是True;两个都是False的时候,结果才是False。

# 练习1:判断指定数是否能被5或者7整除
num = 5
print('是否能被5或者7整除:', num % 5 == 0 or num % 7 == 0)
# 练习2:判断指定的年是否是闰年
# 普通闰年  - 能被4整除但是不能被100整除的年
# 世纪闰年 - 能被400整除的年
yr = 2008
print('指定的年是否是闰年:', (yr % 4 == 0 and yr % 100 != 0) or (yr % 400 == 0))

3. not(逻辑非)

  1. 应用场景:(对某一个条件进行否定)如果正向写条件情况很多很复杂,反向却很简单,条件就反向写再加not。

  2. 规则:not 条件

  • not True -> False
  • not False -> True
# 练习:写出判断一个数不能同时被3和7整除的条件
# 1) 能被3整除但是不能被7整除
# 2)能被7整除但是不能被3整除
# 3)既不能被3整除也不能被7整除

# 条件反向写:
num = 21
print('判断一个数不能同时被3和7整除:', not num % 21 == 0)

五. 逻辑运算符扩展

1. 短路操作

  1. 条件1 and 条件2
    and的短路:如果条件1是False,那么条件2对应的代码不会执行。

  2. 条件1 or 条件2
    or的短路:如果条件1是True,那么条件2对应的代码不会执行。

2. 逻辑运算符的通用运算规则

​ ❗️ 注意: 运算结果不是数据1就是数据2。

  1. and
    数据1 and 数据2:

    • 不短路,是数据2
    • 短路,是数据1
  2. or
    数据1 or 数据2:

    • 不短路,是数据2

    • 短路,是数据1

      print(7 and 8)  # 8
      print(7 or 8)   # 7
      print(not 7)    # False
      print(not 0)    # True
      

❗️❗️❗️ 重要结论:Python中任何类型的数据都可以转换成布尔(都有布尔值)其中零值值或者空值是False,其他的都是True

六. 赋值运算符

1. 赋值运算符:=、+=、-=、*=、/=、%=、//=、**=

  1. 赋值运算符的作用不是计算出一个结果,而是将数据保存到变量中
  2. 所有赋值运算符的左边必须是变量

2. =

​ x = 10
​ y = 100

3. +=、-=、*=、/=、%=、//=、**=

  1. 语法:变量 += 数据

  2. 说明:将变量中保存的数据和+=后面的数据进行加法运算,将运算结果重新赋值给变量。
    ❗️ 注意:复合的赋值运算符前面的变量必须是已经赋值过的变量。

    a = 10
    a += 20
    print(a)    # 30
    
    b = 20
    b -= 10
    print(b)   # 10
    

    ❗️❗️❗️ 强调:所有的赋值运算是没有结果的。

七. 运算符的优先级

  1. 运算符的优先级:数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)。

  2. 数学运算符中:** > *、/、//、% > +、-

  3. 有括号先算括号里面的 - ()

  4. 如果布尔数据参与了数学运算,False看成0,True看成1。

    result = 100 + True
    print(result)      # 101
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值