其实一直犹豫要不要写这么基础的文章,其实很多东西都是相通的,我主学的是 Java 语言,跟 Python 同样是面向对象的语言,但是还是有些东西的使用 Python 是有区别的,担心自己弄混,所以还是写篇文章记录一下,一来方便以后自己查阅,二来也是想巩固一下所学的知识。下面就针对 Python 的运算符和控制流进行讲解,这里只介绍 Python 中比较独特的部分,和其他语言类似的东西,比如加减乘除运算符就不在介绍。由于这篇文章是入门级别的文章,高手可直接跳过。
Python 中的运算符
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
即可。运算过程如下
很明显结果是 2
,|
运算符和 &
运算步骤一样,不过 |
运算过程中,两个数同一位置上只要有一个是 1
,则结果就是 1
,可以自己去运算一下,这里就不在赘述了。
4 . >>,<<
运算符
第一眼看到这个符号,我的第一反应是远远大于和远远小于,这是是右移和左移的意思,左移和右移?怎么移?同样的需要将十进制数转化为二进制形式,然后进行左移和右移,其实左移一次等于是让一个数乘以 2
,左移n
次就是让一个数乘以 2
的 n
次,右移则相反,是除以2
的 'n' 次方。
# coding=utf-8
# 左移2位
a = 5 << 2
print a
# 右移三位
b = 32 >> 3
print b
输出结果为
20
4
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 控制流
所谓控制流,无非也就是 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() 函数可以设置步数间隔,什么意思?自己去试试吧~