前言
Python当中常用操作符,有分为以下几类。幂运算(**
),正负号(+
,-
),算术操作符(+
,-
,*
,/
,//
,%
),比较操作符(<
,<=
,>
,>=
,==
,!=
),逻辑运算符(not
,and
,or
)。
操作符介绍
- 幂运算(
**
)
>>> 3 ** 3
27
- 正负号(
+
,-
)
#幂运算的优先级比较特殊,
#因为幂操作进行运算的时候,他和一元操作符的运算关系比较暧昧,减号(-)当作负号(-)来使用时,他是一元操作符,表示负数。
#幂操作符比其左边的操作符优先级高,比起右边的优先级低。例如:
>>> -3 ** 2
-9
>>> -(3 ** 2)
-9
>>> 3 ** -2
0.1111111111111111
>>> 3 ** (-2)
0.1111111111111111
- 算术操作符(
+
,-
,*
,/
,//
,%
)#算术操作符中,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
- 比较操作符(
<
,<=
,>
,>=
,==
,!=
)
#根据表达式的值真假来返回bool类型的值,例如:
>>> 1 < 2
True
>>> 3 > 4
False
>>> 2 == 2
True
>>> 2 != 2
False
- 逻辑运算符(
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
操作符优先级
练练手
- 把上篇博客中求闰年,用
%
改写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 + ' 不是闰年!')
- 写一个程序打印出0 ~ 100所有的奇数
i = 0
while i<= 100:
if i % 2 != 0:
print(i,end=' ')
i += 1
else:
i += 1
爱因斯坦的难题
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