原题链接:数据结构-表达式求值
Part 1 本题目
发现没人发python题解,我来发一下。
首先我将代码放出来:
import sys
for line in sys.stdin:
print(int(eval(line[:-1])))
接下来我们挨个解释。
sys.stdin
这道题有多组数据,但是没有告诉我们有多少组。我们可以使用如下方式获得每一行的字符串。
import sys
for line in sys.stdin:
pass
其中line
存储的就是一行字符串。
line[:-1]
前面说过,line是一个str。切片[a:b]
可以截取从a
到b - 1
的字符串。如果将a
省略不写,那么python解析器会自动添一个0。
所以,line[:-1]
等同于line[0:-1]
line[:-1]
可以有效将末尾的#
切掉。
eval
python是一门解释性语言,自然可以使用eval来现解释代码。使用eval(str)
可以得到表达式str
的值。举一个例子:
print(eval("1 + 1"))
输出:
2
代码
将以上所有东西组合起来,就得到了本题的代码
import sys
for line in sys.stdin: # 多组数据
print(int(eval(line[:-1]))) # 计算表达式
# int是因为eval出来的值可能为浮点数,需要取整。
9.9 分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复