自己定义函式有几个优点:
def <函式名称>():
<函式定义>
⋮
<函式定义>
函式执行的内容是 def <函式名称>():
之後有缩排的内容
下面例子中,如果输入的数不是偶数会呼叫 showErrorMessage()
def showErrorMessage():
print('Invalid input!')
x=int(input())
if x%2==0:
print('OK')
else:
showErrorMessage()
函式的参数要写在小括号 ()
中,如果有多个参数要用逗号 ,
分隔
参数在函式中可以像是变数一样使用
def add(x, y):
print(x+y)
a=int(input())
b=int(input())
add(a, b)
函式外的变数和函式的参数可以有一样的名字,两者独立互不影响
def add(x, y):
x=x+y
print(x)
x=int(input())
y=int(input())
add(x, y)
print(x, y)
虽然 add()
把 x
设为 x+y
,但最後显示的 x
并没有变动,可以确定函式外的 x
和函式的 x
是不同的资料
用 return
回传数值,被回传的可以是变数、运算、数值或是另一个函式的结果
return
同时也代表结束函式,只要执行到 return
,不管後面还有没有内容,函式都会结束
def add(x, y):
s=x+y
return s
print(add(1, 5))
函式 fun()
会在 data
的长度是偶数时回传 data
中每个元的总合,奇数时回传自订函式 f()
def f(data):
result=1
for num in data:
result*=num
return result
def fun(data):
if len(data)%2==0:
return sum(data)
else:
return f(data)
l=[1, 2, 5]
print(f(l))
l=[1, 2, 3, 4]
print(f(l))
可以用容器一次回传多个值
def pow(data, e):
for i in range(len(data)):
data[i]**=e
return data
nums=[1, 2, 5, 7, 9]
print(pow(nums, 2))
Python 中的参数可以不指定型别
def show(contain):
print('This is', contain, '!!!')
如果要限制参数的型别,可以在参数後面加上 :<型别>
def f(x: int):
return 8*x+7
print(f(4))
如果要标示函式回传的型别,可以在小括号 ()
之後加上 -><型别>
def f(x: int)->int:
return 8*x+7
print(f(4))
在 Python 中,不属於任何函式的变数(全域变数),可以被其他函式使用
但是函式中的变数,就只能被同个函数使用
def f(x):
return 8*x+7
def g():
n=m+7
return f(n)
m=3
print(g())
倒数第二行的 m
不属於任何函数,所以 g()
可以使用它的值
因为 n
是在 g()
里面建立的变数,所以其他地方无法使用这个 n
,如果 g()
之外如果还有叫做 n
的变数,则那个 n
和 g()
里面的 n
是不一样的变数
函式中不能直接指派函式外的变数
def fun():
x=10
print(x)
x=2
fun()
print(x)
虽然在 fun()
中指派 x
为10,但最後一行 print()
显示2,代表 fun()
中的 x
和 fun()
外的 x
是不同的变数
Python 没有规定自订函式一定要在程序码的开头,只要在被呼叫前定义就可以了
但函式的定义和程序执行的内容没有规定的顺序
函式必须在被呼叫前定义,所以 def fun()
这段可以放到倒数第二行前的任一行
x=10
y=100
def fun(a, b):
return a**b
z=fun(x, y)
print(z)
>>: Day 10 - Algebraic structure
[Day 19] Consistency and Consensus (3-3) - Total O...
目前工作上大部分都是用excel在做资料上的处理。以前虽然也有用过excel做过分析,单都仅限於少量...
就这半年以来的经验,会觉得是需要。 既然资料是关键的部分,那麽判读资料的组成和分布,运用上统计的知识...
Apex 为一款笔者近期最喜欢的竞技游戏,想藉着分析的名义,趁机推广一下这款大逃杀游戏。由於此游戏一...
今天要做的是区域的部分,重点的话之前就说过了就不再重复了,今天做两个区域北部和中部,那就赶快开始吧!...