Pythonの関数を詳しく解説

Mar 08, 2017 am 10:17 AM
Python関数

フィボナッチ数列

>>> fibs
[0, 1]>>> n=input('How many Fibonacci numbers do your what?')
How many Fibonacci numbers do your what?10
>>> for n in range(n-2):
    fibs.append(fibs[-2]+fibs[-1])    
>>> fibs
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
ログイン後にコピー

注: 組み込みの呼び出し可能関数を使用して、関数を呼び出すことができるかどうかを決定できます

def 関数を定義します

>>> def hello(name):
    print "Hello"+name

    
>>> hello('world')
Helloworld
ログイン後にコピー

関数を使用してフィボナックを記述しますシギリシャ語のシーケンス

>>> def fibs(num):
    s=[0,1]
    for i in range(num-2):
        s.append(s[-2]+s[-1])

        
>>> fibs(10)
ログイン後にコピー

注: return ステートメントは関数からの値を返します

関数の説明: 他の人が理解できるように関数のドキュメントを作成する場合は、コメント (# で始まる) を追加できます。 )。もう 1 つの方法は、文字列を直接記述することです。

>>> def square(x):
    'Calculates the square of the number x.'
    return x*x

>>> square.__doc__
'Calculates the square of the number x.'
ログイン後にコピー

組み込みヘルプ関数は、ドキュメント文字列を含む関数に関する情報を取得できます

>>> help(square)
Help on function square in module __main__:

square(x)
    Calculates the square of the number x.
ログイン後にコピー

関数内のパラメータに新しい値を代入しても、外部変数の値は変更されません。

>>> def try_to_change(n):
    n='Mr,Gumby'

    
>>> name='Mrs,Entity'
>>> try_to_change(name)
>>> name
'Mrs,Entity'
ログイン後にコピー

文字列 (数値やタプルと同様) は不変、つまり変更できません。変更可能なデータ構造 (リストまたは辞書) が変更されると、パラメータも変更されます

>>> n=['Bob','Alen']
>>> def change(m):
    m[0]='Sandy'

    
>>> change(n[:])
>>> n
['Bob', 'Alen']
>>> change(n)
>>> n
['Sandy', 'Alen']
ログイン後にコピー

キーワードパラメータとデフォルト値

>>> def hello(name,greeting='Hello',punctuation='!'):
    print '%s,%s%s' % (greeting,name,punctuation)

    
>>> hello(name='Nsds')
Hello,Nsds!
>>> hello(name='Nsds',greeting='Hi')
Hi,Nsds!
ログイン後にコピー

パラメータを収集する

タプルを返す:

>>> def print_params(*params):
    print params

    
>>> print_params('Testing') #返回元组
('Testing',)
>>> print_params(1,2,3)
(1, 2, 3)
>>> def print_params_2(title,*params):
    print title
    print params

    
>>> print_params_2('Params:',1,2,3)
Params:
(1, 2, 3)
ログイン後にコピー

辞書を返す

>>> def print_params_3(**params):
    print params

    
>>> print_params_3(x=1,y=2,z=3)
{'y': 2, 'x': 1, 'z': 3}
>>> def print_params_4(x,y,z=3,*pospar,**keypar):
    print x,y,z
    print pospar
    print keypar

    
>>> print_params_4(1,2,3,5,6,7,foo=1,bar=2)
2 3
(5, 6, 7)
{'foo': 1, 'bar': 2}
>>> print_params_4(1,2)
2 3
()
{}
ログイン後にコピー

タプル、辞書を呼び出す

>>> def add(x,y):return x+y

>>> params=(1,2)
>>> add(*params)
>>> def with_stars(**kwds):
    print kwds['name'],'is',kwds['age'],'years old']
>>> def without_starts(kwds):
    print kwds['name'],'is',kwds['age'],'years old'
>>> args={'name':'Nsds','age':24}
>>> with_stars(**args)
Nsds is 24 years old
>>> without_starts(args)
Nsds is 24 years old
>>> add(2,args['age'])
ログイン後にコピー

