3

Python は初めてで、Python 3.3.2 を使用しています。出力しようとしている文字列にデータ項目を含めるのに問題があります。オペレーターは、次の%ように文字通り出力します。

for miles in range (10, 70, 10):
    km=miles*1.609
    print ("%d miles --> %3.2f kilometers") % (miles, km)

生成:

%d miles --> %3.2f kilometers

エラーとともに:

Unsupported operand type for %: 'NoneType' and 'tuple'

しかし、3行目を次のように変更すると:

print (%d "miles -->" %3.2f "kilometers") % (miles, km)

%d で構文エラーが発生します。「 」関数を削除することで、インタラクティブ モードからプログラムを正しく動作させることができましたが、「print()」がないと IDLE で出力が生成されませんprint()。私は何が欠けていますか?これを理解するために私が行った調査は、Python についてさらに学習するのに役立ちましたが、これまでのところ、プログラムは機能していません。ちなみに、次のように出力する必要があります。

10 miles --> 16.09 kilometers
20 miles --> 32.18 kilometers
30 miles --> 48.27 kilometers
40 miles --> 64.36 kilometers
50 miles --> 80.45 kilometers
60 miles --> 96.54 kilometers

この問題に関して私が得られる助けや支援に感謝します。

4

3 に答える 3

4

関数% (miles, km)内に移動します。print

print関数は を返すNoneので、コードで実際にやろうとしています:

None % (miles, km)

そのため、そのエラーが発生しています。

作業コード:

>>> for miles in range (10, 70, 10):
...      km=miles*1.609
...      print ("%d miles --> %3.2f kilometers" % (miles, km))
...     
10 miles --> 16.09 kilometers
20 miles --> 32.18 kilometers
30 miles --> 48.27 kilometers
40 miles --> 64.36 kilometers
50 miles --> 80.45 kilometers
60 miles --> 96.54 kilometers

新しいスタイルの文字列フォーマットを使用:

>>> for miles in range (10, 70, 10):
        km=miles*1.609
        print ("{:d} miles --> {:3.2f} kilometers".format(miles, km))
...     
10 miles --> 16.09 kilometers
20 miles --> 32.18 kilometers
30 miles --> 48.27 kilometers
40 miles --> 64.36 kilometers
50 miles --> 80.45 kilometers
60 miles --> 96.54 kilometers
于 2013-07-07T20:39:06.443 に答える
3

あなたの文字列で .format() メソッドを使用してみてください

>>> for miles in range(10, 70, 10):
...     km = miles*1.609
...     print ("{0} miles ---> {1} kilometers".format(miles, km))
于 2013-07-07T20:43:54.433 に答える
2

印刷が機能しない理由については既に回答を得ていますが、これを少し異なる方法で書くと、次のようになります。

miles = range(10, 70, 10)
kms = (m * 1.609 for m in miles)
fmt = '{:d} miles --> {:3.2f} kilometers'.format
print(*map(fmt, miles, kms), sep='\n')

与えます:

10 miles --> 16.09 kilometers
20 miles --> 32.18 kilometers
30 miles --> 48.27 kilometers
40 miles --> 64.36 kilometers
50 miles --> 80.45 kilometers
60 miles --> 96.54 kilometers
于 2013-07-07T20:54:06.997 に答える