私はPythonの新機能です。 私はargsを渡して%sを使用してdict args.Butのキーと値を出力する関数を実装しようとしていますが、これは%を使用するのが無効であることを示しています。それは私を本当に混乱させた。理由を教えてくれてありがとう。関数(Python 3.5)で%sまたは** argsを使用する方法
>>> def person(name, age, **args):
print('name:', name, 'age:', age)
for i in args.keys():
print('%s:%s', % (i, args[i]))
SyntaxError: invalid syntax
次のコードは、%sの代わりにformatを使用して、argsのキーと値を表示しようとしています。 しかし、それはargsがNoneTypeであることを私に伝え続けます。それから、私は通常の方法でargsを表示します( "args:"、args)、それはうまくいきます。なぜそれが言っているのか知りたいです。ありがとうございます!
>>> def person(name, age, **args):
print('name:', name, 'age:', age)
for i in args.keys():
print('{}:{}').format(i, args[i])
>>> person('Joey', 20, weight=60, length=172)
name: Joey age: 20
{}:{}
Traceback (most recent call last):
File "<pyshell#79>", line 1, in <module>
person('Joey', 20, weight=60, length=172)
File "<pyshell#78>", line 4, in person
print('{}:{}').format(i, args[i])
AttributeError: 'NoneType' object has no attribute 'format'
2番目のケースでは、フォーマットは 'print'の呼び出しの内側にある必要があります。 'print( '{}:{}'。書式(i、args [i]))' – asongtoruin