2016-04-02 5 views
-2

18行テキストのグラデーションを作成していますが、この権利を得ることができません。ここに私のコードです。 h ***はここで字下げに間違っていますか?ここで'return' outside function(テキストグラデーションを作成)

import math 
gradient = ('FF24E9', 'F026EC', 'E128F0', 'D22AF3', 'C32CF7', 'A530FE', '8F3EFE', '7A4CFE', '655AFE', '5068FE', '3B76FE') 
def gradientmadness(text): 
    leng = len(text) 
output = '' 
if leng < 11: 
    for i in range(0, leng): 
     output += '<c=#%s>' % gradient[i] 
for i in range(0, leng): 
    output += text[i] + '</c>' 
else : 
    output += '<c=#' 
output += '><c=#'.join(gradient) 
output += '>' 
size = int(math.ceil(leng/11.0)) 
for i in range(1, 11 + 1): 
    output += text[(i - 1) * size: i * size] + '</c>' 
return output 
gradientmadness.command = "gradient1" 
+0

あなたがそれを学んだ後、書式設定は非常に簡単です。質問にコードを貼り付けます。それを強調表示します。 Ctrl-kを押す。 Voila:コード。 – zondo

+0

問題はちょうどエラーが言ったことです:関数の外に 'return'があります。どうやってそれを修正するのですか?それはあなたの目的次第です。 – zondo

+0

pythonでは、字下げが重要です。あなたのコードが書かれている方法では、 'gradientmadness'は1行のコードしかありません。 – tdelaney

答えて

0

は正しい書式を使用してコードです:

import math 


gradient = ('FF24E9', 'F026EC', 'E128F0', 'D22AF3', 'C32CF7', 'A530FE', '8F3EFE', '7A4CFE', '655AFE', '5068FE', '3B76FE') 
def gradientmadness(text): 
    leng = len(text) 
    output = '' 
    if leng < 11: 
     for i in range(0, leng): 
      output += '<c=#%s>' % gradient[i] 
     for i in range(0, leng): 
      output += text[i] + '</c>' 
    else : 
     output += '<c=#' 

    output += '><c=#'.join(gradient) 
    output += '>' 
    size = int(math.ceil(leng/11.0)) 

    for i in range(1, 11 + 1): 
     output += text[(i - 1) * size: i * size] + '</c>' 
    return output 


gradientmadness.command = "gradient1" 
+0

ユーザーが間違っていたことを指摘すると役に立ちます。 – tdelaney

+0

2つのforの内部でindentationが間違っていて、return文のインデントも間違っていました。 – Randhawa