变量和运算符

本文介绍了Python编程中变量的使用,包括定义、赋值、重新赋值以及变量的底层逻辑。同时,讲解了数学运算符如加减乘除、取余和整除,以及幂运算。此外,还涵盖了比较运算和逻辑运算,包括and、or和not的用法,以及赋值运算符的概念。
摘要由CSDN通过智能技术生成

3.8学习总结

变量

1.程序中使用数据的两种方式:

1)直接使用数据

2)先将数据保存到变量中,然后再通过使用变量来使用数据

2.定义变量/创建变量 - 将数据保存到变量中

变量的作用:保存数据

1)语法: 变量名 = 数据 (eg. age = 18)

2)说明:

​ a.变量名 - 程序员自己命名

​ 要求:是标识符,不是关键字

​ 规范:a.见名知义(看到变量名就大概知道变量中保存的是什么数据)

​ b.不能使用系统函数名(比如:print、input、type、…)、类名(int、float、 str…)和模块名

​ c.所有字母都小写,多个单词之间用下划线隔开(dog_name)

​ b. = - 固定写法(等号用来给变量赋值)

​ c. 数据 - 需要保存到变量中的具体的数据(可以是具体的某种类型的数据,也可以是某个运算表达式的结果)

3.使用变量 - 使用变量中保存的数据

使用变量就是使用变量中保存的数据,所以数据能做的事情,保存数据的变量都可以做。

注意:变量必须先定义再使用

4.同时定义多个变量

1)变量名1 = 变量名2 = 变量名3 = … = 数据 - 同时定义多个变量相同的值

2)变量名1,变量名2,变量名3,…,=数据1,数据2,数据3,… - 同时定义多个变量赋不同的值(变量的数据必须和数据的数量保持一致)

​ 案例:交换两个变量的值

#  方法一
m = 300
n = 50
m,n=n,m  
print(m,n) #50 300
#  方法二:  找一个中介
m = 300
n = 50
p = m   # p=300                
m = n   #m=50
n = p   #n=300
print(m,n)  # 50 300
5.变量重新赋值
score=90
print(score) # 90
# 定义完变量以后可以重新给变量赋值,重新赋值后再使用变量,使用的是新的值
score=100
print(score)  # 100
# 重新赋值的时候可以赋不同类型的值
score='优秀'
print(score)  # 优秀

1)定义完变量以后可以重新给变量赋值,重新赋值后再使用变量,使用的是新的值

2)重新赋值的时候可以赋不同类型的值

变量的底层逻辑(了解)

1.python变量存储数据和重新赋值的底层

python定义变量的时候先申请内存,内存申请多大看数据需要多大,申请完内存后将数据保存到内存中,然后再将变量和对应的内存进行关联;重新给变量赋值的时候,会根据新的值重新申请新的内存,然后将新的数据保存到新的内存中,最后将变量和新的内存进行关联。(与C和Java相比,python执行效率较慢)

# id函数 - 获取变量对应的内存地址(重新赋值后地址会改变)
a = 10
print(id(a)) # 8791253129264
a = 100
print(id(a))  #  8791253132144

数学运算符

所有的数学运算符:+(加)、-(减)、*(乘)、/(除)、%(取余、取模)、//(整除)、**(幂运算)

  1. +、-、*、/

a. +、-、*、/和数学中的+、-、×、÷的功能一样

b. 如果运算对象中有一个是浮点数,那么结果一定是浮点数(应用于所有数学运算符)

c. 除法(/)运算的运算结果一定是浮点数

  1. %(取余、取模) - 余数

​ x % y - 求x除以y的余数

​ 1)应用场景1:判断一个数是否能够被另外一个数整除 - 判断这两个数的余数是否为0

​ 2)应用场景2:取整数的低位数 - 对10的N次方取余,就可以获取这个数的后N位数

num = 2379
print(num % 10)  # 9
print(num % 100)  # 79
print(num % 1000)  # 379
  1. // (整除) - 求商,商向小取整

​ x // y - 求x除以y的商,商向小取整的结果

