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