# 函數定義語法
## def 函數()
~~~
def xiao(str1):
a = 0
for i in str1:
a += 1
print(a)
xiao("s")
~~~
# 沒有返回值的函數 void類型的函數 直接返回 None
~~~
def xiao():
a = 10
for i in range(10):
a -= 1
print(a)
return None
xiao()
~~~
## 函數多返回值:
~~~
def test_return():
return 1,"hello",True
x,y,z=test_return()
print(x)
print(y)
print(z)
~~~

<br/>
<br/>
## 缺省參數
以下與PHP類似 如果行參定義了值,如果不傳默認為形參值,傳遞了為實參值
~~~
def user_info(name,age,gender="男"):
print(f"姓名:{name},年齡{age},性別{gender}")
user_info("小米",20,"女")
~~~

## 不定長參數:
1.位置傳遞
不定長參數也叫可變參數,用于不確定調用的時候,會傳遞多少個參數(不傳參也可也)的場景
作用:當調用函數時不確定參數個數時,可以使用不定長參數
不定長參數的類型:
## 位置傳遞參數 返回一個元組
~~~
def user_info(*args):
print(args)
user_info("小米",20,"女")
~~~

<br/>
<br/>
## 2.關鍵字不定長
## 關鍵字不定長 返回一個字典
~~~
def user_info(**args):
print(type(args))
user_info(name="小米",age=20,gender="女",addr="北京") #參數必須是帶有變量的
~~~