#取 与结果相邻 的两个整数中 最小的那个数
print(5//2) # 2 
print(3.8//2) # 1.0
print(-5//2) # -3


# 应用场景1:求一个数中有多少个完整的另一个数
# 例如:求num中有多少个8
num = 79
print(num//8) # 9
# 练习:已知t的值是总的秒数,求t中由多少个完整的小时
t = 282929
print(t//3600) # 78
# 应用场景2:去掉整数的低位数,保留高位数 - 整除10或者10的N次方
print(8293//10) # 829
print(82//10) # 8
print(82233//100) # 822
print(9282//100) # 92
print(82823//1000) # 82

练习:写程序一区任意一个整数的百位数

# 1823 - >8
num=1823
# 方法1:1823 // 100 -> 18 % 10 ->8
print(num//100%10)
# 方法2:1823 % 1000 -> 823 // 100 ->8
print(num %1000 // 10)

num = int(input('请输入一个数:'))
print(num//100%10)

  1. **(幂运算)

    x ** y - 求x的Y次方

    ```python
    print(3**4) # 81
    print(4 ** -2) # 0.0625
    print(8 ** (1/3)) # 2.0
    print(100** 0.5)# 10.0
    ```
    

比较运算

比较运算符:>(大于)、<(小于)、==(等于)、!=(不等于)、>=(大于等于)、<=(小于等于)

  1. 所有比较运算符的运算结果都是布尔值

  2. python中的比较运算符支持连写表示范围

    score = 89
    # 判断分数是否大于等于70,小于90
    print('是否中等成绩:',70<=score<90) # 是否中等成绩: True
    
    

逻辑运算符

逻辑运算符:and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算)

  1. and(逻辑与运算)

​ 1)应用场景:用来连接要求同时成立的两个条件,相当于生活中的’并且’

​ 2)运算规则:条件1 and 条件2 - 如果两个条件同时成立结果就是True,只要有一个条件不成立就是False

# 案例:判断num是否能同时被3和8整除
num = 24
# 是否能被3整除:num % 3 ==0
# 是否能被8整除:num % 8 ==0
print('num是否能同时被3和8整除',num % 3==0 and num % 8 == 0)  # num是否能同时被3和8整除 True

# 练习:判断num是否是能够被7整除的偶数
num = 92
print('num是否是能够被7整除的偶数:',num % 7 ==0 and num % 2 == 0) # num是否是能够被7整除的偶数: False
  1. or(逻辑或运算)

​ 1)应用场景:如果两个条件或多个条件有一个条件成立就行,用or连接,相当于生活中的’或者’

​ 2)运算规则:条件1 or 条件2 - 只要有一个条件成立,结果就是True,两个条件都不成立结果是False

# 练习1:判断num是否能够被3或者7整除
num = 89
print('num是否能够被3或者7整除:', num % 3 == 0 or num % 7 == 0)  # num是否能够被3或者7整除: False
# 练习2:判断指定的年是否是闰年
# 闰年:闰年分为普通闰年(能被4整除但不能被100整除的年)和世纪闰年(能被400整除的年)两种
year = 2008
print(year,'年是否是闰年:', (year % 4 == 0 and year % 100 != 0) or year % 400 == 0) # 2008年是否是闰年: True

  1. not(逻辑非运算)

​ 1)应用场景:对条件进行否定

​ 2)运算规则:not 条件 - 对指定条件进行否定

# 案例1:判断age是否不大于18
age = 28
print(not age > 18)  # False
print(age <= 18)  # False
# 案例2:判断num是否不能被5整除
num = 89
print(not num % 5 == 0) # True
print(num % 5 != 0) # True
# 案例3:判断num是否不能同时被3和7整除
num = 90
print(not (num % 3 == 0 and num % 7 == 0)) # True
print(num % 21 != 0) # True

赋值运算

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

注意

​ a.所有的赋值运算符的最终的功能都是完成对变量的赋值操作(将数据保存到变量中)

​ b.所有的赋值运算都没有结果,无法提供数据

1.= - 普通赋值运算符

​ 变量名 = 数据 - 将数据直接保存到变量中

2.+=

​ 变量名 += 数据 (=> 变量名=变量名+数据) - 先将变量中保存的数据取出来,和后面的数据进行加法运算,然后将运算结果重新赋值给前面的变量(注意:复合的赋值运算符前面的变量必须是已经赋值过的变量)[ -=、*=、/=、%=、//=、**= 这几种赋值运算和 += 的运算规则一样 ]

运算符的优先级

  1. 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
  2. ** > *、/、%、// > +、-
  3. and > or
  4. 有括号先算括号里面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值