だから、私はプログラミングを始めたばかりで、Python 3.から始めました。 "Learn Python the Hard Way"を読み始めました。私がこのコードを持っていた場所:
_x = "There are %d types of people." % 10
binary = "binary"
do_not = "don't"
y = "Those who know %s and those who %s" % (binary, do_not)
print(x)
print(y)
print("I said: %r") % x
_
_%r
_、_%s
_、_%d
_の違いは本当にわかりません。私が得るエラーはTypeError: unsupported operand type(s) for %: 'NoneType' and 'str'
です。何をすべきか、それを修正する方法がわかりません。実際に動作させる方法と、動作しない理由を説明してください。また、%r、dとsの違いは何ですか?便利なリンクはありますか?前もって感謝します。
代わりに_%
_をstringに適用する場合:
_print("I said: %r" % x)
_
コードは、None
を返すprint()
呼び出しの戻り値にそれを適用しています。
または、 str.format()
を使用して切り替えることができます。
_print("I said: {!r}".format(x))
_
print()
関数の外部で%
を呼び出しています。これは、実際の関数print
が%r
として印刷できるかどうかを確認しようとします。また、print
は何も返さないため、値に対して%r
を取得しようとしますNone
(したがってNoneType
エラー)。次のように変更します。
print("I said: %r" %(x))
次のコード:
#!/usr/local/bin/python3
x = "Hello"
print ("Hello World! %s") %(x)
次のエラーが発生します。
Hello World! %s
Traceback (most recent call last):
File "main.py", line 3, in
print ("Hello World! %s") %(x)
TypeError: unsupported operand type(s) for %: 'NoneType' and 'str'
コードを次のように変更すると動作します。
#!/usr/local/bin/python3
x = "Hello"
print ("Hello World! %s" %(x))
出力:
Hello World! Hello