1

基本的なGoogleアプリエンジン計算機について、このサイトのコードを見ていました。私は HTML と同じように GAE にも不慣れなので、次のコードを見たときは少し混乱しました。ほとんどの場合、最後の行で</html>""" % (result, buttons))。% とは何ですか? また、結果とボタンを HTML コードにどのように関連付けますか?

        result = ""
        try:
            result = f[operator](x, y)
        except ValueError:
            result = "Error: Incorrect Number"
        except ZeroDivisionError:
            result = "Error: Division by zero"
        except KeyError:
            pass
        # build HTML response
        buttons = "".join(["<input type='submit' name='operator' value='"
                           + o + "'>" for o in sorted(f.keys())])
        self.response.out.write("""<html>
            <body>
            <form action='/' method='get' autocomplete='off'> 
            <input type='text' name='x' value='%s'/><br/>
            <input type='text' name='y'/><br/> 
            %s 
            </form>
            </body>
            </html>""" % (result, buttons))
4

1 に答える 1

3

%は、Python で文字列をフォーマットするためのものです。Dive Into Pythonで適切な説明を参照してください。あなたの例では、「%s」文字を変数の値に置き換えるために使用されています。

あなたの例を変更する:

あなたの例の変更されたバージョンで、 と の値をハードコーディングresultしますbuttons

result = "THIS IS MY RESULT"
buttons = "AND MY BUTTON"
output = """
<html>
    <body>
        <form action='/' method='get' autocomplete='off'> 
            <input type='text' name='x' value='%s'/><br/>
            <input type='text' name='y'/><br/> 
            %s 
        </form>
    </body>
</html>
""" % (result, buttons)

print output

次の結果が得られます。

<html>
    <body>
        <form action='/' method='get' autocomplete='off'> 
            <input type='text' name='x' value='THIS IS MY RESULT'/><br/>
            <input type='text' name='y'/><br/> 
            AND MY BUTTON 
        </form>
    </body>
</html>

あなたの例では、ボタンはより多くの Html を保持し、フォーマット文字列は値が実際に変化するコンテキストでより意味がありますが、上記は基本的な原則を示しているはずです。

より簡単な例:

以下のコード:

result = "THIS IS MY RESULT"
buttons = "AND MY BUTTON"
print "%s ... %s!" % (result, buttons)

次の結果が得られます。

THIS IS MY RESULT ... AND MY BUTTON!

App Engine との関係:

上記の両方の例は、次のように述べていますprint。これにより、出力が "stdout" (コンソール) に出力されます。

元の例ではself.response.out.write、これは App Engine にテキスト (Html) をブラウザに書き込むように指示する方法です。

具体的には、次のように変更します。

result = "THIS IS MY RESULT"
buttons = "AND MY BUTTON"
print "%s ... %s!" % (result, buttons)

に:

result = "THIS IS MY RESULT"
buttons = "AND MY BUTTON"
self.response.out.write("%s ... %s!" % (result, buttons))

コンソールではなくページにアクセスすると、ブラウザにテキストが表示されます。

参考文献:

Dive Into Pythonも上にリンクされており、Python を学習するための優れたリソースです。Python を初めて使用する場合は、この本全体が役に立ちます。Udacityコースも同様です。

フォーマット文字列に関するPython ドキュメントは、特にフォーマット文字列に関する優れたリファレンスです。

「Using Google App Engine」という書籍は、Python、Html、および App Engine を一度に学習するための優れたリソースです。自分で読んだので、正直にお勧めできます。とてもアクセスしやすいですが、今では数年前です。

楽しむ!

于 2013-05-16T22:26:20.900 に答える