Python 関数型プログラミングのサンプル チュートリアル
関数型プログラミングは一連の関数を使って問題を解決する 一般的なプログラミングの考え方によれば、問題に直面したとき、私たちの考え方は「どうするか」ですが、関数型プログラミングの考え方は「何をしたいか」です。 。関数型プログラミングの特徴については、今はまとめませんが、関数型プログラミングとは何かを理解するために、直接例を使用してみましょう。
ラムダ式 (匿名関数):
通常の関数と匿名関数の定義方法:
#Ordinary function def add(a,b):
return a + bprint add(2,3) #匿名函数add = lambda a,b : a + bprint add(2,3)#========输出===========5 5
匿名関数の命名規則、確認済みlamdba キーワードの場合、コロン (:) の左側は関数が受け取るパラメータ (a, b) を表し、コロン (:) の右側は関数の戻り値 (a+b) を表します。
lamdbaは作成時に名前を付ける必要がないので、匿名関数と呼ばれます^_^
マップ関数:
文字列の長さを計算する
abc = ['com','fnng','cnblogs']for i in range(len(abc)): print len(abc[i])#========输出===========347
abc文字列配列を定義し、abcを計算する各文字列の長さ。出力配列をループします。
map() 関数がこのプロセスをどのように実装するかを見てみましょう。
abc_len = map(len,['hao','fnng','cnblogs'])print abc_len#========输出===========[3, 4, 7]
出力結果は同じですが、形式が異なります。最初のものは単純な数値であり、map() 関数の出力は配列の形式を維持します。
大文字と小文字の変換;
Python は大文字と小文字を変換する upper() と lower() を提供します。
#大文字変換 ss='hello WORLD!'
print ss.upper() #大文字に変換 print ss. lower() #小文字に変換 #========出力=== = =======ハローワールド!
hello world!
map() 関数を使用して変換します:
def to_lower(item): return item.lower()name = map(to_lower,['cOm','FNng','cnBLoGs'])print name#========输出===========['com', 'fnng', 'cnblogs']
この例では、関数 toUpper を作成したことがわかりますが、この関数は渡された値を変更しません。渡された値に対して簡単な操作を実行して、それを返すだけです。次に、これをmap関数で使用して、やりたいことを明確に記述します。
通常の方法で文字列の大文字と小文字の変換を実装する方法を見てみましょう:
abc = ['cOm','FNng','cnBLoGs']lowname = []for i in range(len(abc)): lowname.append(abc[i].lower())print lowname#========输出===========['hao', 'fnng', 'cnblogs']
map() 関数とラムダ式 (匿名関数) を使用すると、より強力な関数を実現できます。
#正方形を見つける#0*0,1*1,2*2,3*3,....8*8squares = map(lambda x : x*x ,range(9))print squares#=== =====Output===========[0, 1, 4, 9, 16, 25, 36, 49, 64]
Reduce関数:
def add(a,b): return a+b add = reduce(add,[2,3,4])print add#========输出===========9 对于Reduce函数每次是需要对两个数据进行处理的,首选取2 和3 ,通过add函数相加之后得到5,接着拿5和4 ,再由add函数处理,最终得到9 。
先ほどのmap関数の例ではMap 関数は一度に 1 つのデータのみを処理することがわかります。
そして、Reduce 関数とラムダ式を使用して階乗を実装することがいかに簡単であるかを発見しました:
#5Factorial#5! =1*2*3*4*5printreduce(lambda x,y: x*y, range(1,6))#========出力===========120
map とreduce に加えて、Python には補助関数として filter、find、all、any などの関数もあり (他の関数型言語でも利用可能)、これによりコードがより簡潔で読みやすくなります。より複雑な例を見てみましょう:
#配列内の正の整数の値を計算します。number =[2, -5, 9, -7, 2, 5, 4, -1, 0, -3, 8]
カウント = 0
sum = 0for i in range(len(number)):
if number[i]>0: count += 1 sum += number[i]print sum,countif count>0: average = sum/countprint average
#========出力===========30 6 5
関数型プログラミングを使用する場合、この例は次のように書くことができます:
number =[2, -5, 9, -7, 2, 5, 4, -1, 0, -3, 8] sum = filter(lambda x: x>0, number) average = reduce(lambda x,y: x+y, sum)/len(sum)print average
#========Output===========5
最後に、関数型プログラミングには次の利点があります:
1) コードが単純になります。
2) データセット、演算、戻り値がすべてまとめられています。
3) コードを読むと、ループ本体がないため、いくつかの一時変数と前後する変数のロジックを保存できます。
4) コードは、実行方法ではなく、実行したいことを記述するものになります。
以上がPython 関数型プログラミングのサンプル チュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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)

