【python学习笔记】常用操作符

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("找不到答案")

猜你喜欢

转载自blog.csdn.net/mr_humi/article/details/80785400