Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in Python-Typen (Typ)

Detaillierte Einführung in Python-Typen (Typ)

零下一度
零下一度Original
2017-06-27 09:26:414346Durchsuche

Empty (None)

None kann verwendet werden, um anzugeben, dass der Wert einer Variablen fehlt, ähnlich wie Null in anderen Sprachen.

Wie andere Nullwerte: 0, [] und leere Zeichenfolge, geben boolesche Variablen False statt True zurück.

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

Das Ergebnis ist:

None got interpreted as False

Wenn eine Funktion keinen Wert zurückgibt, gibt sie None zurück:

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

Das Ergebnis ist:

Hi
None
Code anzeigen

Wörterbücher

Ein Wörterbuch ist eine Datenstruktur, die Werten Schlüssel zuordnet. Eine Liste kann man sich als Wörterbuch mit einer Reihe ganzzahliger Schlüssel vorstellen.

Wörterbücher können wie Listen mit eckigen Klammern indiziert werden, mit der Ausnahme, dass die eckigen Klammern keine tiefgestellten Zeichen mehr sind, sondern Schlüsselwörter

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

Das Ergebnis ist:

24
42
Code anzeigen

Beim Indizieren eines Schlüsselworts, das kein Wörterbuch speichern kann, tritt ein Fehler auf Beliebige Daten. Ein leeres Wörterbuch ist „{}“.

Die Schlüsselwörter im Wörterbuch können nicht geändert werden. Die Verwendung eines veränderlichen Objekts als Wörterbuchschlüssel führt zu einem TypeError.

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

Das Ergebnis ist:

TypeError: unhashable type: 'list'
Code anzeigen

Wörterbuchfunktionen

Wörterbuchtasten können unterschiedliche Werte zugewiesen werden. Wenn kein Schlüsselwort vorhanden ist, erstellen Sie ein neues Schlüsselwort:

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

Das Ergebnis ist:

{1: 1, 2: 4, 3: 9, 4: 16, 8: 64}
Code anzeigen

Anzeigen, ob ein Schlüsselwort im Wörterbuch mit in vorhanden ist oder nicht, genau wie in der Liste.

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

Das Ergebnis ist:

True
False
True
Code anzeigen

get ist eine sehr einfach zu verwendende Wörterbuchmethode, die genauso funktioniert wie ein Index, aber wenn das Schlüsselwort nicht im Wörterbuch gefunden wird, wird None anstelle eines Fehlers zurückgegeben

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"))

Der zweite Parameter von get bedeutet, dass dieser Wert zurückgegeben wird, wenn das Schlüsselwort nicht gefunden werden kann.

Das Ergebnis ist:

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"))
Code anzeigen

Tupel

Tupel sind Listen sehr ähnlich, können aber nicht geändert werden, indem Sie Klammern verwenden oder nicht...:

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

 

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in Python-Typen (Typ). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn