Maison >développement back-end >Tutoriel Python >Explication détaillée des fonctions intégrées et de la récursivité dans les bases de Python

Explication détaillée des fonctions intégrées et de la récursivité dans les bases de Python

PHP中文网
PHP中文网original
2017-06-21 13:18:411719parcourir

1. Fonctions intégrées

En voici quelques-unes brièvement présentées :

1.abs() Trouver la valeur absolue

2. all() Si tous les éléments de iterable sont vrais (ou si l'itérable est vide), retournez <span class="pre">True</span>

3.any() if iterable Si un élément de est vrai, <span class="pre">True</span> est renvoyé. Si l'itérable est vide, retournez <span class="pre">False</span>

4.callable() Si le paramètre object semble réglable, retournez <span class="pre">True</span>Vrai<span class="pre">False</span>, sinon renvoie <br>False

<span class="pre">(a<span class="pre">//<span class="pre">b,<span class="pre">a<span class="pre">%<span class="pre">b)</span></span></span></span></span></span><span class="pre">(q,<span class="pre">a<span class="pre">%<span class="pre">b)</span></span></span></span>5.divmod() prend deux nombres (non complexes) comme arguments et renvoie une paire de nombres composée du quotient et du reste lors de l'utilisation d'une division entière. Pour les types d'opérandes mixtes, les règles des opérateurs arithmétiques binaires s'appliquent. Pour les entiers, le résultat est le même que <em>(a</em>//<code class="docutils literal"><span class="pre">math.floor(a<span class="pre">/<span class="pre">b)</span></span></span>b,a

%

b)

Idem. Pour les nombres à virgule flottante, le résultat est

(q,

a%b)

code> , où

q

est généralement <span class="pre">math.floor(a</span>/

b)

code> , mais peut être inférieur à 1

l=[1,2,4,9,-1]print(sorted(l)) #从小到大print(sorted(l,reverse=True)) #从大到小
6. Le paramètre enumerate() doit être un objet itérable, le résultat de l'opération de fonction obtiendra un itérateur, des éléments de sortie et les valeurs d'index correspondantes ​​

7.eval() Extrayez les éléments de la chaîne et exécutez

8.frozenset() Collection immuable, la collection définie by Frozenset() ne peut pas ajouter ou supprimer d'éléments

9.globals() Renvoie un dictionnaire représentant la table des symboles globaux actuelle. Il s'agit toujours d'un dictionnaire du module actuel (à l'intérieur d'une fonction ou d'une méthode, il s'agit du module dans lequel elle est définie, pas du module à partir duquel elle est appelée)

10.round( ) sur les arguments Arrondi

11.sorted() Trier sans changer la liste d'origine

12 .zip() La fonction zipper

l=[1,2,3,4]
m=map(lambda x:x**2,l)print(list(m))        ----->[1, 4, 9, 16]
crée un itérateur, agrégeant les éléments de chaque itérateur.

Renvoie un itérateur de tuples, où le i-ème tuple contient le

i
ème élément de chaque séquence d'arguments ou itération. L’itérateur s’arrête lorsque l’itérable d’entrée le plus court est épuisé. En prenant un seul argument itérable, il renvoie un itérateur de 1-tuples. Sans arguments, il renvoie un itérateur vide
from functools import reduce

res=0for i in range(100):
    res+=iprint(res)
13.max()

Renvoie l'élément maximum de l'itérable ou le plus grand de deux arguments ou plus.
names=['alex_sb','yuanhao_sb','wupeiqi_sb','egon']print(list(filter(lambda name:name.endswith('_sb'),names)))--->['alex_sb', 'yuanhao_sb', 'wupeiqi_sb']
Si un argument positionnel est fourni, il doit s'agir d'un itérable. Renvoie le plus grand élément de l'itération. Si deux arguments de position ou plus sont fournis, l'argument de position le plus grand est renvoyé.

max() peut spécifier la clé (c'est-à-dire spécifier la partie à comparer)

Le mappage 14.map()

renvoie un itérateur, qui applique le
def func(x):return x**2print(func(2))lambda x:x**2        #上边的函数就可以直接写成这种形式
fonction Chaque élément de
à

iterable

produit le résultat

15.reduce() fusionne

16.filter() filtre et conserve les éléments dont la valeur booléenne est True

Pour une introduction détaillée des fonctions intégrées, veuillez vous référer à ce qui suit :

2. Fonctions anonymes (expressions lambda)

# 1 文件内容如下,标题为:姓名,性别,年纪,薪资#
# egon male 18 3000# alex male 38 30000# wupeiqi female 28 20000# yuanhao female 28 10000#
# 要求:# 从文件中取出每一条记录放入列表中,# 列表的每个元素都是{'name':'egon','sex':'male','age':18,'salary':3000}的形式#
# 2 根据1得到的列表,取出薪资最高的人的信息# 3 根据1到的列表,取出最年轻的人的信息# 4 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式# 5 根据1得到的列表,过滤掉名字以a开头的人的信息# 6 使用递归打印斐波那契数列(前两个数的和得到第三个数)#     0 1 1 2 3 4 7...with open('b.txt',encoding='utf-8')as f:

l=[{'name': line.split()[0], 'sex': line.split()[1], 'age': line.split()[2], 'salary': line.split()[3]} \for line in f]#2.print(max(l,key=lambda i:i['salary']))#3.print(min(l,key=lambda i:i['age']))#4.m=map(lambda x:x['name'].capitalize(),l)print(list(m))#5.print(list(filter(lambda x:not(x['name'].startswith('a')),l)))#6.def f(n):if n==0:return 0elif n==1:return 1else:if n==1000:return f(1000)else:return f(n-2)+f(n-1)for i in range(150):print(f(i))
les fonctions lambda ont leurs propres valeurs de retour Les fonctions anonymes ne peuvent remplacer que certaines fonctions très simples. Principalement utilisées en conjonction avec d'autres fonctions Il existe également une situation où certaines fonctions ne sont définies et utilisées qu'une seule fois et ne sont ensuite plus nécessaires si elles ne sont pas supprimées. occuper de l'espace mémoire et la suppression sera très gênante. Dans ce cas, ils peuvent être utilisés Fonction anonyme 3. Récursion Dans le processus d'appel d'une fonction, la fonction elle-même est utilisée directement ou indirectement L'efficacité récursive est très faible et doit être utilisée lors de la prochaine récursion Conserver l'état actuel Contrairement à d'autres langages, Python n'a pas de récursion de queue, mais Python a des restrictions et n'autorise pas les utilisateurs. récursif à l'infini Caractéristiques de la récursion : 1. Il doit y avoir une fin claire Conditions 2. Chaque fois que vous entrez dans un niveau de récursion plus profond, la taille du problème doit être définie. être réduit par rapport à la dernière récursion 3. L'efficacité de la récursion n'est pas élevée, et trop de niveaux de récursion entraîneront un débordement de pile exemple :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn