https://www.dotcpp.com/oj/problem1683.html
先放出来答案再解释,答案如下
import sys
for line in sys.stdin: # 多组数据
print(int(eval(line[:-1]))) # 计算表达式
# int是因为eval出来的值可能为浮点数,需要取整
接下来我们挨个解释。
1. sys.stdin
这道题有多组数据,但是没有告诉我们有多少组。我们可以使用如下方式获得每一行的字符串
import sys
for line in sys.stdin:
pas
其中line
存储的就是一行字符串。
2. line[:-1]
前面说过,line是一个str。切片[a:b]
可以截取从a
到b - 1
的字符串。如果将a
省略不写,那么python解析器会自动添一个0。
所以,line[:-1]
等同于line[0:-1]
line[:-1]
可以有效将末尾的#
切掉。
3. eval
python是一门解释性语言,自然可以使用eval来现解释代码。使用eval(str)
可以得到表达式str
的值。举一个例子:
输入
print(eval("1 + 1"))
输出
2