运算符是一些符号,它告诉 Python 解释器去做一些数学或逻辑操作。一些基本的数学操作符如下所示:

>>> a=8+9
>>> a
17
>>> b=1/3
>>> b
0.3333333333333333
>>> c=3*5
>>> c
15
>>> 4%3
1

下面是一个计算天数的脚本

#/usr/bin/env python3
#coding:utf8
days = int(input("please enter days:"))
mouth = days // 30
day0 = days %30
print "You enter %s days"%days
print("Total is {} mouths and  {} days".format(mouth,day0))
root@zwjfdisk2016:~/file/1# python days.python
please enter days:1000
You enter 1000 days
Total is 33 Mouths and  10 Days

也可以用divmod函数实现,divmod(num1, num2) 返回一个元组,这个元组包含两个值,第一个是 num1 和 num2 相整除得到的值,第二个是 num1 和 num2 求余得到的值,然后我们用 * 运算符拆封这个元组,得到这两个值。

>>> import sys
>>> c=divmod(100,30)
>>> c
(3, 10)
#!/usr/bin/env python3
days = int(input("Enter Days:"))
print("Total  is {} mouths and {} days".format(*divmod(days,30)))

oot@zwjfdisk2016:~/file/1# python3  daysv2.py 
Enter Days:100
Total  is 3 mouths and 10 days

效果是一样的

关系运算符

Operator Meaning
< Is less than #小于
<= Is less than or equal to #小于等于
> Is greater than#大于
>= Is greater than or equal to#大于等于
== Is equal to #等于
!= Is not equal to#不等于
>>> 1 == 1
True
>>> 2 > 3
False
>>> 23 == 24
False
>>> 34 != 35
True

逻辑运算符

对于逻辑 与,或,非,我们使用 and,or,not 这几个关键字。

逻辑运算符 and 和 or 也称作短路运算符:它们的参数从左向右解析,一旦结果可以确定就停止。例如,如果 A 和 C 为真而 B 为假,A and B and C 不会解析 C 。作用于一个普通的非逻辑值时,短路运算符的返回值通常是能够最先确定结果的那个操作数。

关系运算可以通过逻辑运算符 and 和 or 组合,比较的结果可以用 not 来取反意。逻辑运算符的优先级又低于关系运算符,在它们之中,not 具有最高的优先级,or 优先级最低,所以 A and not B or C 等于 (A and (notB)) or C。当然,括号也可以用于比较表达式

>>> 4 and 3
3
>>> 0 and 2
0
>>> False or 4 or 5
4
>>> 2 > 1 and not 3 > 5 or 4
True
>>> False and 3
False
>>> False and 4
False

简写运算符

x op= expression 为简写运算的语法形式。其等价于 x = x op expression 

>>> a = 3
>>> a += 20
>>> a
23
>>> a /= 1
>>> a
23.0
>>> a /= 2
>>> a
11.5

表达式

通常我们书写表达式的时候,会在每一个运算符左右都放一个空格

>>> a = 123 * (32 - 66/8)
>>> a
2921.25

类型转换

类型转换函数 转换路径
float(string) 字符串 -> 浮点值
int(string) 字符串 -> 整数值
str(integer) 整数值 -> 字符串
str(float) 浮点值 -> 字符串
>>> a
2921.25
>>> str(a)
'2921.25'
>>> b=str(a)
>>> b
'2921.25'

做一个数学题

这个程序计算以为数码相机销售人员的工资。他的基本工资是 2500,每售出一台相机他可以得到 200 并且获得 2% 的抽成。程序要求输入相机数量及月销售总额

#!/usr/bin/env python3
#coding:utf8
basic = 2500
saleone = 200
ticheng = 0.02
count = int(input("输入卖出相机的数量:"))
price = float(input("输入相机的总价:"))
if price >=2500:
        saleone_money = (saleone*count)
        ticheng_money = (ticheng*price*count)
        print("业绩   = {:6.2f}".format(saleone_money))
        print("提成   = {:6.2f}".format(ticheng_money))
        print("总收入 = {:6.2f}".format(basic + saleone_money + ticheng_money))
else:
        print "相机价钱必须大于或者等于2500人民币"


运行下脚本

root@zwjfdisk2016:~/file/1# python sale.py
输入卖出相机的数量:100
输入相机的总价:2500
业绩   = 20000.00
提成   = 5000.00
总收入 = 27500.00
root@zwjfdisk2016:~/file/1# python sale.py
输入卖出相机的数量:100
输入相机的总价:2488
相机价钱必须大于或者等于2500人民币
root@zwjfdisk2016:~/file/1#