课时6:Python之常用操作符
目录:
一、算术操作符
二、优先级问题
三、比较操作符
四、逻辑操作符
五、课时06课后习题及答案
******************
一、算术操作符
******************
>>> a = b = c = d = 10
>>> a += 1
>>> b -= 3
>>> c *= 10
>>> d /= 8
>>> (a,b,c,d)
(11, 7, 100, 1.25)
在这里我们发现,即使是进行整数间的除法,但是答案是自动返回一个浮点型的精确数值,也就是说Python用真正的除法代替了地板除法。 地板除法的概念是:计算结果取比商小的最大整型,也就是舍弃小数的意思。(注:例如3 / 2等于1)
>>> 3 / 2
1.5
>>> 3 // 2
1
>>> 3.0 // 2
1.0
>>> 3.0 / 2
1.5
值得注意的一点是,无论是整数运算还是浮点数运算,都不会执行地板除法。需要用//。
>>> 5%2
1
>>> 4%2
0
>>> 520 % 14
2
>>>
百分号(%)表示求余数的意思。
******************
二、优先级问题
******************
先乘除后加减,如有括号先算括号里的。
>>> -3 * 2 + 5 / -2 -4
-12.5
>>> (-3) * 2 + 5 / (-2) -4
-12.5
Python中还有一个特殊的乘法,就是双星号(**),也称为幂运算操作符。例如3**2,双星号左侧的3称为底数,右侧的2称为指数,把这样的算式叫作3的2次幂,结果就是3*3==9.
在使用Python进行幂运算的时候,需要注意一点是优先级问题,因为幂运算操作符和一元操作符(只有一个操作数)的优先级关系比较特别:幂运算操作符比其左侧的一元操作符优先级高,比其右侧的一元操作符优先级低:
>>> -3 ** 2
-9
>>> - (3 ** 2)
-9
>>> 3 ** -2
0.1111111111111111
>>> 3 ** (-2)
0.1111111111111111
******************
三、比较操作符
******************
比较操作符包括:< <= > >= == !=
比较操作符根据表达式的值的真假返回布尔类型的值。
******************
四、逻辑操作符
******************
逻辑运算符包括: and or not
and :同真为真
or:同假为假
not :它的作用是得到一个和操作数相反的布尔类型的值
>>> not True
False
>>> not 0
True
>>> not 4
False
>>> 3 < 4 <5
True
>>> 3 < 4 and 4 < 5
True
在Python中,0解释为False,非0的数解释为True。
Python操作符优先级:

