通过循环缩进的变量类型 Python
type of variable through indentation of loops Python
这是一个片段,在代码中通过自上而下的方式,我打印了名为"podium"的变量的类型)
这是代码:
def frequence(entranche):
podium = []
print("premier podium", type(podium))
for item in entranche:
print ("deuxieme podium", type(podium))
scat = len(entranche)
for indice in range (len(entranche)):
if entranche[indice] == item:
scat -= 1
frequence = len(entranche) - scat
podium = podium.append(frequence)
print("troisieme podium", type(podium))
plus_haute_frequence = max(podium)
return(plus_haute_frequence)
print(frequence("Je suis né dans le béton Coincé entre deux maisons".split()))
在代码之后,
这是输出:
premier podium <class 'list'>
deuxieme podium <class 'list'>
troisieme podium <class 'NoneType'>
我不明白为什么 podium 变量会丢失他的类型。
有人说我:
"Now, i think your problem is this: troisieme podium - right? It's because of podium = podium.append(frequence). Just append the new value to your list, re-assigning the variable istn't correct here. Just do podium.append(frequence)".
没错。但我不明白为什么。可能我们认为这是一个新变量。如果我需要制作,我该怎么办?某些方法在编写 variable = variable.method() 之前不会更改命名变量 {在 ruby 语言中有带有“!”的方法并且没有“!”}
因为append
总是returnsNone。您可以在终端中自行轻松验证这一点。
没有不修改的追加:你能做的最好的事情就是复制列表并追加到副本。
这是因为 append()
方法就地修改了列表。它不是 return 一个新列表,而是修改作为参数给出的列表。它的 return 值是 None,这就是为什么你的 'troisieme podium' 类型是 NoneType.
>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> print(a.append(5))
None
>>> a
[1, 2, 3, 4, 5]
所以这一行:
podium = podium.append(frequence)
应该是:
podium.append(frequence)
这是一个片段,在代码中通过自上而下的方式,我打印了名为"podium"的变量的类型) 这是代码:
def frequence(entranche):
podium = []
print("premier podium", type(podium))
for item in entranche:
print ("deuxieme podium", type(podium))
scat = len(entranche)
for indice in range (len(entranche)):
if entranche[indice] == item:
scat -= 1
frequence = len(entranche) - scat
podium = podium.append(frequence)
print("troisieme podium", type(podium))
plus_haute_frequence = max(podium)
return(plus_haute_frequence)
print(frequence("Je suis né dans le béton Coincé entre deux maisons".split()))
在代码之后, 这是输出:
premier podium <class 'list'>
deuxieme podium <class 'list'>
troisieme podium <class 'NoneType'>
我不明白为什么 podium 变量会丢失他的类型。
有人说我:
"Now, i think your problem is this: troisieme podium - right? It's because of podium = podium.append(frequence). Just append the new value to your list, re-assigning the variable istn't correct here. Just do podium.append(frequence)".
没错。但我不明白为什么。可能我们认为这是一个新变量。如果我需要制作,我该怎么办?某些方法在编写 variable = variable.method() 之前不会更改命名变量 {在 ruby 语言中有带有“!”的方法并且没有“!”}
因为append
总是returnsNone。您可以在终端中自行轻松验证这一点。
没有不修改的追加:你能做的最好的事情就是复制列表并追加到副本。
这是因为 append()
方法就地修改了列表。它不是 return 一个新列表,而是修改作为参数给出的列表。它的 return 值是 None,这就是为什么你的 'troisieme podium' 类型是 NoneType.
>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> print(a.append(5))
None
>>> a
[1, 2, 3, 4, 5]
所以这一行:
podium = podium.append(frequence)
应该是:
podium.append(frequence)