Python入门教程之运算符与控制流


Posted in Python onAugust 17, 2016

Python 中的运算符

什么是运算符?举个简单的例子 4 +5 = 9 。 例子中,4 和 5 被称为操作数,"+" 称为运算符。

1 . 求幂运算符

在 Java 中如果我们想对一个数进行求幂运算,我们可能要借助于 Math 库中的 pow() 函数,但是在 Python 中我们可以使用两个连续的 * 表示求幂运算。

a = 5 ** 2
print a

2 . // 运算符

可能很多人要说了,这个我认识,我打注释经常用双斜杠,可是很尴尬, Python 中的单行注释符号为 # ,多行注释可以使用 ''' ,那么 // 是用来干嘛呢?用来求两数相除的整数部分。

a = 10.0 // 3
print a

这个时候就会输出 3.0 ,也就是相除的整数部分,余数被忽略。

3 . & , | 运算符

这两个运算符大家都认识, & 按位与 , | 按位或,下面来讲讲这两个运算符的运算原理,看一个数 7&18 等于多少呢? 放到编译器里运行一下试试吧

a = 7 & 18
print a

打印的结果为 2 ,为什么呢?很简单,我们首先需要将 7 和 18 转换为 二进制, 7-> 00000111 18->00010010 , 然后将这两个二进制进行与运算,什么是与运算呢?只需要记住两个数同一位置上都为 1 的时候结果为 1 ,其他都为 0 即可。运算过程如下

Python入门教程之运算符与控制流

很明显结果是 2 , | 运算符和 & 运算步骤一样,不过 | 运算过程中,两个数同一位置上只要有一个是 1 ,则结果就是 1 ,可以自己去运算一下,这里就不在赘述了。

4 . >>,<< 运算符

第一眼看到这个符号,我的第一反应是远远大于和远远小于,这是是右移和左移的意思,左移和右移?怎么移?同样的需要将十进制数转化为二进制形式,然后进行左移和右移,其实左移一次等于是让一个数乘以 2 ,左移 n 次就是让一个数乘以 2 的 n 次,右移则相反,是除以 2 的 ‘n' 次方。

# coding=utf-8

# 左移2位
a = 5 << 2
print a

# 右移三位
b = 32 >> 3
print b

5 . not, and, or 运算符

这三个是逻辑运算符,在其他的编程语言中如果你想表示或与非,你可能会使用这样的格式 ||,&&,! ,但是在 Python 中需要使用 or,and,not 。

a = True
b = False

c = not a
d = a and b
e = a or b

print c
print d
print e

结果依次为 False False True

6 . 我们不在介绍运算符,来看看运算符的优先级,我做了个图

Python入门教程之运算符与控制流

越靠近鱼头,等级越高。

Python 控制流

所谓控制流,无非也就是 if..else,while,for 等。基本的使用大家都会,不过 Python 总有它特殊的地方,下面来看看。

1 . if...else

if 判断语句有一个值得介绍的地方,如下所示

a = 10
if 5 <= a <= 10:
  print a

在 Java 语言中,你恐怕要这么写

int a = 10;
if(a >= 5 && a <= 10){
  System.out.println(a);
}

2 . while , for

唯一需要记住的一点就是,在 Python 中,无论是 for 还是 while ,都可以像 if 一样,在后面加 else 语句, else 语句在循环语句跳出来之后会执行。

a = False
while a:
  print ("I am while")
else:
  print ("I am else")

for i in range(1, 2):
  print ("I am for")
else:
  print ("I am else")

小提示: range() 函数可以设置步数间隔,什么意思?自己去试试吧~

总结

以上就是关于Python中运算符与控制流的全部内容,这篇文章讲的是基础入门知识,但也是很重要的一部分,希望对大家使用Python能有所帮助。

Python 相关文章推荐
Python ValueError: invalid literal for int() with base 10 实用解决方法
Jun 21 Python
Python的socket模块源码中的一些实现要点分析
Jun 06 Python
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
Oct 20 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
Feb 26 Python
PyQt5每天必学之工具提示功能
Apr 19 Python
关于python2 csv写入空白行的问题
Jun 22 Python
详解python的sorted函数对字典按key排序和按value排序
Aug 10 Python
python中pip的安装与使用教程
Aug 10 Python
python如何实现不用装饰器实现登陆器小程序
Dec 14 Python
Python函数参数分类原理详解
May 28 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 Python
python 循环while和for in简单实例
Aug 16 #Python
Python自动化测试ConfigParser模块读写配置文件
Aug 15 #Python
Python自动化测试Eclipse+Pydev 搭建开发环境
Aug 15 #Python
详解python的几种标准输出重定向方式
Aug 15 #Python
如何将python中的List转化成dictionary
Aug 15 #Python
怎样使用Python脚本日志功能
Aug 14 #Python
Python函数的周期性执行实现方法
Aug 13 #Python
You might like
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
Yii 使用intervention/image拓展实现图像处理功能
2019/06/22 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
js如何准确获取当前页面url网址信息
2020/09/13 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
利用JS测试目标网站的打开响应速度
2017/12/01 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
python 同时运行多个程序的实例
2019/01/07 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
Pytorch实现的手写数字mnist识别功能完整示例
2019/12/13 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
Python lambda表达式原理及用法解析
2020/08/18 Python
南京某软件公司的.net面试题
2015/11/30 面试题
shell程序中如何注释
2012/02/17 面试题
护士感人事迹
2014/05/01 职场文书
科技活动周标语
2014/10/08 职场文书
会计电算化实训报告
2014/11/04 职场文书
母亲节寄语大全
2015/02/27 职场文书
联谊活动总结范文
2015/05/09 职场文书
新员工辞职信范文
2015/05/12 职场文书
2015年科协工作总结
2015/05/19 职场文书
车间班组长竞聘书
2015/09/15 职场文书
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