[Cours 6.2] Fonctions personnalisées
Comment créer une fonction? déclaration def
1. Définissez la fonction
def f(x):
if x < 5:
print('输入值小于5')
else:
print('输入值大于等于5') # 定义函数,其中x是参数(局部变量)
f(10) # 运行函数
----------------------------------------------------------------------
输入值大于等于5
2. À propos du retour
def f1(x):
y = 2**x # 没有return
def f2(x):
y = 2**x
return y # 含有return
print(f1(2),f2(2))
# return语句退出函数,并返回一个表达式。不带参数值的return语句返回None
----------------------------------------------------------------------
3. Paramètres par défaut
def f(x,n = 2):
return(x**n)
print(f(10))
print(f(10,3))
# n = 2,这里n的默认值为2,如果不输入则以默认值为主
----------------------------------------------------------------------
100
1000
4. Paramètres variables
def f(*x):
print(x)
return x
f(1)
f('a','b')
f(1,2,3,[44,33])
print(type(f('a','b')))
# 通过*来定义可变参数
# 默认会把可变参数传入一个元祖!
----------------------------------------------------------------------
(1,)
('a', 'b')
(1, 2, 3, [44, 33])
('a', 'b')
<class 'tuple'>
Petits devoirs
① Fonction f (x), entrez une chaîne, imprimez chaque lettre séparément
def f(st):
for s in st:
print(s)
str_input = input('请输入一个字符串')
f(str_input)
② f (x, y, z), algorithme interne de la fonction: générer ((x + y) (xy)) * z
def f(x,y,z):
a = (x+y)*(x-y)*z
return(a)
print(f(5,4,2))
③ Écrire une fonction moyenne f (* m)
def f(*m):
s = 0
lst = []
for i in m:
while str(i).isnumeric():#当i不是数字是不计算
s+=i
lst.append(i)
break
else:
print("输入列表中存在非数字%s"%i)
print(lst)
return(s/len(lst))
print(f(1,2,'a',3))
④ Définissez une fonction pour trouver une zone rectangulaire et une zone circulaire
⑤ Définissez une fonction, la fonction de la fonction est de transformer la liste d'entrée en une série de touches de dictionnaire et de générer un dictionnaire, vous devez utiliser l'entrée d'entrée **
list = eval(input('请输入一个列表'))#eval直接执行你输出的列表,结果就是一个列表
def f(lst):
return(dict.fromkeys(lst,0))