> 保持数据原来的类型
不会的。第一种若合法输入,x y z 也会是字符串。你要手动用 `int` 函数转换成整数
> 怎么才能一行输入三个,下一行输入两个
可以先读一行,split 成列表,然后用 `len` 检查列表的大小
```
l = input().split()
if len(l) == 2:
pass # do sth
else:
pass # do sth
```
by Zjl37 @ 2021-09-02 11:10:56
@[wykun1234](/user/484283) 我写了一个比较丑的代码
```python
_=int(input())
a=""
for i in range(_):
b=input().split()
c=0
d=0
if b[0]=='a' or b[0]=='b' or b[0]=='c':
a=b[0]
c=int(b[1])
d=int(b[2])
else:
c=int(b[0])
d=int(b[1])
if a=='a':
s=str(c)+"+"+str(d)+"="+str(c+d)
print(s)
print(len(s))
if a=='b':
s=str(c)+"-"+str(d)+"="+str(c-d)
print(s)
print(len(s))
if a=='c':
s=str(c)+"*"+str(d)+"="+str(c*d)
print(s)
print(len(s))
```
这个题目感觉不是很适合用python
by 45dino @ 2021-09-02 11:18:34
@[45dino](/user/240812)
好的明白啦,十分感谢!
by wykun1234 @ 2021-09-02 15:20:19
@[Zjl37](/user/267933)
输入这里困惑我好久。现在明白了,十分感谢!
by wykun1234 @ 2021-09-02 15:23:24
@[45dino](/user/240812)
```
蒻蒻疑问
如果只有两个数就沿用上一运算类型这个要求在哪实现的?
没看出来0.0 dalao能不能解答一下,十分感谢!
```
by zzzxns1 @ 2023-03-05 23:11:14
@[zzzxns1](/user/929115) 就是如果是读入的这一行(b)的第一个是 a,b,c 的话,说明是三个,否则就说明是两个
by 45dino @ 2023-03-05 23:19:29
@[45dino](/user/240812)
```
好像知道啦,是 a = b[0] 这个
如果3个就正常,2个就 a 没变化就等于沿用上一种运算吧
by zzzxns1 @ 2023-03-05 23:28:08
差不多吧(?)
by 45dino @ 2023-03-05 23:40:14