1

我试图弄清楚“输入表达式:”之类的内容如何包含 3 个变量:第一个 int、操作字符和第二个 int。这在 C++ 中非常简单,只需 cin >> num1 >> operation >> num2。

到目前为止,根据其他人的问题,我已经尝试将列表拆分。这有效,除了超过 1 位的整数。我正在做这样的事情:

list1=raw_input()
list1.split()
print list1
num1=list1[0]
plus=list1[1]
num2=list1[2]
print num1, plus, num2

例如,输入 10+3 会输出 1 0 + 我觉得这里有一个简单的修复,但我不知道。任何帮助表示赞赏。

4

4 回答 4

1

字符串是不可变的,因此您需要捕获list1.split()某处的结果。但它不会帮助你,因为那不会做你想要的。使用解析器,可能使用Python 的语言服务

于 2012-04-15T04:22:23.557 回答
1

试试这个:

list1 = raw_input()
for x in list1.split():
    print x,
于 2012-04-15T04:24:02.680 回答
0

我建议在这种情况下使用正则表达式,例如:

 re_exp = re.compile(r'\s*(\d+)\s*([^\d\s])+\s*(\d+)')
 expr = raw_input()
 match = re_exp.match(expr)
 if match:
     num1, oper, num2 = match.groups()
     print num1, oper, num2

使用split,您可以解析,但使用(没有空格)或处理这两种情况10 + 1会更难。10+1

于 2012-04-15T04:41:12.017 回答
0
#You should write like this
list1 = raw_input()
a=list1.split()
num1=a[0]
plus=a[1]
num2=a[2]
print num1, plus, num2
于 2016-06-05T20:34:22.983 回答