*******************************
五、课时06课后习题及答案
*******************************
测试题:
0. Python 的 floor 除法现在使用 “//” 实现,那 3.0 // 2.0 您目测会显示什么内容呢?
1. a < b < c 事实上是等于?
2. 不使用 IDLE,你可以轻松说出 5 ** -2 的值吗?
3. 如何简单判断一个数是奇数还是偶数?
4. 请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or
7 and 8 and 9
5. 还记得我们上节课那个求闰年的作业吗?如果还没有学到“求余”操作,还记得用什么方法可以“委曲求全”代替“%”的功能呢?
动动手:
0. 请写一个程序打印出 0~100 所有的奇数。
1. 我们说过现在的 Python 可以计算很大很大的数据,但是......真正的大数据计算可是要靠刚刚的硬件滴,不妨写一个小代码,让你的计算机为之崩溃?
2. 爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
题目:请编程求解该阶梯至少有多少阶?
答案:
测试题答案:
0. Python 的
floor 除法现在使用 “//” 实现,那 3.0 //
2.0 您目测会显示什么内容呢
如果回答是 1.5 那么很遗憾,您受到 C 语言的影响比较大,Python 这里会义无反顾地执行 floor 除法原则,答案是:1.0
1. a < b < c 事实上是等于?
(a < b) and (b < c)
2. 不使用 IDLE,你可以轻松说出 5
** -2 的值吗?
0.04,也就是 1/25
幂运算操作符比其左侧的一元操作符优先级高,比其右侧的一元操作符优先级低。
3. 如何简单判断一个数是奇数还是偶数?
使用求余可以简单得到答案:能被 2 整除为偶数,所以 x %
2 == 0,否则为奇数。
4. 请用最快速度说出答案:not 1 or 0 and 1 or 3 and 4 or
5 and 6 or 7 and 8 and 9
如果你的回答是 0,那么小甲鱼很开心你中招了!
答案是:4
not or and 的优先级是不同的:not > and > or
我们按照优先级给它们加上括号:(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
为啥是 4?
大家还记得第四讲作业提到的“短路逻辑”吗?3 and 4 == 4,而 3 or 4 == 3。
所以答案是:4
温馨提示:为了更好的表达你的程序,小甲鱼再次呼吁有些括号还是不能省下的,毕竟不是所有程序员都跟你一样都将优先级烂透于心的。
5. 还记得我们上节课那个求闰年的作业吗?如果还没有学到“求余”操作,还记得用什么方法可以“委曲求全”代替“%”的功能呢?
因为上节课我们还没有教大家“求余”的操作,所以小甲鱼使用了“if year/400 == int(year/400)”这样的方式来“委曲求全”。
动动手答案:
0. 请写一个程序打印出 0~100 所有的奇数。
i = 0
while i <= 100:
if i % 2 != 0:
print(i, end=' ')
i += 1
else:
i += 1
或者:
i = 0
while i <= 100:
if i % 2 != 0:
print(i,end=" ")
i+=1
1. 我们说过现在的 Python 可以计算很大很大的数据,但是......真正的大数据计算可是要靠刚刚的硬件滴,不妨写一个小代码,让你的计算机为之崩溃?
print(2 ** 2 ** 32)
# 一般很多机子都会在一会儿之后:Memory Overflow,内存不够用。
# 设计到幂操作,结果都是惊人滴。
2. 题目:请编程求解该阶梯至少有多少阶?
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('在程序限定的范围内找不到答案!')
课时6:Python之常用操作符的更多相关文章
- 零基础入门学习Python(6)--Python之常用操作符
前言 Python当中常用操作符,有分为以下几类.幂运算(**),正负号(+,-),算术操作符(+,-,*,/,//,%),比较操作符(<,<=,>,>=,==,!=),逻辑运 ...
- python 03 常用操作符
1. e记法,科学计数法. AeB A,B为整数,A*10的B次方. 2. 逻辑运算,真为1,假为0,最好不使用这个计算 true(1) false(0) true+true=2 3.类型转 ...
- python 正则表达式常用操作符
- Pyhon之常用操作符 - 零基础入门学习Python006
Pyhon之常用操作符 让编程改变世界 Change the world by program 今天我们来谈谈Python之常用操作符,在此之前的一些例子中,大家已经看到Python可以完成简单的算术 ...
- Python常用操作符
Python常用操作符 1.成员关系操作符in 显示的数字前面填充'0'代替空格 6.转义字符 符号 含义 \' 单引号\" 双引号\a 发出系统响铃声\b 退格符\n 换行符\t 横向制表 ...
- Kotlin——高级篇(五):集合之常用操作符汇总
在上一篇文章Kotlin--高级篇(四):集合(Array.List.Set.Map)基础中讲解到了数组Array<T>.集合(List.Set.Map)的定义与初始化.但是由于篇幅的原因 ...
- Python:格式化操作符(%)
原文作者:田小计划 原文出处:http://www.cnblogs.com/wilber2013/ (若转载,请标明原文出处) 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整 ...
- Python学习常用的好网站
以下总结出自己在学习python期间常用的网址或者资源,其中包括很多人的博客,方便自己从这个入口查找资源. 1.https://www.liaoxuefeng.com/wiki/00143160895 ...
- python字符串常用内置方法
python字符串常用内置方法 定义: 字符串是一个有序的字符的集合,用与存储和表示基本的文本信息. python中引号中间包含的就是字符串. # s1='hello world' # s2=&quo ...
随机推荐
- 20145238-荆玉茗 《Java程序设计》第五次实验报告
实验五 Java网络编程及安全 一.实验内容 1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代码,一人加密后通过TCP ...
- 第44章 MPU6050传感器—姿态检测—零死角玩转STM32-F429系列
第44章 MPU6050传感器—姿态检测 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.co ...
- 阿里数据库连接池druid
官方wiki: https://github.com/alibaba/druid/wiki 实用方法介绍的想当详细,包含监控.扩展.大力推荐!
- C#+Winform记事本程序
第17章 记事本 如何使用Visual C# 2010设计一个Windows应用程序——记事本,学习,可以进一步掌握MenuStrip(菜单).ToolStrip(工具栏).RichTextBox(高 ...
- PHP中json_encode后,在json字符串中依然显示中文的解决方案
<?php header("Content-Type:text/html;charset=utf-8;"); $arr = array ('Version_code'=> ...
- 交换机基础配置之结合以太通道的vlan设置
我们将以上面的拓扑图来做实验,建立以太通道,并设置好vlan,将pc1和pc3放在同一vlan,将pc2和pc4放在同一vlan,同一vlan能跨交换机通信 在一切还没布置之前,四台pc机都在同一网段 ...
- 给树莓派Raspbian stretch版本修改软件源
树莓派最新的系统版本是stretch,试了阿里和网易的软件源都不行,最后试了清华的可以 deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbia ...
- 3.4.2 Undefined类型【JavaScript高级程序设计第三版】
Undefined 类型只有一个值,即特殊的 undefined.在使用 var 声明变量但未对其加以初始化时,这个变量的值就是 undefined,例如: var message; alert(me ...
- C# 不同窗口传递参数
form1: private void button1_Click(object sender, System.EventArgs e) { Form2 frm = new Form2(); frm. ...
- B1086 就不告诉你 (15分)
B1086 就不告诉你 (15分) 做作业的时候,邻座的小盆友问你:"五乘以七等于多少?"你应该不失礼貌地围笑着告诉他:"五十三."本题就要求你,对任何一对给定 ...