前言
Python当中常用操作符,有分为以下几类。幂运算(**),正负号(+,-),算术操作符(+,-,*,/,//,%),比较操作符(<,<=,>,>=,==,!=),逻辑运算符(not,and,or)。
操作符介绍
幂运算(**)
>>> 3 ** 3
27
1
2
正负号(+,-)
幂运算的优先级比较特殊,
因为幂操作进行运算的时候,他和一元操作符的运算关系比较暧昧,减号(-)当作负号(-)来使用时,他是一元操作符,表示负数。
幂操作符比其左边的操作符优先级高,比起右边的优先级低。例如:
>>> -3 ** 2
-9
>>> -(3 ** 2)
-9
>>> 3 ** -2
0.1111111111111111
>>> 3 ** (-2)
0.1111111111111111
1
2
3
4
5
6
7
8
9
10
11
12
算术操作符(+,-,*,/,//,%)
算术操作符中,a = a + 5 可以写成 a + = 5,其他算数操作符也适用,例如:
>>> a = b = c = d = 10
>>> a += 1
>>> b -= 3
>>> c *= 10
>>> d /= 8
>>> a
11
>>> b
7
>>> c
100
>>> d
1.25
'//' 表示floor除
>>> 3 // 2
1
>>> 3.2 // 2.0
1.0
>>> 3.2 // 2
1.0
'%' 表示求余数
>>> 9 % 2
1
>>> 9 % 7
2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
比较操作符(<,<=,>,>=,==,!=)
根据表达式的值真假来返回bool类型的值,例如:
>>> 1 < 2
True
>>> 3 > 4
False
>>> 2 == 2
True
>>> 2 != 2
False
1
2
3
4
5
6
7
8
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
4
等价于加上括号之后的:
>>> (not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
4
1
2
3
4
5
6
操作符优先级
练练手
把上篇博客中求闰年,用%改写
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 + ' 不是闰年!')
1
2
3
4
5
6
7
8
9
10
11
12
13
写一个程序打印出0 ~ 100所有的奇数
i = 0
while i<= 100:
if i % 2 != 0:
print(i,end=' ')
i += 1
else:
i += 1
1
2
3
4
5
6
7
8
爱因斯坦的难题
i = 1
x = 7
flag = 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 += 1
if flag == 1:
print('阶梯数是:',x)
else:
print('在程序限定范围内找不到答案!')
------------------------------------------------------------------------------------------------
x = 0
while 1:
if (x%2 ==1) and (x%3 ==2) and (x%5 ==4) and (x%6 ==5) and (x%7 ==0):
print('阶梯数是:',x)
break
else:
x += 1