栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python问题集合

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python问题集合

小白问题集 1,函数参数问题 1,.1 list[]作为函数参数
# Quelle serait la sortie de ce code ?
def f(a,list=[]):
    for i in range(a):
        list.append(i*i)
    print(list) 
 
f(3)
f(2,[1,2,3])
f(2) 

关键:当函数被定义时,list对象只能被创建一次.

分析和结论:f(3)和f(2)传入参数的时候没有带list对象,所以在函数第一次创建时,即f(3),list最后被创建为list=[0,1,4]; 接f(2,[1,2,3])这里是传入了list参数,所以之前的list不会被采用;而到了第三次创建函数对象f(2)的时候,list=[0,1,4]任然存在于内存中,所以第三个函数f(2)输出的是[0,1,4,0,1]

1.2,函数参数问题
>>> def add(a, b=3):
...     return a + b
...
add(1, 2)
add(1)
3
4
1.3, 函数参数
def add(a, b):
...     print("a ", a)
...     print("b ", b)
...     return a + b
...
add(b=4, a=2)
a  2
b  4
6
1.4 *args, **kwargs 2, docstring

lien=http://t.csdn.cn/GiLRe

3, POO 3.1 methode magique ou dunder

Quelles sont les méthodes dunder ou magiques?
Les méthodes ayant deux préfixes soulignement des suffixes sont appelées méthodes dunder ou magiques. Ils sont principalement utilisés pour surcharger les méthodes. Certaines des méthodes que nous pouvons surcharger dans les classes sont __str__, __len__, __setitem__, __getitem__, etc.

3.2
>>> class Car:
...     def __init__(self, color):
...             self.color = color
...
...     def change_color(self, updated_color):
...             """This method changes the color of the car"""
...             self.color = updated_color
...
>>> car = Car('red')
>>> help(car.change_color)
Help on method change_color in module __main__:

change_color(updated_color) method of __main__.Car instance
    This method changes the color of the car

>>>
4, is和==的区别

== : 比较值
is : 比较内存地址

不可变数据类型比较

d=2
c=d
c=2
d==c, id(d),id(c) # (True, 8463240, 8463240)
d is c, id(d),id(c) # (True, 8463240, 8463240)

可变数据类型比较

a=[]
b=[]
a==b,id(a),id(b) # (True, 54770768, 58121256) 每次更新id值都变化

a is b,id(a),id(b) #(False, 54770768, 58121256)
5 une copie superficielle et profonde

Copie superficielle: il crée la copie exacte comme l’original sans changer les références des objets. Désormais, les objets copiés et originaux font référence aux mêmes références d’objet. Ainsi, changer un objet affectera l’autre.
Le copie méthode de la copie module est utilisé pour la copie superficielle.

>>> from copy import copy
>>> a = [1, [2, 3]]
>>> b = copy(a)
>>> a[1].append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 4]]

Copie profonde : il copie récursivement les valeurs de l’objet d’origine dans le nouvel objet. Nous devons utiliser le tranchage or copie profonde fonction du copie module pour la copie profonde.

>>> from copy import deepcopy
>>> a = [1, [2, 3]]
>>> b = deepcopy(a)
>>> a[1].append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3]]
>>> b[1].append(5)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 5]]
6 Que sont les itérateurs ?

lien =

Les itérateurs sont des objets en Python qui mémorisent leur état d’itération. Il initialise les données avec le iter méthode et renvoie l’élément suivant à l’aide de la Suivant méthode.

Nous devons appeler le suivant(itérateur) pour obtenir l’élément suivant de l’itérateur. Et nous pouvons convertir un type de données de séquence en un itérateur en utilisant le iter méthode intégrée.

>>> a = [1, 2]
>>> iterator = iter(a)
>>> next(iterator)
1
>>> next(iterator)
2
>>> next(iterator)
Traceback (most recent call last):
  File "", line 1, in 
StopIteration
>>>
7 Que sont les générateurs ?

Les générateurs sont les fonctions qui renvoient un itérateur comme un objet générateur. Il utilise le rendement pour générer les données.

>>> def numbers(n):
...     for i in range(1, n + 1):
...             yield i
...
>>> _10 = numbers(10)
>>> next(_10)
1
>>> next(_10)
2
>>> next(_10)
3
>>> next(_10)
4
8 sequence

https://docs.python.org/3/library/stdtypes.html#other-built-in-types

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/932546.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号