1.算数操作符
+ - * / % ** //
>>> a = b = c = d = 10
>>> a += 1
>>> b -= 3
>>> c *= 10
>>> d /= 8
>>> a,b,c,d
(11, 7, 100, 1.25)
>>>
整数除法一般是采用floor的方式,称之为地板流除法;
地板流除法概念:计算结果取比商小的最大整型,也就是舍弃小数的意思
上面可以发现,即使进行了整数间的除法,但是答案还是自动返回一个浮点型的精确数值,也就是说python用的是真正的除法
python采用了//来进行地板流除法的操作,不过要注意的是,无论是整数运算还是浮点型运算,都会执行地板流除法
>>> 3 // 2
1
>>> 3.0 // 2
1.0
>>>
百分号(%)表示求余数的意思:
>>> 5 % 2
1
>>> 9 % 6
3
2.优先级问题
当多个运算符出现在一个表达式中,严格按照优先级规定的级别进行运算
先乘除后加减,如有括号先运行括号内的
例如:-3 * 2 + 5 / -2 - 4 相当于 (-3) * 2 + 5/(-2) - 4
幂运算操作符(**)
例如: 3 ** 2 = 9
注意:在进行幂运算时,幂运算操作符和一元操作符的优先级关系比较特别
幂运算操作符比左边的一元操作符优先级高,比右边的一元操作符优先级低
>>> -3 ** 2
-9
>>> 3 ** -2
0.1111111111111111
>>>
3.比较操作符
< <= > >= == !=
比较操作符根据表达式的值的真假返回的是布尔类型的值
>>> 8 > 5
True
>>> 4 > 5
False
>>> 3 == 5
False
>>> 3 != 5
True
>>>
4.逻辑操作符
and or not
and:只有当操作符两边的操作数都为真时,结果为真
or:只需要左右任意一边为真,结果都为真,只有当两边都为假时,结果才为假
not:是一个一元操作符,它的作用是得到一个和操作数相反的布尔类型的值
>>> 8 > 5 and 5> 3
True
>>> 8 > 5 and 3 > 5
False
>>> 8 > 5 or 3 > 5
True
>>> not True
False
>>> not 0
True
>>> not 4
False
>>>
3 < 4 < 5 相当于 3 < 4 and 4<5
5.操作符的优先级
幂运算 > 正负号 > 算数操作符 > 比较操作符 > 逻辑操作符
作业题
1.Python 的 floor 除法现在使用 “//” 实现,那 3.0 // 2.0 您目测会显示什么内容呢?
依然采用floor除法 结果1.0
2.a < b < c 事实上是等于?
(a < b) and (b < c)
3.不使用 IDLE,你可以轻松说出 5 ** -2 的值吗?
幂运算的优先级比左侧高,比右侧低,结果0.04
4.如何快速判断一个数是奇数还是偶数?
利用x % 2 == 0为偶数,不符合则为奇数
5. not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9?
not and or优先级不一样:not > and > or
转换为(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
根据短路逻辑:3 and 4 == 4 3 or 4 ==3
因此最后结果为4
动手写程序
1.使用%判断一个数是否为闰年
temp = input("请输入一个年份:")
while not temp.isdigit():
temp = input("输入错误,请重新输入:")
year = int(temp)
if year % 400 == 0:
print(temp + '是闰年')
else:
if (year % 4 == 0) and (year % 100 == 0):
print(temp + '是闰年')
else:
print(temp + '不是闰年')
2.写一个程序打印出0~100所有的奇数
i = 0
while i <= 100:
if i % 2 != 0:
print(i,end=" ")
i = i + 1
else:
i = i + 1
3.其他
x = 7
flag = 0
i = 0
while i <= 100:
if (x % 2 == 1) and (x % 3 == 2) and (x % 5 == 4) and (x % 6 == 5):
flag = 1
else:
x = 7 * (i + 1)
i = i + 1
if flag == 1:
print('阶梯数是:',x)
else:
print("找不到答案")