Maison >développement back-end >Tutoriel Python >Introduction détaillée aux types python (type)

Introduction détaillée aux types python (type)

零下一度
零下一度original
2017-06-27 09:26:414462parcourir

Vide (Aucun)

Aucun peut être utilisé pour indiquer que la valeur d'une certaine variable est manquante, similaire à null dans d'autres langues.

Comme les autres valeurs nulles : 0, [] et chaîne vide, les variables booléennes donnent Faux au lieu de Vrai.

if None:print("None got interpreted as True")else:print("None got interpreted as False")

Le résultat est :

None got interpreted as False

Lorsqu'une fonction ne renvoie aucune valeur, elle renvoie Aucune :

def some_func():print("Hi")
var=some_func()print(var)

Le résultat est :

Hi
None
Afficher le code

Dictionnaires

Un dictionnaire est une structure de données qui attribue des clés à des valeurs. Une liste peut être considérée comme un dictionnaire avec une certaine plage de clés entières.

Les dictionnaires peuvent être indexés comme des listes, à l'aide de crochets, sauf que les crochets ne sont plus des indices, mais des mots-clés

ages={"Dave":24,"Mary":42,"John":58}print(ages["Dave"])print(ages["Mary"])

Le résultat est :

24
42
Afficher le code

Une erreur se produira lors de l'indexation d'un mot-clé qu'un dictionnaire ne peut pas stocker. n'importe quelle donnée. Tapez la valeur, un dictionnaire vide est "{}".

Les mots-clés du dictionnaire ne peuvent pas être modifiés. L’utilisation d’un objet mutable comme clé de dictionnaire produira une TypeError.

bad_dict={
    [1,2,3]:"one two three"}

Le résultat est :

TypeError: unhashable type: 'list'
Voir le code

Fonctions du dictionnaire

Les touches du dictionnaire peuvent se voir attribuer différentes valeurs. S'il n'y a pas de mot-clé, créez un nouveau mot-clé :

squares={1:1,2:4,3:"error",4:16}
squares[8]=64squares[3]=9print(squares)

Le résultat est :

{1: 1, 2: 4, 3: 9, 4: 16, 8: 64}
Afficher le code

Voir si un mot-clé existe dans le dictionnaire avec in ou non comme dans la liste.

nums={1:"one",2:"two",3:"three"}print(1 in nums)print("three"in nums)print(4 not in nums)

Le résultat est :

True
False
True
Voir le code

get est une méthode de dictionnaire très simple à utiliser qui fonctionne de la même manière qu'un index, mais si le mot-clé n'est pas trouvé dans le dictionnaire, il renverra None au lieu d'une erreur

paris={1:"apple","orange":[2,3,4],
    True:False,
    None:"True"}print(paris.get("orange"))print(paris.get(7))print(paris.get(12345,"not in dictionary"))

Le deuxième paramètre de get signifie que si le mot-clé est introuvable, cette valeur sera renvoyée.

Le résultat est :

paris={1:"apple","orange":[2,3,4],
    True:False,
    None:"True"}print(paris.get("orange"))print(paris.get(7))print(paris.get(12345,"not in the dicrionary"))
Afficher le code

Tuples

Les tuples sont très similaires aux listes, mais ils ne peuvent pas être modifiés. Vous pouvez créer un nouveau tuple en utilisant ou non des parenthèses... :

words=("spam","eggs","sausages",)
words="spam","eggs","sausages",

空元组用()新建。

元组的运行速度比列表快

其他使用方法和列表类似。

列表切片(List Slices)

列表切片是一种检索列表值的高级方法。基本的切片方法是用两个被冒号分开的整数来索引列表。这样可以从旧列表返回一个新列表。

squares=[0,1,4,9,16,25,36,49,64,81]print(squares[2:6])print(squares[3:8])print(squares[0:1])

结果是:

[4, 9, 16, 25]
[9, 16, 25, 36, 49]
[0]
View Code

跟range的参数相似,第一的下标的值会包括,但不包括第二个下标的值。

如果第一个下标省略,默认从头开始,

