运算符和分支结构
一、格式化输出
1.旧式字符串格式化方法
–> 按照顺序依次传值
a. 我们经常用的占位符分别有:%s、%d(d表示十进制)、%f -->分别对应表示字符串、整型、浮点型
b. 语法:‘字符串’ % vaules
比如:
age = 18
name = '李华'
print('%s今年%d岁,考了%.1f分,考上了大学'%(name, age, 600.5)
c. 注意:
%f默认6位小数,%.Nf可以给任意设置大于0的整数 来调整小数位数,使用时注意N前面有一个 . 小数点
d. 千万不要将三者混用,不然会报错
2.format方法(.format)
a. 语法:字符串中有几个{},fomat就需要传递几个数据
age = 18
name = '李华'
b = '{}今年{}岁, 考了{}分,考上了大学'.format(name, age, 600.5 )
3.f-string (格式化字符串字面值)
以上三个结果分别如下:
注:
当数字的小数点很多,而又要求要保留一位或几位小数时,可以用 :.方法
二、运算符
平时常用的运算符有:算术运算符、比较运算符、赋值运算符、逻辑运算符。
-
算术运算符有以下:
(+、-、*、/、//(整除)、%(取模,取余)、**(幂运算))
注!!!!:
a. python的除法运算结果永远为float
a = 4
b = 100
print(b / a)
#结果为 25.0
b. 整除获取的是除法运算结果的整数部分,直接舍弃小数部分
print(b // a, 99 // 10, 50 // 3)
#结果为25、9、16
2.比较运算符
<、>、>=(大于或等于)、<=(小于或等于)、!=(不等于)、==(等等于)
3.赋值运算符
c.开方,得到的结果永远为float
print(4 ** 2, 16 ** 0.5)
#结果为16、4.0
a. 比较运算符的结果永远为成立或不成立 ---> True或者False
print(2 > 3) # False
print(2 >= 2) # True
print(2 == 2) # True
print(2 != 3) # True
b. 优先级:算术运算符 > 比较运算符
print(100 + 200 > 250) # True
print(100 + (200 > 250)) # 100
c. 如果布尔类型涉及到数学运算,自动转换为0或1
3.赋值运算符
=、+=、-=、*=、/=、//=、**=、%=
a. 当变量没有初始值时,先给变量赋初始值
a = 100
a += 20
# 将 a += 20 改写成a = a + 20
得到结果a = 120
b. 变量的重新赋值
a //= 30
同理,将 a //= 30 改写成 a = a // 30
结果a = 4
# 第二个a是之前计算的120
练习:复合赋值运算符
a %= a + 1 * 2
问,a现在是多少?
原理同上面一样:将题目改写成a = a % (a + 1 * 2)
# 右边的a是之前计算的a=4
本小章总结:
1.所有赋值运算符的目的是为了给左边的变量赋值
2.如果某个变量不存在,只能使用=先去创建。
3.复合赋值运算,要把右边的公式看成一个整体。
4.先算等号右边,再算等号左边。
4.逻辑运算符
a. --> and知识点:
and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算)
a_1 语法:条件1 and 条件2
a_2 解释:
+a. and两边跟条件,and结果为布尔值类型,
+b. and两边条件都成立的时候,结果为True;反之,只要有一个条件不成立,结果均为False
a_3 中断机制:如果条件1不成立,直接给结果为False,条件2无需判断。
优先级:比较运算符 > 逻辑运算符
print(3 > 2 and 2 < 5)
# 结果为True
print(3 < 2 and 2 > 1)
# 结果为False
b. --> or 知识点:
b_1 语法:条件1 or 条件2
b_2 解释:
>+a. and两边跟条件,or结果为布尔值类型,
>+b. or两边只有条件都不成立的时候,结果为False;反之,只要有一个条件成立,结果均为True
b_3 中断机制:如果条件1成立,结果直接True,条件2无需判断。
练习:
判断一个年份是否是闰年,返回True或者False
条件:能够被4整除但是不能被100整除;或者能够被400整除。 地球公转时间:365天5小时40秒,
近似为365天6小时,每4年多的1天放到2月 ,但是因为近似原因,每400年多算了3个闰年,从每400
年的第100、200、300年减掉闰年。
答案如下:
years = 1000
is_leap = (years % 4 == 0 and years % 100 != 0) or years % 400 == 0
print(is_leap)
c. —>not 知识点
c_1. 语法:not 条件
c_2. 解释:取反,获得结果的对立面
常用运算符的优先级如下:
1. 算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
2. 算术运算符:** > *、/、//、% > +、-
3. 如果某个条件加了(),优先算计小括号这个小整体
-
分支结构
a.分支结构会涉及到的python关键字有:if、else、elif
b.语法:单分支结构(二选一)、多分支结构(多选一)
c. 单分支结构
平时我们遇到的注册,登录功能就属于单分支结构
>+c_1. 如果遇到某行代码末尾出现:下一行有4个空格的缩进
>+c_2. 语法:
if 条件(布尔值): 代码块1
else: 代码块2
如果if后面的条件成立(True),执行代码块1;反之,执行代码块2
练习:
- 判断一个年份是否是闰年。返回闰年或平年
代码如下:
years = int(input('请输入需要判断的年份:'))
if (years % 4 == 0 and years % 100 != 0) or years % 400 == 0: print('闰年')
else:
print('平年')
- 判断一个人是否成年
代码如下:
age = 17
if age >= 18:
print('成年')
else:
print('未成年')
d.—> 多分支结构
我们用一个练习题来说明解释一下多分支结构如:0~100的成绩:划分为A、B、C、D、E将其表示成代码:
score = 66
if score >= 90:
print('A')
elif score >= 80 and score < 90:
print('B')
elif score >= 70 and score < 80:
print('C')
elif score >= 60 and score < 70:
print('D')
else:
print('E')
d_1. 语法:
if条件1:
代码块1
elif: 条件2:
代码块2
...........
else:
代码块N
练习:
改写一个年份为闰年为多分支结构
years = 2023
if years % 4 == 0 and years % 100 != 0:
print('闰年')
elif years % 400 == 0:
print('闰年')
else:
print('平年')