前言
Python当中经常使用操做符,有分为如下几类。幂运算(**),正负号(+,-),算术操做符(+,-,*,/,//,%),比较操做符(<,<=,>,>=,==,!=),逻辑运算符(not,and,or)。git
操做符介绍
幂运算(**)
>>> 3 ** 3
27
1
2
正负号(+,-)
幂运算的优先级比较特殊,
由于幂操做进行运算的时候,他和一元操做符的运算关系比较暧昧,减号(-)看成负号(-)来使用时,他是一元操做符,表示负数。
幂操做符比其左边的操做符优先级高,比起右边的优先级低。例如:
>>> -3 ** 2
-9
>>> -(3 ** 2)
-9input
>>> 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.0it
'%' 表示求余数
>>> 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("抱歉,您的输入有误,请输入一个整数:")di
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
爱因斯坦的难题 while
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 = 0while 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