如果第二个下标省略,默认到结尾结束。

切片同样可以用于元组。

切片也有第三个参数,决定了步长。第一二个分别决定了开头与结尾。

squares=[0,1,4,9,16,25,36,49,64,81]
print(squares[:6:2])
print(squares[3::3])
print(squares[::3])

结果是:

[0, 4, 16]
[9, 36, 81]
[0, 9, 36, 81]

参数是复数的话就倒着走。-1是倒数第一,-2是倒数第二,第三个参数为负就会倒着切,这时候第一个参数和第二个参数就要倒着看了,也就是第二个参数变成了开始,第一个变成了结尾(因此-1会使整个列表倒序)

squares=[0,1,4,9,16,25,36,49,64,81]print(squares[:-1])print(squares[::-3])print(squares[-3::2])

结果是:

[0, 1, 4, 9, 16, 25, 36, 49, 64]
[81, 36, 9, 0]
[49, 81]
View Code

列表解析(List Comprehensions)

这是一种快速创建遵循某些规则的列表的方法:

cubes=[i**3 for i in range(5)]print(cubes)

结果是:

[0, 1, 8, 27, 64]
View Code

也可以包含if statement 加强限定条件。

evens=[i**2 for i in range(10) if i**2 % 2==0]print(evens)

结果是:

[0, 4, 16, 36, 64]
View Code
evens=[i**2 for i in range(10) if i**2 % 2==0]print(evens)

结果是:

[0, 4, 16, 36, 64]
View Code

range的范围过大会超出内存的容量引发MemoryError

String Formatting

为了使string和non-string结合,可以把non-string转化为string然后再连起来。

string formatting提供了一种方式,把non-string嵌入到string里,用string的format method来替换string里的参数。

nums=[4,5,6]
msg="Numbers:{0} {1} {2}".format(nums[0],nums[1],nums[2])print(msg)

format里的参数和{}里的参数是对应的。{}的参数是format()里参数的下标

参数被命名这种情况也是可以的:

a="{x},{y}".format(x=5,y=12)print(a)

结果是:

5,12
View Code

Useful Functions

Python 内置了许多有用的函数

join ,用一个string充当分隔符把一个由string组成的列表连起来。

print(",".join(["spam","eggs","ham"]))

结果是:

spam,eggs,ham
View Code

replace,用一个string 取代另一个。

print("Hello ME".replace("ME","world"))

结果是:

Hello world
View Code

startwith和endwith,判断是否是由……开头或结束:

print("This is a sentence.".startswith("This"))print("This is a sentence.".endswith("sentence."))

结果是:

True
True
View Code

lower和upper可以改变string的大小写

print("This is A sentence.".upper())print("THIS IS a SENTENCE..".lower())

结果是:

THIS IS A SENTENCE.
this is a sentence.
View Code

split的作用于join 相反,他可以按某个string为分隔符将一串string分开并成为列表的形式。

print("apple,eggs,banana".split(","))

结果是:

['apple', 'eggs', 'banana']

 有关数学的一些函数有:最大值max,最小值min,绝对值abs,约等数round(第二个参数可以决定保留几位小数),对列表里的数求和用sum等:

print(min(1,2,3,4,5,6,7))print(max(1,2,3,4,5,6,7))print(abs(-98))print(round(78.632453434,4))print(sum([2.12121,23232323]))

结果是:

1
7
98
78.6325
23232325.12121
View Code

all和any可以把列表当成参数,然后返回True或 False,

nums=[55,44,33,22,11]if all([i <56 for i in nums]):print("All smaller than 56.")

 

nums=[55,44,33,22,11]if any([i <22 for i in nums]):print("at least one is smaller than 22.")

all和any的区别是,all需要所有的值都满足,any只需要有一个满足就行了。

枚举(enumerate),字面意思,把列表中的值按顺序一个一个列出来。

nums=[55,44,33,22,11]for v in enumerate(nums):print(v)

结果是:

(0, 55)
(1, 44)
(2, 33)
(3, 22)
(4, 11)
View Code

 

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