day3变量和运算符

本文介绍了Python编程中的变量使用,包括直接使用数据、定义变量、变量赋值及重新赋值。讲解了变量作为保存数据的容器,强调变量必须先定义后使用。此外,还详细阐述了数学运算符如加、减、乘、除、取余、整除和幂运算的规则和应用场景。文章还涵盖了比较运算符和逻辑运算符的使用,并讨论了运算符的优先级。
摘要由CSDN通过智能技术生成

1.变量

1.1程序中有两种使用数据的方式

1)直接使用

print(22)

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

name = '小明'
print(name)

score1 = 99
score2 = 88
print((score1 + score2) / 2)

1.2定义变量

变量的作用:保存数据

语法:变量名 = 数据

说明:
a. 变量名 - 程序员自己命名
要求:是标识符,不是关键字
规范:a.见名知意(看到变量名就大概知道变量中保存的是什么数据)
b. 不使用系统函数名、类名和模块名
c. 所有字母小写。多个单词之间用下划线隔开(PEP8)

b. = - 固定写法
c. 数据 - 需要保存带变量中的具体数据(可以是具体某种类型的数据,也可以是某个运算表达式的结果)

1.3 使用变量 - 使用变量中保存的数据

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

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

age = 20
print(age)

1.4 同时定义多个变量

变量名1= 变量名2= 变量名了 = …=数据 同时定义多个变量赋相同的值

a = b = c = 100
print(a, b, c)

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

a, b, c = 1, 2, 3
print(a, b, c)
# 案例:交换两个变量的值
# 方法一:
m = 30
n = 20
t = m
m = n
n = t
print(m, n)
# 方法二:
m = 30
n = 20
m, n = n, m
print(m, n)

1.5 变量重新赋值

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

score = 99
print(score)


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

score = '优秀'
print(score)

2. 变量的底层逻辑

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

python定义变量的时候先申请内存,内存申请多大看数据需要多大,申请完内存后将数据保存到内存中,然后再将变量和对应的内存进行关联;

重新给变量赋值的时候,会根据新的值重新申请新的内存,然后将新的数据保存到新的内存中,最后将变量和新的内存进行关联。

# id函数  -  获取变量对应的内存地址
a = 10
print(id(a))

a = 100
print(id(a))

3. 数学运算符

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

3.1 +、-、*、/

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

print(10 + 20)      # 30
print(10 - 20)      # -10
print(10 * 20)      # 200
print(10 / 20)      # 0.5

# 如果运算对象中有一个是浮点数,那么结果一定是浮点数(应用于所有数学运算符)
print(10.0 + 20)    # 30.0
print(10.0 - 20)    # -10.0
print(10.0 * 20)    # 200.0

# 除法(/)运算的运算结果一定是浮点数
print(20 / 10)      # 2.0

3.2 %(取余、取模) - 求余数

x % y  -  求x除以y的余数
print(10 % 3)       # 求10除以3的余数
print(20 % 3)       # 求20除以3的余数

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

num1 = 23
num2 = 11
print(num1 % num2)

print(30 % 6)
print(8 % 4)

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

num = 2379
print(num % 10)         # 9
print(num % 100)        # 79
print(num % 1000)       # 379

3.3 //(整除) - 求商,商向小取整

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

print(5 // 2)        # 2
print(3.8 // 2)      # 1.0
print(99 // 4)       # 24
print(-5 // 2)       # -3

应用场景1:求一个数中有多少个完整的另一个数

# 例如:求num中有多少个的8
num = 79
print(num // 8)

# 练习:已知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

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

2833 -> 8    123 ->  1   82929 -> 9
num = 1823

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

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

3.4. **(幂运算)

x ** y - 求x的y次方

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

4. 比较运算符

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

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

print(99 > 100)    # False
print(99 == 99)    # True
print(99 != 99)    # True

num = 89
print('num是否是偶数:', num % 2 == 0)   # False

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

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

5. 逻辑运算符

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

5.1 and(逻辑与运算)

1)应用场景:用来连接要求同时成立的两个条件,相当于生活中的 ‘并且’
2)运算规则:条件1 and 条件2 - 如果两个条件同时成立结果就是True,只要有一个条件不成立结果就是False
True and True - True
True and False - False
False and True - False
False and False - 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)  #True

练习:判断num是否是能够被7整除的偶数

num = 14
print('num是否能被7整除的偶数', num % 7 ==0 and num % 2 ==0)  #True

5.2 or(逻辑或运算)

1)应用场景:如果要求两个或者多个条件有一个条件成立就行,用or连接,相当于生活中的’或者’
2)运算规则:条件1 or 条件2 - 只要有一个条件成立,结果是True;两个条件都不成立结果是False
True or True - True
True or False - True
False or True - True
False or False - False

练习1:判断num是否能够被3或者7整除

num = 27
print('num是否能被3或者7整除', num % 3 ==0 or num % 7 ==0)     # True

练习2:判断指定的年是否是闰年

闰年:闰年分为普通闰年(能被4整除但是不能被100整除的年)和世纪闰年(能被400整除的年)两种

year = 2012
print('是否是闰年:', (year % 4 == 0 and year % 100 != 0) or year % 400 == 0)  #True

5.3not(逻辑非运算)

1)应用场景:对条件进行否定
2)运算规则:not 条件 - 对指定条件进行否定
not True - False
not False - True

案例:判断age是否不大于18

age = 28
print(not age > 18)
print(age <= 18)

6. 赋值运算

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

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

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

a = 10
print(a)

print(10 + 20)

print(10 > 3)

print(a > 5 and a % 2 == 0)

# print(b = 20)     # 报错!赋值运算符没有结果,无法提供数据

b = 20
print(b)

6.1 = - 普通赋值运算符

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

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

案例:变量名 += 数据 - 先将变量中保存的数据取出来,和后面的数据进行加法运算,然后将运算结果重新赋值给前面的变量

注意:复合的赋值运算符前面的变量必须是已经赋值过的变量

num = 10
num += 2        # num = num + 2
print(num)      # 12

# 其余赋值运算符规则一样
num -= 3        # num = num -3 = 12 - 3
print(num)      # 9

num *= 2
print(num)      # 18

num %= 3        # num = num % 3 = 18 % 3
print(num)      # 0

7. 运算符的优先级

1.数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)

  1. ** > *、/、%、// > +、-

  2. and > or

  3. 有括号先算括号里面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值