Note Chapter 4 Working with Functions in Python
函数
定义
函数是一个有组织、可重复使用的代码块,用于执行单个相关操作。函数为应用程序提供了更好的模块化和更高的代码重用率。 函数块以关键字 def
开头,后跟函数名和括号 ( ( ) ) def function_name(parameters):
# Program
def print_me(string):
print(string)
return
print_me("Hello World")
Hello World
# Program
def add(a,b):
c=a+b
return c
add(3,4)
7
创建一个change_List函数,将mylist追加一个值
# Program
# Program
def change_list(mylist):
mylist.append([1,2,3])
print("Values inside the function",mylist)
return
mylist=[1,2,3]
change_list(mylist)
print("Values outside the function",mylist)
# Program
def modify(x):
x =15
print(x,id(x))
return x
x =3
modify(5)
print(x,id(x))
15 140705720499064
3 140705720498680
# Program
def add_num(a,b):
c=a+b
return c
add_num(3,4)
7
# Program
def check_even_or_odd(num):
if num%2==0:
ans="Even"
else:
ans="Odd"
return ans
check_even_or_odd(5)
'Odd'
# Program
def check_prime(num):
if num<=1:
ans="Prime"
for i in range(2,num):
if i != num-1:
if num%i==0:
ans="Not prime"
break
else:
ans="Prime"
break
return ans
check_prime(5)
'Prime'
# Program
def print_factorial(num):
ans=1
for i in range(1,num+1):
ans*=i
return ans
print_factorial(5)
120
形参Parameter(Param)
和实参Argument(Arg)
的区别
Parameter(Param)
和实参Argument(Arg)
的区别定义函数 def add(a,b)
时,a,b为实参
调用函数 add(3,4)
时,3,4为实参
关键字参数
关键字参数是通过参数名进行传递的参数,它们不依赖于参数的位置。 可以在函数调用时指定参数名,这样参数的顺序可以与函数定义中的顺序不一致,不会引发错误。 使用关键字参数可以提高代码的可读性,并且使得函数调用更加清晰和明确。
位置参数
位置参数是函数定义中按照顺序声明的参数,调用函数时必须按照相同的顺序传递参数。 参数的位置和数量必须与函数定义中的位置参数相匹配,否则会引发错误。 位置参数传递的方式是根据参数在函数定义中的位置来匹配参数值。
! 若在定义函数给参数提前赋值(默认值),即使不调用参数也可以运行。
*不定长参数
定义一个不定长位置参数 *args,它可以接受任意数量的位置参数。在函数体内,通过循环遍历 args 元组,将所有参数相加并返回结果。
# Program
def grocery(item,price):
print('Item = %s' %item)
print('Price = %s' %price)
grocery(price=5,item="apple") #关键字参数调用
grocery("banana",35) #位置参数
Item = apple
Price = 5
# Program
def plus(*args): #不定长参数
a=0
for i in args:
a+=i
return a
plus(1,2,3,4,5)
15
# Program
def cauculator_(cau_type,*args):
if cau_type=='add':
return sum(args)
if cau_type=='multiply':
ans=1
for i in args:
ans*=i
return ans
if cau_type=='subtract':
ans=args[0]
for i in args:
if i == args[0]:
continue
else:
ans-=i
return ans
if cau_type=='divide':
ans=args[0]
for i in args:
if i == args[0]:
continue
if i == 0:
print(f"{ans} cannot be divided by i.")
else:
ans/=i
return ans
cauculator_('subtract',3,4,5)
-6
内置函数
绝对值 abs()
abs()
二进制 bin()
bin()
累加 sum()
sum()
将特殊符号转换成二进制 ascii()
ascii()
获取字符串长度len()
len()
将变量转换为本地变量locals()
或全局变量global()
locals()
或全局变量global()
global单独输出会作为字典
# Program
# Program
Last updated