day 3
1、定义变量
python定义变量的时候,需要先申请内存,内存申请多大需要看数据需要多大,然后将数据保存到内存中在和变量进行关联。
重新给变量赋值的时候,会重新申请内存,新的内存的大小由新的数据决定,并释放原来的内存。
2、数学运算符:+、-、*、/、%(取余)、//(整除)、**(幂运算)
2.1、+、-、*、/
注: python中的加减乘除和小学数学中的加减乘除的功能一样
print(2 + 5) # 7
print(2 - 5) # -3
print(2 * 5) #10
注意:
1)+、-、* 如果运算对象中有浮点数,结果就是浮点数,如果都是整数结果就是整数
print(2.0 + 5) #7.0
print(2 + 5) #7
2)/——除法运算的结果一定是浮点数
print(5 / 2)
print(4 / 2)
2.2,%——取余取模
用法:x%y—— 用X除以Y取余数
print(10 % 3) # 1
print(15 % 6) # 3
1)应用一:判断一个数是否能够被另外一个数整除,就看两个数的余数是否为0
print(15 % 3)
2) 应用二:取整数的低位数——对10或者10的幂次方取余
例:获取 num 的个位数
num = 123
print(num % 10) # 3
print(1234 % 10) # 4
print(1234 % 100) # 34
print(1234 % 1000) # 234
print(1234 % 10000) # 1234
2.3//(整除)——求商,商向小取整
print(5 // 2) # 2 2.5 3,取2
print(-5 // 2) # -3 -2.5 -2,取-3
1)应用一:去掉低位数(砍掉)
print(1234 // 10)
print(1234 // 100)
2)练习获取任意一个数的十位数
方法一:
num = 23490
print(num // 10 % 10)
百位数
print(num // 100 % 10)
千位数
print(num // 1000 % 10)
方法二(把高位去掉,再砍掉低位)
百位数
print(num % 100 //10)
2.4 * *(幂运算)
用法 x**y——求X的5次方
print(3**5) # 3的5次方
用法: 开方
print(16**0.5)
print(8**(1/3))
print(8**(-3))
3、比较运算符>、<、>=、<=、==、!=
3.1 所有比较运算符的运算结果都是布尔值
print(10 > 20) # False
print(5 > 5) # False
print(5 >= 5) # True
3.2 python可以直接通过比较运算符来表示范围
x = 8
y = 23
print(0 <= x <= 10) # True
print(0 <= y <= 10) # False
4、逻辑运算符:and(逻辑与运算)、 or(逻辑或运算)、 not(逻辑非运算)
4.1 and——并且
应用场景:用于需要多个条件同时成立的时候,相当于生活中的且
运算规则:条件1 and 条件2——两个条件都是True结果才是True
True and True——True
True and False——False
False and False——False
False and True——False
1)练习:判断 num 是否能被3和5整除
num = 89
print(num % 3 == 0 and num % 5 == 0)
- 练习:写出是否可以获取奖学金——绩点不低于3.5,并且分数高于90
gpa = 4.0
score = 89
print('是否可以获取奖学金:', gpa >= 3.5 and score > 90)
if gpa >= 3.5 and score > 90:
print('s')
else:
print('fou')
4.2 or(逻辑或运算)
应用场景:用于需要多个条件只要有一个满足就可以的情况,相当于生活中的或者
运算规则:条件1 or 条件2——两个只要有一个是True,就是True;都是False才是False
True and True——True
True and False——True
False and False——False
False and True——True
1)练习:判断V保存的数据是否是数字数据
数字分为:int、floa
v = 89
print(type(v) == int or type(v) == float)
- 练习:中奖规则:十位数是0的奇数号或者个位数加十位数是2的号
num = 111
shi_wei = num // 10 % 10
print('是否中奖:', (num // 10 % 10 == 0 and num % 2 != 0) or (num % 10 + num // 10 % 10 == 2))
print('是否中奖:', (shi_wei == 0 and num % 2 != 0) or (num % 10 + shi_wei == 2))
注意:整除用的是取余%
4.3not(逻辑非运算)
应用场景:对一个条件进行否定:当一个条件正向写很复杂,反向确很简单
运算条件:not 条件
not True -False
not False - True
age = 18
print('大于等于18', age >= 18)
print('bu大于等于18', not age >= 18)
print('bu大于等于18', age < 18)
1)练习:写出num不能同时被3和7整除的条件
方法一:正向写
num = 23
print((num % 3 == 0 and num % 7 != 0) or (num % 3 != 0 and num % 7 == 0) or (num % 3 != 0 and num % 7 != 0))
方法二: 反向写
print(not (num % 3 == 0 and num % 7 == 0))
5、赋值运算符:=,+=,-=,*=,/=,%=,//=、**=
所有赋值运算符的功能都是将数据直接或者间接存储到一个变量里面,不会产生任何结果
用法:变量 赋值运算符 数据
重要结论:赋值运算表达式是没有结果的
5.1.=——变量=数据
5.2复合的赋值运算符+=,-=,*=,/=,%=,//=、**=
1) 变量+=数据 ——先取出变量中的数据+等于号后面的数据,再将运算结果赋值给变量
注意:前面的变量需要已经定义赋值
b=10
b+=1
print(b) #b=11
5.3运算符的优先级
数学运算符>比较运算符> 逻辑运算符> 赋值运算符
例如:
print(10+20 > 20+5)
数学运算符:** >* 、/ 、% 、// > + 、-
6、分支结构
6.1 流程控制——程序执行方式
1)顺序结构——代码从上往下依次执行,每条语句执行一次
2)分支结构—— 根据条件选择执行或者不执行
3)循环结构——让代码重复执行
6.2、if语句
1)if单分支结构——满足条件执行某个操作,如果条件不满足这个操作就不执行
语法:
if 条件语句:
代码段
说明:
if - 固定写法(关键字)
条件语句 - 任何有结果的表达式:如:具体的数据,保存数据的变量
注: 赋值运算不可以
: - 固定写法
代码段 - 从结构上就是和if保持一个缩进的一条或者多条语句。
执行过程:先判断条件语句是否为True,如果是就执行代码段,然后再执行其他的代码
如果是False就不执行代码段,直接执行其他的代码段
如果条件语句不是bool,就转化成bool再看。其他数据转bool,除了0和空值其他都是True
练习1:如果num是偶数就打印偶数
num = 23
if num % 2 == 0:
print('偶数')
练习2:根据年龄打印’成年‘
age = 23
if age >= 18:
print('成年')
练习3:判断指定的年是否是闰年,是则打印’闰年‘
year = 2002
if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
print('闰年')
2)if双分支结构——满足条件执行某个操作,不满足的时候执行另一个
if-else:相当于生活中的:如果…就…,否则就…
语法:
if 条件语句:
代码段1(满足执行)
else:
代码段2(不满足执行)
根据num的值打印’偶数’或者‘奇数‘
num = 78
if num % 2 == 0:
print('偶数')
else:
print('奇数')
方法二
if num % 2:
print('偶数')
else:
print('偶数')
根据年值打印’成年‘或者’未成年’
age = 8
if age >= 18:
print('成年')
else:
print('未成年')
3)if多分钟结构——根据不同的条件做不一样的事情
方案一:直接使用if
方案二:使用:if-elif-else
if 条件1:
代码段1
elif条件2:
代码段2
elif条件2:
代码段2
else:
代码段N
后面的条件是在前面的条件不不满足时,所有条件都不满足才执行else
练习:成绩分类
x>=90 —— A
80<=x<90 —— B
70<=x<80 —— C
60<=x<7 ——D
x<=60 —— E
grade = float(input('分数:'))
if grade >= 90:
print('A')
elif grade >= 80:
print('B')
elif grade >= 70:
print('C')
elif grade >= 60:
print('D')
else:
print('不合格')
练习: 根据年龄值打印 ‘儿童’、‘少年’、‘青年’、‘壮年’、‘中年’、‘老年’
儿童 - 12岁以下
少年 - 12 ~ 18
青年 - 18 ~ 28
壮年 - 28 ~ 40
中年 - 40 ~ 60
老年 - 60以上
age = int(input('输入年龄:'))
if age >= 60:
print('老年')
elif 40 <= age < 60:
print('中年')
elif 28 <= age < 40:
print('壮年')
elif 18 <= age < 28:
print('青年')
elif 12 <= age < 18:
print('少年')
else:
print('儿童')