目录
任务描述
运算符的优先级是不同的,并且存在高低之分,所以并不是所有的计算语句都是从左至右运算的。在编写程序时,若在一个计算语句中出现了多个运算符,那就要根据运算符的优先级来排列规划数值计算顺序,不然就会得到错误的计算结果。本关的任务是让学习者掌握运算符的优先级,并能根据要求写出运算语句。
相关知识
运算符优先级
要实现上述功能,需要掌握运算符的优先级。下表列出了优先级由高到低的所有运算符:
类别 | 类型名 |
---|---|
** | 指数(最高优先级) |
~ + - | 按位翻转,一元加号和减号(最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法,减法 |
>> << | 右移,左移运算符 |
& | 位 (AND ) |
^ | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= % = /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
如果您想了解更多运算符的相关知识,请参考:[美] Katie Cunningham 著《 Python 入门经典》
第二章。
编程要求
本关的编程任务是补全priority.py
文件中的功能。具体要求如下:
-
先将
var1
左移两位,然后计算var1
与var2
的和,最后将这个值乘以var3
,输出最后的值; -
先将
var1
与var2
按位与,然后计算得到的值与var3
的和,最后将这个值乘以var4
,输出最后的值。
本关涉及的代码文件框架如下:
# 定义并实现优先级运算函数theProirity
def thePriority(var1,var2,var3,var4):
# 先将var1左移两位,然后计算var1与var2的和,最后将这个值乘以var3,并将最终结果存入result变量
########## Begin ##########
########## End ##########
print(result)
# 先将var1与var2按位与,然后计算得到的值与var3的和,最后将这个值乘以var4,并将最终结果存入result变量
########## Begin ##########
########## End ##########
print(result)
测试说明
本关的测试文件是src/step6/prioritytest.py
文件,测试的具体过程如下: 1.学习者将src/Step6/priority.py
中的代码补充完毕,然后点击评测。平台自动编译运行 prioritytest.py
,并以标准输入方式提供测评输入,调用prority
中的thePriority
函数;
2.平台获取程序的输出,然后将其与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/step6/prioritytest.py
的样例测试集: 测试输入:
5
3
12
43
预期输出:
276
559
开始你的任务吧,祝你成功!
# 定义并实现优先级运算函数theProirity
def thePriority(var1,var2,var3,var4):
# 先将var1左移两位,然后计算var1与var2的和,最后后将这个值乘以var3,并将最终结果存入result变量
########## Begin ##########
a=var1 << 2
b=a+var2
result=b*var3
########## End ##########
print(result)
# 先将var1与var2按位与,然后计算得到的值与var3的和,最后后将这个值乘以var4,并将最终结果存入result变量
########## Begin ##########
a= var1 & var2
b=a+var3
result=b*var4
########## End ##########
print(result)