零基础入门学习Python(6)-常用操作符

算术操作符

+- * /(真实除法) %(取余数) ** //(整除)
在Python中,可以这样写:a = a + 3等同于a += 3
在这里插入图片描述
也可以这样子: a = b = c = d = 10
Python3 的除法已经变成真实的除法,即会返回一个浮点型的值
在这里插入图片描述
//执行的是地板除法,即返回比商小的整数
在这里插入图片描述

%:取余数
在这里插入图片描述
被除数X = (x // y)y + (x % y)

**指数运算操作符
在这里插入图片描述

一些函数

divmod():同时求出地板除的结果和余数

divmod(3,2)
(1, 1)
divmod(-3,2)
(-2, 1)

abs():取绝对值

x = -520
abs(x)
520
z = 1 + 2j
abs(z)#取复数的模
2.23606797749979

int():取整,直接把浮点数截肢,不是四舍五入哦

int(9.99)
9
int(3.01)
3

complex():返回复数

在这里插入图片描述

float():指定的值转换为浮点数

float('3.14')
3.14
float(520)
520.0

pow():幂运算

pow(2,3)
8
2 ** 3
8
pow(2,-3)
0.125
2 ** -3
0.125
pow(2,3,5)# =2 ** 3 % 5
3
2 ** 3 % 5
3

比较操作符

根据表达式的真假来返回布尔类型的值
<; <=;>; >=; ==; !=

逻辑操作符

and:当其左侧和右侧同时为True时,其结果才为True;左右边只要有一个False,结果就为False
or:只需要左边或者右边为True时,结果才为True;只有两边同时为False时,结果才为False
not:一元操作符,取其相反的布尔类型的值
非0的数都为True
在这里插入图片描述

在这里插入图片描述
在Python中,3<4<5等同于(3<4)and (4<5)
注意Python中任何对象都能直接进行真值测试(测试该对象的布尔类型值为True或者False),用于if或者while语句的条件判断,也可作为布尔逻辑运算符的操作数
在这里插入图片描述

短路逻辑

  • 核心思想:从左往右,只有当第一个操作数的值无法确定逻辑运算的结果时,才对第二个操作数进行求值
  • 从Python的角度看,根本没有必要将最终结果判断完再进行汇报,更高效率的方法是,直接把影响结果的关键值抛出来即可
    在这里插入图片描述

优先级问题

当一个表达式同时存在多个运算符时,就可能存在优先级问题,先乘除后加减 ,比较操作符要比逻辑操作符高,必要时要增加()以增加代码的可读性
在这里插入图片描述
**指数操作符要比其左侧一元运算符的优先级高,但比其右侧的一元运算符的优先级低
如下图
在这里插入图片描述
幂运算(**)>正负号(+ - )>算术操作符(+ - * / //)>比较操作符(<; <=;>; >=; ==; != >)逻辑运算符(not; and; or)
not > and > or

Task

  1. Python 的 floor 除法现在使用 “//” 实现,那 3.0 // 2.0 您目测会显示什么内容呢?
    1

  2. a < b < c 事实上是等于?
    (a<b)and (b<c)

  3. 不使用 IDLE,你可以轻松说出 5 ** -2 的值吗?

0.04
3. 如何简单判断一个数是奇数还是偶数?
取余数判断%

while 1:#保证程序可以运行n次
    number = input("请输入一个非0的数:")
    a = int(number)
    b = a % 2
    if b == 1:
        print("是奇数")
    else:
        print('是偶数')

在这里插入图片描述

  1. 请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
    ((not 1)or 0) and (1 or 3) and (4 or 5) and (6 or 7) and (8 or 9)= 0 and 1 and 4 and 6 and 8 = 0(错了)
    (not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)= 0 or 0 or 4 or 6 or 9=4
    短路逻辑:3 and 4 == 4 ,而 3 or 4 == 3
  2. 还记得我们上节课那个求闰年的作业吗?如果还没有学到“求余”操作,还记得用什么方法可以“委曲求全”代替“%”的功能呢?
    看整除与真实除法是否相等if int(a/400) == a/400
    用取余数的方法:
year = input('请输入一个年份:')
while year.isdigit() == 1:
    a = int(year)
    b = a % 400
    c = a % 4
    d = a % 100 
    if b == 0:
        print('闰年')
    else:
        if c == 0 and d != 0:
            print('闰年')
        else:
            print("不是闰年")
    year = input('请输入一个年份:')
if year.isdigit() == 0:
    print('输入不合法') 
    year = input('要输入整数哦:')
    while year.isdigit() == 1:
        a = int(year)
        b = a % 400
        c = a % 4
        d = a % 100
        if b == 0:
            print('闰年')
        else:
            if c == 0 and d != 0:
                print('闰年')
            else:
                print("不是闰年")
        year = input('请输入一个年份:')

在这里插入图片描述
6.请写一个程序打印出 0~100 所有的奇数。

print('0-100内的所有奇数:')
i = 0
while i <= 100:
    if i % 2 == 1:
        print(i)
        i = i + 1
    else:
        i += 1

在这里插入图片描述
7. 我们说过现在的 Python 可以计算很大很大的数据,但是…真正的大数据计算可是要靠刚刚的硬件滴,不妨写一个小代码,让你的计算机为之崩溃?
在这里插入图片描述
8.爱因斯坦的难题
爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
(小甲鱼温馨提示:步子太大真的容易扯着蛋~~~)请编程求解该阶梯至少有多少阶?

小甲鱼代码:

x = 7
i = 1
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) # 根据题意,x一定是7的整数倍,所以每次乘以7
    i += 1

if flag == 1:
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值