関数定義、戻り値、関数のパラメータ

定義された関数

機能とは何ですか

機能を持って、ツールが進出する準備ができているユーティリティ機能の一種であることは関数の定義、経験によってもたらさシーンです。

機能を使用する方法

def 函数名(等同于变量)():   # 定义函数
    """对函数的描述"""
    代码块

函数名()   # 函数调用

登録機能機能

def register():
    """注册功能"""
    count = 0
    while count < 3:
        username_inp = input('请输入你的用户名:').strip()
        pwd_inp = input('请输入你的密码:').strip()
        re_pwd_inp = input('请再次确认你的密码:').strip()

        if re_pwd_inp != pwd_inp:
            print('两次密码输入不一致!')
            count += 1
            continue

        with open('userinfo.txt', 'a', encoding='utf-8') as fa:
            fa.write(f'{username_inp}:{pwd_inp}\n')
            print('注册成功')
            break
            
register()

ログインパフォーマンス機能

def login():
    """登录功能"""
    username_inp = input('请输入你的用户名:').strip()
    pwd_inp = input('请输入你的密码:').strip()

    user_info = f'{username_inp}:{pwd_inp}'

    with open('userinfo.txt', 'r', encoding='utf-8') as fr:
        data = fr.read()
        user_info_list = data.split('\n')

        if user_info in user_info_list:
            print('登录成功')
        else:
            print('登陆失败')

login()

三つの形式定義関数

空の機能

これは、関数を定義しますが、中には何もありません

def func():
    pass

関数のパラメータがあります。

def add(x, y):
    """有参函数"""
    print(int(x) + int(y))

add(1, 2)

引数なしの機能

def func():
    print('hello world')

関数の呼び出し

使用する函数名()関数を呼び出すことができますフォームを

def func(x, y):
    """给定两个数, 打印较大的数"""
    if x > y:
        print(x)
    else:
        print(y)

print(func)
func(10, 20)   # 加括号就能调用(执行内存中的代码)

# 打印结果:
<function func at 0x00000253DFEF0950>   # 函数的地址
20

関数の戻り値

値を返すために戻ります

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



res = add(1, 2)
print(res)

# 打印结果
3

戻り値、デフォルトの戻りNoneを返します

def add(x, y):
    print(x, y)
    # return x + y



res = add(1, 2)
print(res)

# 打印结果:
1 2
None

戻り値が複数の値を返すことができ、あなたは、任意のデータ型、デフォルトのリターンフォームタプルを返すことができます

def add(x, y):
    print(2)
    return x, y, x + y


res = add(1, 2)
print(res)

# 打印结果:
2
(1, 2, 3)

戻り値は、関数を終了し、次のコードは、複数の復帰、復帰の唯一の実装がある場合でも、ない次に、実行されません。

def add(x, y):
    print(2)
    return x, y, x + y    # 遇到return就会终止函数
    print('hello world')
    return x


res = add(1, 2)
print(res)

# 打印结果:
2
(1, 2, 3)

関数のパラメータ

そして、パラメータの引数

形参

括弧関数定義段階で定義されたパラメータは、仮パラメータと呼ばれ、パラメータが参照、基本的に変数名です

def func(x, y):
    print(x)
    print(y)

引数

関数呼び出しステージ括弧パラメータで渡された引数と呼ばれます

func(1, 2)

位置パラメータ

Locationパラメータ

定義位相関数において、左から右へ順にパラメータを順次定義され、位置パラメータと呼ばれます

def func(x, y):
    print(x)
    print(y)

引数の位置

関数呼び出し段階は、左から右への順で定義されたパラメータに応じて、実際のパラメータ値と呼ばれる位置に順次位置パラメータを渡します

func(1, 2)

デフォルトのパラメータ

関数定義の段階では、それが割り当てられています

def func(x, y=10):
    print(x)
    print(y)

func(2)
  • 定義フェーズが割り当てられている間、あなたが呼ぶとき、あなたは値を渡すことはできません。値であれば、値のパスを使用します
  • 必要なパラメータのデフォルトの位置パラメータの後

キーワード引数

パラメータの値に場所名に応じて、関数を呼び出すとき

func(y=2, x=1)

キーワード引数は、引数の後ろの位置になければなりません

VARARG

*の可変長パラメータ

*パラメータは、位置、すべての引数、次いで格納されたタプルにオーバーフローする、タプルは、次に*パラメータに割り当てられています。なお:*引数のパラメータ規則の名前。

def f1(*args):
    print('args:', args)


f1(1, 23, 4)  # args接收位置实参多余的参数

# 打印结果:
args: (1, 23, 4)

可変長パラメータ**

'''
形参中的**会将溢出的关键字实参全部接收,然后存储字典的形式,然后把字典赋值给**后的参数。需要注意的是:**后的参数名约定俗成为kwargs。
'''

def f2(a,**kwargs):
    print('kwargs:', kwargs)


f2(x=12, a=10, b=9)    # kwargs接收关键字实参多余的参数

# 打印结果:
kwargs: {'x': 12, 'b': 9}

*の可変長引数

def func1(a,b,c,d):
    print(a,b,c,d)

lt = [1,2,3,4]
func1(*lt)     # *lt列表中的元素打散成位置实参依次传给位置形参

**変数の引数

def func(a, b):
    print(a, b)


dic = {'a': 1, 'b': 2}
func(**dic)               # **dic把字典打散成关键字实参然后传给函数func

おすすめ

転載: www.cnblogs.com/setcreed/p/11566627.html