含まこの記事マスターシリーズへのエントリーからの記事のPythonのシリーズ
これまでのところ、我々は氷山のPythonのちょうど先端の内容を学びますが、これらの要素は、ビルドに私たちのために十分なされてきたが、前のセクションを完了した後、ブロガーは、前に学んだ知識を統合するために、いくつかの演習を行うためにあなたを取るためにここに必要性を感じますプログラムロジック。言語をプログラミング初心者のために、Pythonのコア言語要素(変数、型、演算子、式、分岐構造、環状構造など)を学習した後に、あなたは一つのことを行う必要があり、彼らが学んだことを使用しようとすることです実世界の問題を解決するため、アルゴリズムを訓練言い換えれば(問題と手順を解決するための方法)にたくさんの練習を通じて到達するためには、Pythonのコードに、独自の人間の自然言語を使用する能力、およびこの問題の必須翻訳。
この章のブロガーたちが一緒にいくつかの典型的な例と演習を置くように、我々はこれらの例を願って、あなたは彼らが助けに一方学んだことを統合するのに役立ち前のPythonの1手の知識には、プログラム・ロジックを作成する方法を、いくつかの簡単なを適用する方法を学びます実世界の問題を解決するためのアルゴリズム。
警告警告:この非常に燃え脳、それは18歳以上見ることをお勧めします。年齢の18歳、親の指導が推奨されます!!!(ハ、冗談〜)
1.古典的な例
探し水仙の1.1数。
説明:自己陶酔数は、完全にデジタルではないスーパー変数、自己陶酔数として知られており、3桁の数字であるアームストロング番号のパワーので、デジタル和の各桁は正確例えば、キューブ自体に等しいです。 :$ 5 + 1 ^ 3 ^ 3 ^ 3 + 3 = $ 153
"" " 找出所有水仙花数 バージョン:0.1 著者:に沿って """ のための NUM に(100、1000の範囲): 低い = NUMの10% 半ば = NUM // 10%10 高 = NUM // 100 もし NUM = =低** 3 +ミッド** 3 +高** 3 : #の印刷(低、中、高)プリント(NUM)
上記のコードでは、我々はそれぞれ剰余演算、割り切れ、そして3桁、10、まだ一般的に使用される実際の開発で百の、このようなヒントを見つけるために少しを持っていました。
1.2正の整数逆
同様に、我々はまた、例えば、逆の正の整数を達成することができる:54321に12345に、以下のコードに示すように。
"" " 正整数的反转 バージョン:0.1 著者:に沿って """ NUM = INT(入力(' NUM = ' )) reversed_num = 0 一方 NUM> 0: reversed_num = reversed_num * 10 + NUM%10 NUM // = 10 #プリント(reversed_num、NUM) プリント(reversed_num)
1.3 Baiqianbaiji問題
説明:百のお金百羽の鶏、古代中国の数学者の張チウ・ジアン鶏ウェン分5羽の鶏の母、貴重な3羽の雛貴重な3:数学の問題では、製ブック「と考えました」。百羽の鶏を購入する百、鶏とひよこ、各ジオメトリをウェン、母鶏を尋ねましたか?100羽の鶏を購入する5元オンドリ、鶏3元、1元3羽の雛、百ドル、オンドリを聞いて、鶏、どのように多くの雛を持っている:現代の文化をに翻訳されましたか?
「」「 」百お金百鶏「の問題 バージョン:0.1 著者:沿い 」、「」 のための X- における範囲(0,20 ): のための Y- でのレンジ(0.33 ): Z = 100 - X-- Y- IF 100 == 。* X + 3 5 Y + Z / 3 : プリント(' コック:%のDのみ鶏:%のDのみ、鶏:%のDのみ'%(X、Y、Z))
上記のメソッドが呼び出される強引な方法とも呼ばれる、暴力検索方法、すべての可能な候補者によって、このアプローチは、一つの代替ソリューションずつ一覧表示され、各候補者の説明を確認し、問題を満たし、最終的に取得問題の解決策。このアプローチは厄介に見えますが、非常に強力なコンピュータのためのコンピューティングパワー、それは通常の生さえは良い選択ですが、問題の解決策がある場合、このメソッドはそれを見つけることができるようになります。
1.4クラップスカジノゲーム
説明:また、クラップスとして知られているクラップス、ラスベガスは非常に人気の高い1台のギャンブルゲームです。ゲームは、ゲームのプレイヤーは2個のダイスを振ることによってポイントを獲得、2個のダイスを使用しています。ルールは単純です:プレイヤーは、プレイヤーの勝利7:00または午前11時の最初のロールアウト場合はサイコロを転がし、プレイヤーが最初に午前2時、3時00分または12:00振る場合、荘嘉、他の点は、プレイヤーがサイコロを転がしし続け、プレイヤーはポイントの最初の揺れを振る場合は、プレイヤーの勝利;プレイヤーは午前7時00分、荘嘉を振る場合は他のポイントは、プレイヤーが勝者になるまで死ぬことを続けます。
「」「 クラップスギャンブルゲームは 、我々がゲームステークスを開始するようにプレーヤーを設定したときに$ 1000年を持っている 条件はすべてのベット失うプレーヤーである上、ゲームを :0.1バージョン 著者:一緒に 」「」 からランダム読み込みrandint マネー = 1000 しばらくマネー> 0: 印刷(' あなたの総資産を:' 、マネー) needs_go_onは = Falseの 中に真: 負債 = INT(INPUT(' してください賭け:' )) IF 0 <負債<= マネー: BREAK まず(1 ,. 6)= randint + randint(1、6 ) 印刷(' プレイヤーが%Dポイントをロール'%ファースト) IF。まず== 7 か。まず== 11 : 印刷(' プレイヤーの勝利を!' ) マネー + = 負債 のelifまず== 2 か。まず== 3 または第一= 12は=です: 印刷(' Zhuangjia盛!' ) マネー - = 負債 他: needs_go_on = 真 しばらくneeds_go_on: needs_go_on =偽 現在 = randint randint +(1 ,. 6)(1 ,. 6。 ) 印刷(' プレイヤーはポイントを%Dロール'%現在) IF現在== 7。 : 印刷(' Zhuangjia盛' ) マネー - = 負債 のelif電流= = まず: 印刷(「プレイヤーの勝利」) マネー + = 負債合計 他: needs_go_on = 真 印刷("あなたは、ゲームの終わりを倒産しました!」)
注:これはあまりにも脳燃えている、とブロガーは(〜笑いの叫びを)破産しました
2.便利なエクササイズ
フィボナッチ数の列20を生成する前に2.1。
説明:フィボナッチ数(フィボナッチ数列)が、また、黄金の列として知られる、イタリアの数学者レオナルド・フィボナッチ(Leonardodaフィボナッチ)は理想的な仮定の下で、ウサギの「ブックの計算」で提唱そして、問題の成長率はそれほどシリーズも呼ばれていること、列の数を紹介する「ウサギのシリーズを。」最初の2列によって特徴付けフィボナッチ数は、第3の数から始まる番号1、であり、各数値は次のように、二つの数が先行する:1、1、2、3、5 、8、13、21、34、55、89、144、.... 現代物理学の分野での直接適用フィボナッチ数、準結晶構造、化学的性質を持っています。
回答:
"" " 出力20の数のフィボナッチ数の前に 。1. 1. 3. 5 8 13 21である2 ...である :0.1版 :著者に沿って """ A = 0 、B = 1。 ため _ にレンジ(20 ): A、 B = B、A + Bの 印刷(A、エンド= ' ')
2.2 10,000未満完全数を見つけます。
説明:パーフェクトは完全数や完全数と呼ばれ、それは(独自の要因に加えてすなわち、)すべての真の要因ださの(因子機能である)自体に正確に等しいです。例えば:6($ 6 = $ 1 + 2 + 3)および28(= 1 + 2 $ 28 + $ 14+ 7 + 4)完全数です。完全数は、我々は自分自身についてを知らせることができます興味を持っている、多くの魔法の特性を有しています。
「」 " パーフェクトは1と9999の間のすべての数値を見つける 完全数をそれ自体とこの番号は、番号自体にちょうど等しく、他の全ての要因以外である 、例えば:6 = 1 + 2 + 3 + 2 + 1 = 28 + 4 + 14 7 版:0.1 著者:に沿って " "" インポート数学 用 NUM に範囲(1、10000 ): 結果 = 0 のための因子で範囲(1、INT(Math.sqrt(NUM))+ 1 ... ): IF NUM%以下==要因0: 結果 + = 要因 IFファクター> 1。と NUM =ファクター//!ファクタ: 結果 + // NUM = 要因 もし結果== NUM: プリント(NUM)
すべての素数の2.3出力100未満。
説明:素数(1含まない)正の整数であり、単独でのみ割り切れる指します。
"" " 输出2〜99之间的素数 バージョン:0.1 著者:に沿って """ インポート数学 用 NUM における範囲(2、100 ): is_prime = Trueの ための因子で範囲(2、INT(math.sqrt(NUM) )+ 1 ): もし NUM%の因子== 0: is_primeは = Falseの ブレーク 場合is_prime: プリント(NUM、端= ' ')