Part 1 本题目

发现没人发python题解,我来发一下。

首先我将代码放出来:

  1. import sys
  2. for line in sys.stdin:
  3. print(int(eval(line[:-1])))

接下来我们挨个解释。

sys.stdin

这道题有多组数据,但是没有告诉我们有多少组。我们可以使用如下方式获得每一行的字符串。

  1. import sys
  2. for line in sys.stdin:
  3. pass

其中line存储的就是一行字符串。

line[:-1]

前面说过,line是一个str。切片[a:b]可以截取从ab - 1的字符串。如果将a省略不写,那么python解析器会自动添一个0。
所以,line[:-1]等同于line[0:-1]

line[:-1]可以有效将末尾的#切掉。

eval

python是一门解释性语言,自然可以使用eval来现解释代码。使用eval(str)可以得到表达式str的值。举一个例子:

  1. print(eval("1 + 1"))

输出:

  1. 2

代码

将以上所有东西组合起来,就得到了本题的代码

  1. import sys
  2. for line in sys.stdin: # 多组数据
  3. print(int(eval(line[:-1]))) # 计算表达式
  4. # int是因为eval出来的值可能为浮点数,需要取整。

点赞(0)
 

9.9 分

1 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

71 1年前 回复TA
太有实力了