python运算符和表达式,,运算符和表达式在 P
python运算符和表达式,,运算符和表达式在 P
运算符和表达式
在 Python 中你会写大量的表达式。表达式由运算符和操作数组成。像2+3就是一个表达式。
知识点
关系/逻辑运算表达式类型转换实验步骤
1. 运算符
运算符是一些符号,它告诉 Python 解释器去做一些数学或逻辑操作。一些基本的数学操作符如下所示:
>>> 2 + 35>>> 23.0 - 320.0>>> 22 / 121.8333333333333333
只要有任意一个操作数是浮点数,结果就会是浮点数。
进行除法运算时若是除不尽,结果将会是小数,这很自然,如果要进行整除,使用//运算符,它将返回商的整数部分。
%是求余运算符:
>>> 14 % 32
1.1. 整数运算示例
代码如下:
#!/usr/bin/env python3days = int(input("Enter days: "))months = days // 30days = days % 30print("Months = {} Days = {}".format(months, days))
运行程序:
在开始获得用户输入的天数,然后获得月份数和天数,最后把这些数打印出来。你可以使用更容易的办法。
#!/usr/bin/env python3days = int(input("Enter days: "))print("Months = {} Days = {}".format(*divmod(days, 30)))
divmod(num1, num2)返回一个元组,这个元组包含两个值,第一个是 num1 和 num2 相整除得到的值,第二个是 num1 和 num2 求余得到的值,然后我们用*运算符拆封这个元组,得到这两个值。
2. 关系运算符
你可以使用下面的运算符实现关系运算。
关系运算符
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 < 2True>>> 3 > 34False>>> 23 == 45False>>> 34 != 323True
3. 逻辑运算符
对于逻辑与,或,非,我们使用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。当然,括号也可以用于比较表达式。
下面是一些例子:
>>> 5 and 44>>> 0 and 40>>> False or 3 or 03>>> 2 > 1 and not 3 > 5 or 4True
4. 简写运算符
x op= expression为简写运算的语法形式。其等价于x = x op expression,举例如下:
>>> a = 12>>> a += 13>>> a25>>> a /= 3>>> a8.333333333333334>>> a += (26 * 32)>>> a840.3333333333334
shorthand.py 示例:
#!/usr/bin/env python3N = 100a = 2while a < N: print(str(a)) a *= a
运行之:
$ ./shorthand.py2416
5. 表达式
通常我们书写表达式的时候,会在每一个运算符左右都放一个空格,这样使代码更可读,如:
a = 234 * (45 - 56 / 34)
一个用于展示表达式的例子,注意其中运算符的优先级。
#!/usr/bin/env python3a = 9b = 12c = 3x = a - b / 3 + c * 2 - 1y = a - b / (3 + c) * (2 - 1)z = a - (b / (3 + c) * 2) - 1print("X = ", x)print("Y = ", y)print("Z = ", z)
运行之:
$ ./evaluationexp.pyX = 10Y = 7Z = 4
第一个计算的是x,步骤如下:
9 - 12 / 3 + 3 * 2 -19 - 4 + 3 * 2 - 19 - 4 + 6 - 15 + 6 - 111 - 110
由于括号的存在,y和z的计算方式不同,你可以自己去验证它们。
6. 类型转换
我们可以手动的执行类型转换。
类型转换函数 | 转换路径 |
---|---|
float(string) | 字符串 -> 浮点值 |
int(string) | 字符串 -> 整数值 |
str(integer) | 整数值 -> 字符串 |
str(float) | 浮点值 -> 字符串 |
>>> a = 8.126768>>> str(a)‘8.126768‘
7. 程序示例
7.1. evaluateequ.py
这个程序计算数列1/x+1/(x+1)+1/(x+2)+ ... +1/n,我们设 x = 1,n = 10。
#!/usr/bin/env python3sum = 0for i in range(1, 11): sum += 1 / i print("{:2d} {:6.4f}".format(i , sum))
运行程序:
7.2. quadraticequation.py
这个程序用来求解二次方程式:
#!/usr/bin/env python3import matha = int(input("Enter value of a: "))b = int(input("Enter value of b: "))c = int(input("Enter value of c: "))d = b * b - 4 * a * cif d < 0: print("ROOTS are imaginary")else: root1 = (-b + math.sqrt(d)) / (2 * a) root2 = (-b - math.sqrt(d)) / (2 * a) print("Root 1 = ", root1) print("Root 2 = ", root2)
运行程序:
7.3. salesmansalary.py
这个程序计算以为数码相机销售人员的工资。他的基本工资是 1500,每售出一台相机他可以得到 200 并且获得 2% 的抽成。程序要求输入相机数量及月销售总额。
#!/usr/bin/env python3basic_salary = 1500bonus_rate = 200commision_rate = 0.02numberofcamera = int(input("Enter the number of inputs sold: "))price = float(input("Enter the total prices: "))bonus = (bonus_rate * numberofcamera)commision = (commision_rate * numberofcamera * price)print("Bonus = {:6.2f}".format(bonus))print("Commision = {:6.2f}".format(commision))print("Gross salary = {:6.2f}".format(basic_salary + bonus + commision))
运行程序:
总结
除了数值运算,关系和逻辑运算也是程序的重要组成部分。另外 Python 是强类型语言,所以必要的时候需要手动进行类型转换。
python运算符和表达式
评论关闭