ホットトピック











正規表現を使用して PHP 配列から重複値を削除する方法: 正規表現 /(.*)(.+)/i を使用して、重複値を照合して置換します。配列要素を反復処理し、preg_match を使用して一致をチェックします。一致する場合は値をスキップし、一致しない場合は重複値のない新しい配列に追加します。

1. プログラミングは、Web サイト、モバイル アプリケーション、ゲーム、データ分析ツールなど、さまざまなソフトウェアやアプリケーションの開発に使用できます。その応用分野は非常に幅広く、科学研究、医療、金融、教育、エンターテイメントなど、ほぼすべての業界をカバーしています。 2. プログラミングを学ぶことは、問題解決スキルと論理的思考スキルを向上させるのに役立ちます。プログラミング中、問題を分析して理解し、解決策を見つけてコードに変換する必要があります。この考え方は、分析能力と抽象能力を養い、実際的な問題を解決する能力を向上させることができます。

Golang を使用してブラウザベースのアプリケーションを構築する Golang は JavaScript と組み合わせて、動的なフロントエンド エクスペリエンスを構築します。 Golang をインストールする: https://golang.org/doc/install にアクセスします。 Golang プロジェクトをセットアップします。 main.go というファイルを作成します。 GorillaWebToolkit の使用: HTTP リクエストを処理するための GorillaWebToolkit コードを追加します。 HTML テンプレートの作成: template サブディレクトリに、メイン テンプレートであるindex.html を作成します。

Python は、学習の容易さと強力な機能により、初心者にとって理想的なプログラミング入門言語です。その基本は次のとおりです。 変数: データ (数値、文字列、リストなど) を保存するために使用されます。データ型: 変数内のデータの型 (整数、浮動小数点など) を定義します。演算子: 数学的な演算と比較に使用されます。制御フロー: コード実行のフロー (条件文、ループ) を制御します。

Java をシンプルに: プログラミング能力の初心者向けガイド はじめに Java は、モバイル アプリケーションからエンタープライズ レベルのシステムに至るまで、あらゆるもので使用される強力なプログラミング言語です。初心者にとって、Java の構文はシンプルで理解しやすいため、プログラミングの学習に最適です。基本構文 Java は、クラスベースのオブジェクト指向プログラミング パラダイムを使用します。クラスは、関連するデータと動作をまとめて編成するテンプレートです。簡単な Java クラスの例を次に示します。 publicclassperson{privateStringname;privateintage;

Python は、問題解決の初心者に力を与えます。ユーザーフレンドリーな構文、広範なライブラリ、変数、条件文、ループによる効率的なコード開発などの機能を備えています。データの管理からプログラム フローの制御、反復的なタスクの実行まで、Python が提供します

Java は、初心者と経験豊富な開発者の両方が学習できる人気のあるプログラミング言語です。このチュートリアルは基本的な概念から始まり、高度なトピックに進みます。 Java Development Kit をインストールしたら、簡単な「Hello, World!」プログラムを作成してプログラミングを練習できます。コードを理解したら、コマンド プロンプトを使用してプログラムをコンパイルして実行すると、コンソールに「Hello, World!」と出力されます。 Java の学習はプログラミングの旅の始まりであり、習熟が深まるにつれて、より複雑なアプリケーションを作成できるようになります。

C は、初心者がシステム プログラミングを学習するのに最適な選択肢です。ヘッダー ファイル、関数、メイン関数のコンポーネントが含まれています。 「HelloWorld」を印刷できる単純な C プログラムには、標準入出力関数宣言を含むヘッダー ファイルが必要で、main 関数で printf 関数を使用して印刷します。 C プログラムは、GCC コンパイラーを使用してコンパイルして実行できます。基本をマスターしたら、データ型、関数、配列、ファイル処理などのトピックに進み、熟練した C プログラマーになることができます。
