#20114: python 錯誤


l1o2r3y4@gmail.com (lory Liu)


還沒加上try 跟 except

temp1=str.split(input())
count, =temp1[0:1:]
count=int(count)
for c in range(1, 4*count+1, 4):
a,b,c,d=temp1[c:c+4:1]
a,b,c,d=(int(a),int(b),int(c),int(d))
if b-a==c-b==d-c:
D=b-a
e=int(d+D)
print(a,b,c,d,e)
elif b/a==c/b==d/c:
R=b/a
e=int(d*R)
print(a,b,c,d,e)
else:
continue

 

在spyder測試都是對的

但打上來測資一直顯示

(expected 4, got 0)

想問一下哪裡出錯了!

#20916: Re:python 錯誤


clazenchang@gmail.com (Clazen Chang)


 

在spyder測試都是對的

但打上來測資一直顯示

(expected 4, got 0)

想問一下哪裡出錯了!

 

我是python初學者, 所以看不懂您方括號裡面加冒號的用法,

不過我是這樣解的:

1. 題目第一個數字代表列表數, 所以先讀入, 以決定後續迴圈次數

2. 設定 while 迴圈,圈數小於剛剛讀入的數字,並執行以下動作:

3. 將讀取的數列存在陣列,用 split(" ")分割讀入的數列

4. 每個元素轉成 int 才能做運算

5. if 判斷式,看是等差或等比數列

6. 把算出來的第五項 append 上去原本陣列

7. for 迴圈印出陣列元素,注意格式(空格和換行)

大概長這樣:

input()

while x < i

 (轉換int)

 if(等差)

  算結果並append上去

  for迴圈打印

 if(等比)

  算結果並append上去

  for迴圈打印

 else:

  (丟出例外)

另外請問 方括號裡面加冒號 是lambda用法嗎? 還是其他?

#20917: Re:python 錯誤


asnewchien@gmail.com (david)


如下有沒有比較簡單

 

from sys import stdin

T = int(stdin.readline())

for i in range(T):

    s = stdin.readline()

    a, b, c, d = [int(x) for x in s.split()]

#20924: Re:python 錯誤


clazenchang@gmail.com (Clazen Chang)


 

 

 

 

另外請問 方括號裡面加冒號 是lambda用法嗎? 還是其他?



沒事, 我查到了, 不好意思

#20925: Re:python 錯誤


clazenchang@gmail.com (Clazen Chang)


如下有沒有比較簡單

 

from sys import stdin

T = int(stdin.readline())

for i in range(T):

    s = stdin.readline()

    a, b, c, d = [int(x) for x in s.split()]



好像不錯, 有空來試試