-1

テスト目的でダミーのメールアドレスを生成しているため、次のコードが機能することを望んでいました

return "test_%@test.tm"% counter();

しかし、それは機能していません.@についていくつかの特別なことがあるよう@です.文字列に含めることはできません.

編集

この例で出力に「メール」属性/キーが存在しない理由を誰か教えてください - https://gist.github.com/4505055

ところで、Pythonは初めてです

編集

私の間違い、メール属性がありませんでした、ごめんなさい:(

4

5 に答える 5

3

文字列置換文字 を忘れたようです%s

return "test_%s@test.tm" % counter()
于 2013-01-10T19:13:03.527 に答える
2

これは、文字列内のパーセント記号に続く文字が、挿入する値の種類を指定することになっているためです。たとえば、次のようにします。

"test_%i@test.tm" % 1

... '%i' の場所に整数を挿入するように Python に指示します。ただし、「%@」は文字列挿入として認識されないため、機能しません。より詳しい情報

同じことを行うためのもう少し堅牢な方法は次のとおりです。

"test_{thing}@test.tm".format(thing=counter())

...また...

"test_{0}@test.tm".format(counter())

より詳しい情報

于 2013-01-10T19:13:23.563 に答える
1

@には特別なことは何もありません。文字列の置換を行っているようですが、置換する値が無効です。

代わりにこれを試してください:

return "test_%s@test.tm"% counter();
于 2013-01-10T19:13:21.720 に答える
1

文字列のパーセント記号の後のフォーマッタを忘れました。

return "test_%s@test.tm"% counter()

また、Python ではステートメントの最後にセミコロンを追加する必要はありません。実際、Python は有効ですが、推奨されていないため、文句を言うことはありません。

于 2013-01-10T19:15:43.633 に答える
1

'%' 文字の@後に記号が続きます。これは有効な文字列変換タイプではありません。

参照: http://docs.python.org/2/library/stdtypes.html#string-formatting-operations

おそらくあなたは次のことを意味しました:'test_%s@test.tm' % counter()

(また、ステートメントをセミコロンで終了する必要はありません;)

于 2013-01-10T19:13:45.100 に答える