ディレクトリ
定義された関数
機能とは何ですか
機能を持って、ツールが進出する準備ができているユーティリティ機能の一種であることは関数の定義、経験によってもたらさシーンです。
機能を使用する方法
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