Python プログラミングのアイデアについて話しましょう
この記事では、python に関する関連知識を提供します。主にプログラミングのアイデアに関連する問題を整理します。Python は、オブジェクト指向の oop (オブジェクト指向プログラミング) スクリプト言語です。プログラミング的思考の核心は、次のことを理解することです。関数型ロジックについて見てみましょう。皆さんのお役に立てれば幸いです。
推奨学習: Python ビデオ チュートリアル
Python はオブジェクト指向です oop(オブジェクト指向プログラミング) スクリプト言語。
オブジェクト指向は、オブジェクト (エンティティ) の概念を使用してモデルを構築し、客観的な世界をシミュレートしてソフトウェアを分析、設計、実装する手法です。
オブジェクト指向プログラミングでは、オブジェクトには 2 つの意味が含まれており、1 つはデータ、もう 1 つはアクションです。オブジェクト指向のアプローチでは、データとメソッドを 1 つに結合し、それを体系的にモデル化します。
Python プログラミングの考え方の核心は、関数ロジックを理解することです。問題を解決するロジックを理解していない場合、コードは次のようになります。 like 非常にわかりにくくて読みにくいので、ロジックを明確にし、機能をモジュールごとに体系的にプログラムすれば、コードデザインは間違いなく美しくなります。 ! !
1 基本的なプログラミング パターン
あらゆるプログラミングには、次のことを表す IPO が含まれます。
- I: 入力 input 、プログラム
- #P: プロセス処理、プログラムの主な論理プロセス
##O: 出力、プログラムの出力
したがって、コンピュータを通じて特定の機能を実装したい場合は、
基本的なプログラミング パターン
# には、次の 3 つの部分が含まれます。 #IPO の決定: 実現する必要がある機能の入力と出力、および主要な実装ロジック プロセスを明確にします;
- プログラムを作成します:プログラミング言語を通じて計算と解の論理プロセスを実行します デザイン表示;
- プログラムのデバッグ: 論理プロセスに従って作成されたプログラムをデバッグし、プログラムが正しい手順に従って正しく実行されることを確認します。論理。
- #2 複雑な問題を解決するための効果的な方法: トップダウン (設計)
##2.1 トップダウンの分割と征服
関数を実現するためのロジックが比較的複雑な場合は、複雑な問題を複数の単純な問題に分解し、その中に単純な問題を含めるために
モジュール的に設計する必要があります。関数ロジックがモジュール プログラミングを通じて実現できるようになるまで、より単純な問題に分解し続けることができます。これはプログラミングの トップダウン の特徴でもあります。要約は次のとおりです。
一般的な問題を、いくつかの小さな問題から構成される形式に表現します。同じ方法を使用して、小さな問題をさらに分解します。小さな問題はコンピューターによるシンプルで明快な解決策です。
- 2.2 例 1: スポーツ競技の分析
- 2.2.1プログラム全体のフレームワーク
printlnfo() s 's ' s ‐ ‐ ‐ ‐ ‐ ‐ ステップ 1: プログラムの紹介情報を出力する getlnputs()ステップ 3: プレイヤー A と B の能力値を使用して n 試合をシミュレートします printsummary() ステップ 4: プレイヤー A と B がゲームに勝つ数と確率を出力します
# 导入python资源包 from random import random # 用户体验模块 def printIntro(): print("这个程序模拟两个选手A和B的某种竞技比赛") print("程序运行需要A和B的能力值(以0到1之间的小数表示)") # 获得A和B的能力值与场次模块 def getIntputs(): a = eval(input("请输入A的能力值(0-1):")) b = eval(input("请输入B的能力值(0-1):")) n = eval(input("模拟比赛的场次:")) return a, b, n # 模拟n局比赛模块 def simNGames(n, probA, probB): winsA, winsB = 0, 0 for i in range(n): scoreA, scoreB = simOneGame(probA, probB) if scoreA > scoreB: winsA += 1 else: winsB += 1 return winsA, winsB # 判断比赛结束条件 def gameOver(a, b): return a == 15 or b == 15 # 模拟n次单局比赛=模拟n局比赛 def simOneGame(probA, probB): scoreA, scoreB = 0, 0 serving = "A" while not gameOver(scoreA, scoreB): if serving == "A": if random() < probA: scoreA += 1 else: serving = "B" else: if random() < probB: scoreB += 1 else: serving = "A" return scoreA, scoreB # 打印结果模块 def printSummary(winsA, winsB): n = winsA + winsB print("竞技分析开始,共模拟{}场比赛".format(n)) print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA / n)) print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB / n)) def main(): printIntro() probA, probB, n = getIntputs() # 获得用户A、B能力值与比赛场次N winsA, winsB = simNGames(n, probA, probB) # 获得A与B的场次 printSummary(winsA, winsB) # 返回A与B的结果 main()
2.2.3 テスト結果
##2.3 例 2: フィボナッチ証書シーケンス
トップダウンの方法は実際には
再帰を使用して部分問題を解決します。最終的な解決策は再帰式を呼び出すだけで済みます。問題は徐々に再帰的に解決されます。より低いレベルへ。
プログラミング:
cache = {}
def fib(number):
if number in cache:
return cache[number]
if number == 0 or number == 1:
return 1
else:
cache[number] = fib(number - 1) + fib(number - 2)
return cache[number]
if __name__ == '__main__':
print(fib(35))
##3 複雑なシステムを段階的に構築するための効果的なテスト方法: ボトムアップ (実行) ##3.1 ボトムアップのモジュラー統合 ## 自底向上(执行)就是一种逐步组建复杂系统的有效测试方法。首先将需要解决的问题分为各个三元进行测试,接着按照自顶向下相反的路径进行操作,然后对各个单元进行逐步组装,直至系统各部分以组装的思路都经过测试和验证。 理解自底向上的执行思维:模块化集成 自底向上分析思想: 自底向上是⼀种求解动态规划问题的方法,它不使用递归式,而是直接使用循环来计算所有可能的结果,往上层逐渐累加子问题的解。在求解子问题的最优解的同时,也相当于是在求解整个问题的最优解。其中最难的部分是找到求解最终问题的递归关系式,或者说状态转移方程。 3.2 举例:0-1背包问题 你现在想买⼀大堆算法书,有一个容量为 V 的背包,这个商店⼀共有 n 个商品。问题在于,你最多只能拿 W kg 的东西,其中 wi 和 vi 分别表示第 i 个商品的重量和价值。最终的目标就是在能拿的下的情况下,获得最大价值,求解哪些物品可以放进背包。 对于每⼀个商品你有两个选择:拿或者不拿。 ⾸先要做的就是要找到“子问题”是什么。通过分析发现:每次背包新装进⼀个物品就可以把剩余的承重能力作为⼀个新的背包来求解,⼀直递推到承重为0的背包问题。 用 m[i,w] 表示偷到商品的总价值,其中 i 表示⼀共多少个商品,w 表示总重量,所以求解 m[i,w]就是子问题,那么看到某⼀个商品i的时候,如何决定是不是要装进背包,需要考虑以下: 由以上的分析,可以得出m[i,w]的状态转移方程为: m[i,w] = max{m[i-1,w], m[i-1,w-wi]+vi} 推荐学习:python 以上がPython プログラミングのアイデアについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。14930352
>>>
3.2.1 问题描述
3.2.2 自底向上分析
3.2.3 程序设计
# 循环的⽅式,自底向上求解
cache = {}
items = range(1,9)
weights = [10,1,5,9,10,7,3,12,5]
values = [10,20,30,15,40,6,9,12,18]
# 最⼤承重能⼒
W = 4
def knapsack():
for w in range(W+1):
cache[get_key(0,w)] = 0
for i in items:
cache[get_key(i,0)] = 0
for w in range(W+1):
if w >= weights[i]:
if cache[get_key(i-1,w-weights[i])] + values[i] > cache[get_key(i-1,w)]:
cache[get_key(i,w)] = values[i] + cache[get_key(i-1,w-weights[i])]
else:
cache[get_key(i,w)] = cache[get_key(i-1,w)]
else:
cache[get_key(i,w)] = cache[get_key(i-1,w)]
return cache[get_key(8,W)]
def get_key(i,w):
return str(i)+','+str(w)
if __name__ == '__main__':
# 背包把所有东西都能装进去做假设开始
print(knapsack())
29
>>>

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PythonコードをSublimeテキストで実行するには、最初にPythonプラグインをインストールし、次に.pyファイルを作成してコードを書き込み、Ctrl Bを押してコードを実行する必要があります。コードを実行すると、出力がコンソールに表示されます。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Golangは、パフォーマンスとスケーラビリティの点でPythonよりも優れています。 1)Golangのコンピレーションタイプの特性と効率的な並行性モデルにより、高い並行性シナリオでうまく機能します。 2)Pythonは解釈された言語として、ゆっくりと実行されますが、Cythonなどのツールを介してパフォーマンスを最適化できます。

Visual Studioコード(VSCODE)でコードを作成するのはシンプルで使いやすいです。 VSCODEをインストールし、プロジェクトの作成、言語の選択、ファイルの作成、コードの書き込み、保存して実行します。 VSCODEの利点には、クロスプラットフォーム、フリーおよびオープンソース、強力な機能、リッチエクステンション、軽量で高速が含まれます。

メモ帳でPythonコードを実行するには、Python実行可能ファイルとNPPEXECプラグインをインストールする必要があります。 Pythonをインストールしてパスを追加した後、nppexecプラグインでコマンド「python」とパラメーター "{current_directory} {file_name}"を構成して、メモ帳のショートカットキー「F6」を介してPythonコードを実行します。