アスタリスクは関数を定義する場合にのみ使用されます (不定の数値が許可されます)。 call (" 便利です「辞書またはシーケンス」を分割する場合のみ

>>> def foo(x,y,z,m=0,n=0):
    print x,y,z,m,n

    
>>> def call_foo(*args,**kwds):
    print "Calling foo!"
    foo(*args,**kwds)

>>> d=(1,3,4)
>>> f={'m':'Hi','n':'Hello'}
>>> foo(*d,**f)
3 4 Hi Hello
>>> call_foo(*d,**f)
Calling foo!
3 4 Hi Hello
ログイン後にコピー

いくつかの例

>>> def story(**kwds):
    return 'Once upon a time,there was a' \
           '%(job)s called %(name)s.' % kwds

>>> def power(x,y,*others):
    if others:
        print 'Received redundant parameters:',others
    return pow(x,y)

>>> def interval(start,stop=None,step=1):
    if stop is None:
        start,stop=0,start  #start=0,stop=start
    result=[]
    i=start
    while i<stop:
        result.append(i)
        i+=step
    return result

>>> print story(job=&#39;king&#39;,name=&#39;Gumby&#39;)
Once upon a time,there was aking called Gumby.
>>> print story(name=&#39;Sir Robin&#39;,job=&#39;brave knight&#39;)
Once upon a time,there was abrave knight called Sir Robin.
>>> params={&#39;job&#39;:&#39;language&#39;,&#39;name&#39;:&#39;Python&#39;}
>>> print story(**params)
Once upon a time,there was alanguage called Python.
>>> del params[&#39;job&#39;]
>>> print story(job=&#39;store of genius&#39;,**params)
Once upon a time,there was astore of genius called Python.
>>> power(2,3)
>>> power(y=3,x=2)
>>> params=(5,)*2
>>> power(*params)
>>> power(3,3,&#39;Helld,world&#39;)
Received redundant parameters: (&#39;Helld,world&#39;,)
>>> interval(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> interval(1,5)
[1, 2, 3, 4]
>>> power(*interval(3,7))
Received redundant parameters: (5, 6)
ログイン後にコピー

グローバル変数の変更

>>> def f():
    global x
    x=x+1

    
>>> f()
>>> x
>>> f()
>>> x
ログイン後にコピー

ネスト

>>> def multiplier(factor):
    def multiplyByFactor(number):
        return number*factor
    return multiplyByFactor

>>> double=multiplier(2)
>>> double(5)
>>> multiplier(2*5)
<function multiplyByFactor at 0x0000000002F8C6D8>
>>> multiplier(2)(5)
ログイン後にコピー

再帰 ( call)

階乗和累乗

>>> def factorial(n):
    if n==1:
        return 1
    else:
        return n*factorial(n-1)
    
>>> factorial(5)
>>> range(3)
[0, 1, 2]
>>> def power(x,n):
    result=1
    for i in range(n):
        result *= x
    return result
>>> power(5,3)
ログイン後にコピー

>>> def power(x,n):
    if n==0:
        return 1
    else:
        return x*power(x,n-1)

    
>>> power(2,3)
ログイン後にコピー


二分探索

>>> def search(s,n,min=0,max=0):
    if max==0:
        max=len(s)-1
    if min==max:
        assert n==s[max]
        return max
    else:
        middle=(min+max)/2
        if n>s[middle]:
            return search(s,n,middle+1,max)
        else:
            return search(s,n,min,middle)

        
>>> search(seq,100)
ログイン後にコピー

マップ関数

を受け取ります関数とリストを渡し、関数を渡します。リストの要素を順に取得し、新しいリストを取得して返します

>>> map(str,range(10))
[&#39;0&#39;, &#39;1&#39;, &#39;2&#39;, &#39;3&#39;, &#39;4&#39;, &#39;5&#39;, &#39;6&#39;, &#39;7&#39;, &#39;8&#39;, &#39;9&#39;]
>>> def f(x):
    return x*x

>>> print map(f,[1,2,3,4,5,6,7])
[1, 4, 9, 16, 25, 36, 49]
ログイン後にコピー

>>> def format_name(s):
    s1=s[0].upper()+s[1:].lower()
    return s1

>>> print map(format_name,[&#39;ASDF&#39;,&#39;jskk&#39;])
[&#39;Asdf&#39;, &#39;Jskk&#39;]
ログイン後にコピー

フィルター関数

関数とリスト(リスト)を受け取り、この関数が順に各要素を判定しますそして、filter()は判定結果に基づいて条件を満たさない要素を自動的に除外し、条件を満たす要素から構成される新しいリストを返す

rreee

ラムダ関数

匿名関数とも呼ばれます。つまり、関数には特定の名前がありませんが、def で作成されたメソッドには名前が付いています

>>> def is_not_empty(s):
    return s and len(s.strip())>0

>>> filter(is_not_empty,[None,&#39;dshk&#39;,&#39;  &#39;,&#39;sd&#39;])
[&#39;dshk&#39;, &#39;sd&#39;]
>>> def pfg(x):
    s=math.sqrt(x)
    if s%1==0:
        return x

>>> import math
>>> pfg(100)
>>> pfg(5)
>>> filter(pfg,range(100))
[1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> def is_sqr(x):
    return math.sqrt(x)%1==0

>>> is_sqr(100)
True
>>> filter(is_sqr,range(100))
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
ログイン後にコピー

>>> def foo():return &#39;Begin&#39;

>>> lambda:&#39;begin&#39;
<function <lambda> at 0x0000000002ECC2E8>
>>> s=lambda:&#39;begin&#39;
>>> print s()
begin
>>> s= lambda x,y:x+y
>>> print s(1,2)
>>> def sum(x,y=6):return x+y

>>> sum2=lambda x,y=6:x+y
>>> sum2(4)
ログイン後にコピー

reduce関数

関数とリストを受け取ります(list)、関数は 2 つのパラメーターを受け取る必要があります。この関数はリストの各要素を順番に呼び出し、結果の値で構成される新しいリストを返します

>>> filter(lambda x:x*x,range(1,5))
[1, 2, 3, 4]>>> map(lambda x:x*x,range(1,5))
[1, 4, 9, 16]>>> filter(lambda x:x.isalnum(),[&#39;8ui&#39;,&#39;&j&#39;,&#39;lhg&#39;,&#39;)j&#39;])
[&#39;8ui&#39;, &#39;lhg&#39;]
ログイン後にコピー

Python および関連する関数の詳細な説明については、記事をご覧になる際は、PHP 中国語 Web サイトにご注意ください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Python関数入門:abs関数の使い方と例 Python関数入門:abs関数の使い方と例 Nov 03, 2023 pm 12:05 PM

Python 関数入門: abs 関数の使い方と例 1. abs 関数の使い方の概要 Python では、abs 関数は、指定された値の絶対値を計算するために使用される組み込み関数です。数値引数を受け入れ、その数値の絶対値を返すことができます。 abs 関数の基本構文は次のとおりです。 abs(x) ここで、x は絶対値を計算する数値パラメータであり、整数または浮動小数点数を指定できます。 2. abs 関数の例 以下に、いくつかの具体的な例を通して abs 関数の使用法を示します。 例 1: 計算

Python関数入門:isinstance関数の使い方と例 Python関数入門:isinstance関数の使い方と例 Nov 04, 2023 pm 03:15 PM

Python 関数の紹介: isinstance 関数の使用法と例 Python は、プログラミングをより便利かつ効率的にするための多くの組み込み関数を提供する強力なプログラミング言語です。非常に便利な組み込み関数の 1 つは isinstance() 関数です。この記事では、isinstance関数の使い方と例を紹介し、具体的なコード例を紹介します。 isinstance() 関数は、オブジェクトが指定されたクラスまたは型のインスタンスであるかどうかを判断するために使用されます。この関数の構文は次のとおりです

Python 関数のハードコードされたエラーを修正するにはどうすればよいですか? Python 関数のハードコードされたエラーを修正するにはどうすればよいですか? Jun 25, 2023 pm 08:15 PM

Python プログラミング言語の普及に伴い、開発者はプログラムを作成する過程で「ハードコーディングされたエラー」の問題に遭遇することがよくあります。いわゆる「ハードコーディングエラー」とは、特定の数値、文字列、その他のデータを定数や変数として定義せずにコードに直接書き込むことを指します。このアプローチには、可読性が低い、保守、変更、テストが難しいなどの多くの問題があり、またエラーの可能性も高くなります。この記事では、Python 関数のハードコーディングされたエラーの問題を解決する方法について説明します。 1. 何が難しいのか

Python 関数の概要: 関数とフィルター関数の例 Python 関数の概要: 関数とフィルター関数の例 Nov 04, 2023 am 10:13 AM

Python 関数の紹介: フィルター関数の役割と例 Python は、多くの組み込み関数を提供する強力なプログラミング言語であり、その 1 つがフィルター関数です。 filter 関数は、リスト内の要素をフィルターし、指定された条件を満たす要素で構成される新しいリストを返すために使用されます。この記事では、フィルター関数の機能を紹介し、読者がフィルター関数の使用法と可能性を理解できるようにいくつかの例を示します。フィルター関数の構文は次のとおりです。

Python 関数入門: dir 関数の使用法と例 Python 関数入門: dir 関数の使用法と例 Nov 03, 2023 pm 01:28 PM

Python 関数の紹介: dir 関数の使用法と例 Python は、オープンソースの高レベルのインタープリタ型プログラミング言語です。 Web アプリケーション、デスクトップ アプリケーション、ゲームなど、さまざまな種類のアプリケーションの開発に使用できます。 Python には、プログラマーが効率的な Python コードを迅速に作成するのに役立つ、多数の組み込み関数とモジュールが用意されています。その中でも、 dir 関数は非常に便利な組み込み関数であり、プログラマがオブジェクト、モジュール、またはクラスのプロパティとメソッドを表示するのに役立ちます。

Python 関数入門: グローバル関数の関数と使用例 Python 関数入門: グローバル関数の関数と使用例 Nov 04, 2023 pm 02:58 PM

Python 関数の紹介: globals 関数の関数と使用例 Python は、多くの組み込み関数を提供する強力なプログラミング言語であり、その中には globals() 関数があります。この記事では、globals()関数の機能と使用例を、具体的なコード例とともに紹介します。 1. globals 関数の関数 globals() 関数は、現在のモジュールのグローバル変数の辞書を返す組み込み関数です。グローバル変数を含む辞書を返します。

Python 関数入門: range 関数の概要と例 Python 関数入門: range 関数の概要と例 Nov 04, 2023 am 10:10 AM

Python 関数入門: range 関数の紹介と例 Python は、学習が容易で豊富な組み込み関数ライブラリを備え、さまざまな分野で広く使用されている高級プログラミング言語です。その中でも、range関数はPythonでよく使われる組み込み関数の一つです。この記事では、range関数の機能と使い方を詳しく紹介し、例を通してその具体的な応用例を示します。 range 関数は、整数シーケンスを生成するために使用される関数です。開始値 (開始値) である 3 つのパラメーターを受け入れます。

Python 関数での安全でない同時実行エラーを解決するにはどうすればよいですか? Python 関数での安全でない同時実行エラーを解決するにはどうすればよいですか? Jun 24, 2023 pm 12:37 PM

Python は、シンプルで理解しやすい構文、豊富な標準ライブラリ、オープンソース コミュニティのサポートを備えた人気の高水準プログラミング言語であり、オブジェクト指向プログラミング、関数型プログラミングなどの複数のプログラミング パラダイムもサポートしています。特に、Python はデータ処理、機械学習、科学技術計算などの分野で広く使用されています。ただし、Python にはマルチスレッドまたはマルチプロセス プログラミングにおいていくつかの問題もあります。その 1 つは同時実行性の不安です。この記事では、Python 関数の同時実行性の問題を次の側面から解決する方法を紹介します。

See all articles