Pythonで割り算を使うときの注意点
この記事の例では、Python で除算を使用する際の注意事項を説明します。これは非常に重要なスキルであり、Python プログラミングにとって良い参考になります。具体的な分析は次のとおりです。
次に、次の例を見てください:
def avg(first, *rest): return (first + sum(rest)) / (1 + len(rest)) # Sample use avg(1, 2) # 1.5 avg(1, 2, 3, 4) # 2.5
ソース プログラムは可変長パラメーターの使用を示すためのものですが、Python 2.7.1 インタープリターでは、得られる結果はコメントの結果と異なります
>>> def avg(first, *rest): ... return (first + sum(rest)) / (1 + len(rest)) ... >>> avg(1, 2) 1 >>> avg(1, 2, 3, 4) 2
小数点以下のデータは切り捨てられるのがよくわかりますが、2つの整数を割るときは「//」を四捨五入する必要があると記憶しています。
>>> def avg(first, *rest): ... return (first + sum(rest)) // (1 + len(rest)) # change '/' to '//' ... >>> avg(1, 2) 1 >>> avg(1, 2, 3, 4) 2
「/」を「//」に変更しても結果は同じになります。「//」は確かに丸められていると記憶していますが、「/」の結果も切り捨てられるのはなぜですか?
3.4.1 インタープリターで同じプログラムをテストし、期待どおりの結果が得られました。
>>> def avg(first, *rest): ... return (first + sum(rest)) / (1 + len(rest)) ... >>> avg(1, 2) 1.5 >>> avg(1, 2, 3, 4) 2.5 >>> def avg(first, *rest): ... return (first + sum(rest)) // (1 + len(rest)) # change '/' to '//' ... >>> avg(1, 2) 1 >>> avg(1, 2, 3, 4) 2
3.4.1 インタープリタでは、「/」の結果は小数点以下の桁を保持し、「//」は四捨五入後の結果であることがわかります。
検索した結果、stackoverflow で次の質問を見つけました: Python で除算の結果を浮動小数点数に強制する方法は? これはバージョン 2.x 用であり、3.x ではそのような問題は発生しないことに注意してください
答えの最初の 2 つの解決策はどちらも適切です:
方法 1:
>>> from __future__ import division >>> a = 4 >>> b = 6 >>> c = a / b >>> c 0.66666666666666663
方法 2:
C 言語のアプローチと同様:
c = a / float(b)
この記事で説明した例は、皆様の Python プログラミングに確実に役立つと信じています。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

Pythonパラメーター注釈の代替使用Pythonプログラミングでは、パラメーターアノテーションは、開発者が機能をよりよく理解して使用するのに役立つ非常に便利な機能です...

Pythonスクリプトは、特定の場所のカーソル位置への出力をどのようにクリアしますか? Pythonスクリプトを書くときは、以前の出力をカーソル位置にクリアするのが一般的です...

Python:Hourglassグラフィック図面と入力検証この記事では、Python NoviceがHourglass Graphic Drawingプログラムで遭遇する可変定義の問題を解決します。コード...

毎日のネットワークインタラクションでPythonを使用したクラッキング検証コードの調査、検証コードは、自動化されたプログラムの悪意のある操作を防ぐための一般的なセキュリティメカニズムです...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

Pythonクロスプラットフォームデスクトップアプリケーション開発ライブラリの選択多くのPython開発者は、WindowsシステムとLinuxシステムの両方で実行できるデスクトップアプリケーションを開発したいと考えています...
