Diese Reihe von Notizen zum Erlernen von Python für sich selbst. Wenn es Fehler gibt, korrigieren Sie mich bitte
Einführung in die grundlegendsten integrierten Datentypen
Jedes Objekt hat einen Typ, den grundlegendsten in Python integrierten Datentyp:
-
Ganze Zahl
Ganzzahl 234
-
Gleitkomma
Dezimalzahl 3.14
-
Boolescher Wert
Zeigt an, dass wahr und falsch nur Richtig Falsch enthält
-
Zeichenfolgentyp
Folge von Strings
Digital
Python unterstützt Ganzzahl- und Gleitkommazahlen. Wir können die folgenden Operationen für Zahlen ausführen
Operator | Beschreibung | Beispiel | Struktur |
---|---|---|---|
+ | Zusatz | 3 + 2 | 5 |
- - | Subtraktion | 30-5 | 25 |
* * | Multiplikation | 3 * 6 | 18 |
/. | Gleitkommadivision | 8/2 | 4.0 |
// // | Ganzzahlige Division | 7 // 2 | 3 |
%. | Modul (nimm den Rest) | 7% 4 | 3 |
** **. | Leistung | 2 ** 3 | 8 |
-
Durch Teilen durch 0 wird eine Ausnahme ZeroDivisionError generiert
-
Verwenden Sie die Funktion divmod (), um den Quotienten und den Rest gleichzeitig abzurufen
Ganze Zahl
In Python gibt es neben der Dezimalzahl drei weitere Basen
- 0b oder 0B binär 0 1
- 0o oder 0O acht fahren fort 0 1 2 3 4 5 6 7
- 0x oder 0X hexadezimal 0 1 2 3 4 5 6 7 8 9 abcdef
Diese drei Prozesse können für "Bitoperations" -Operationen sehr praktisch sein
Verwenden Sie int (), um eine Typkonvertierung zu erreichen
- Gleitkommazahlen runden den Dezimalteil direkt ab
- Boolescher Wert True wird zu 1, False wird zu 0
- Wenn die Zeichenfolge dem Ganzzahlformat entspricht (Gleitkommaformat ist nicht akzeptabel), wird sie direkt in die entsprechende Ganzzahl konvertiert, andernfalls wird ein Fehler gemeldet
Automatische Transformation
Bei der gemischten Operation von Ganzzahl und Gleitkommazahl wird die Ausdrucksstruktur automatisch in Gleitkommazahl konvertiert
Wie groß eine ganze Zahl sein kann
In Python2 ist int 32 Bit und kann Ganzzahlen von -2147483648 bis 2147483647 speichern. Der lange Typ ist 64 Bit und kann Werte zwischen -2 62 und 2 63-1 speichern.
In python3 kann int Ganzzahlen beliebiger Größe speichern, long wird abgebrochen, wir können sogar den folgenden Wert speichern: google = 10 ** 100
Googol ist der ursprüngliche Name von Google, was auch die ursprüngliche Bedeutung von Google ist
Die Berechnung sehr großer Zahlen kann in Python3 verwendet werden, ohne einen "Integer-Überlauf" zu verursachen, was auch ein Merkmal von Python ist, das sich besonders für wissenschaftliche Berechnungen eignet
Gleitkomma
Gleitkommazahl, Float genannt
Gleitkommazahlen verwenden a ∗ bea * b ^ eein∗bDie wissenschaftliche Notation in Form von e , beispielsweise 3.14, wird als314 E - 2 314E-2 dargestellt3 1 4 E.- -2 oder314 e - 2 314e-23 1 4 e- -2 Diese Nummern werden auch in wissenschaftlicher Notation gespeichert.
Typumwandlung und Rundung
- Ähnlich wie bei int () können wir auch float () verwenden, um es in eine Gleitkommazahl umzuwandeln
- Wenn die Ganzzahl und die Gleitkommazahl gemischt werden, wird das Ausdrucksergebnis automatisch in eine Gleitkommazahl konvertiert
- round (value) kann den gerundeten Wert zurückgeben (ändert den ursprünglichen Wert nicht, generiert jedoch einen neuen Wert)
Erweiterter Zuweisungsoperator
Operator + - * / // ** und% Zuweisungsoperator können kombiniert werden, um einen erweiterten Zuweisungsoperator zu bilden. A = a + 1 entspricht a + = 1
Darstellung der Zeit
Die Zeit im Computer wird in Millisekunden ab 00:00:00 am 1. Januar 1970 ausgedrückt. Wir nennen diesen Moment im Jahr 1970 auch den Unix-Zeitpunkt
In Python kann die aktuelle Zeit über time.time () abgerufen werden, und der zurückgegebene Wert wird in Sekunden angegeben
Boolescher Wert
In Python2 gibt es keinen booleschen Wert. Verwenden Sie einfach die Zahl, um False darzustellen, und die Zahl 1, um True darzustellen
In Python3 werden True und False als Schlüsselwörter definiert, aber ihre Essenz ist immer noch 1 und 0 und kann sogar zu Zahlen hinzugefügt werden
Vergleichsoperator
Alle Vergleichsoperatoren geben 1 für true und 0 für false zurück, was den speziellen Variablen True bzw. False entspricht
==! => <> = <=
Logische Operatoren
oder und nicht
Gleicher Betreiber
Vergleichen Sie die Speichereinheit zweier Objekte, der tatsächliche Vergleich ist die Adresse des Objekts
Operator | Beschreibung |
---|---|
ist | ist zu bestimmen, ob sich zwei Bezeichner auf dasselbe Objekt beziehen |
ist nicht | Es ist nicht zu beurteilen, ob sich zwei Bezeichner auf unterschiedliche Objekte beziehen |
Der Unterschied zwischen ist und ==:
wird verwendet, um zu bestimmen, ob die beiden variablen Referenzobjekte gleich sind, dh um die Adresse des Objekts zu vergleichen
== wird verwendet, um zu bestimmen, ob der Wert des Referenzvariablen-Referenzobjekts gleich ist, und die __eq__()
Methode des Objekts wird standardmäßig aufgerufen
Ständiges Cache-Problem
Python speichert nur kleinere ganzzahlige Objekte zwischen ([-5,256]). Beachten Sie, dass dies nur in der Befehlszeile ausgeführt wird und sich unterscheidet, wenn Pycharm- oder Sicherungsdateien ausgeführt werden. Dies liegt daran, dass der Interpreter teilweise optimiert ist ([-5, jede positive Ganzzahl]).
um zusammenzufassen:
- is vergleicht, ob die ID-Werte von zwei Objekten gleich sind und ob sie auf dieselbe Speicheradresse verweisen
- == vergleicht, ob der Inhalt der beiden Objekte gleich ist und ob die Werte gleich sind
- Kleine ganzzahlige Objekte [-5,256] werden zur Wiederverwendung im Bereich des globalen Interpreters in den Cache gestellt
- Der is-Operator ist effizienter als ==. Wenn eine Variable mit None verglichen wird, sollte er verwendet werden
String
Grundlegende Eigenschaften von Saiten
Wenn viele Leute Programmieren lernen, machen sie sich immer Sorgen, dass sie nicht gut in Mathe sind, und denken unbewusst, dass Mathe gut zu programmieren ist. Tatsächlich beschäftigen sich die meisten Programmierer mit "Strings" anstelle von "Zahlen". Weil Programmieren zu lösen ist Realistische Probleme, daher übersteigt die Bedeutung des logischen Denkens häufig die mathematischen Fähigkeiten.
Die Essenz der Zeichenfolge ist:Zeichenfolge. Python-Strings sind unveränderlich und wir können keine Änderungen an den ursprünglichen Strings vornehmen. Sie können jedoch einen Teil der Zeichenfolge in die neu erstellte Zeichenfolge kopieren, um den Effekt "sieht geändert aus" zu erzielen.
Python unterstützt keine einzelnen Zeichentypen und einzelne Zeichen werden auch als Zeichenfolge verwendet.
String-Codierung
Python3 unterstützt Unicode direkt und kann Zeichen in jeder geschriebenen Sprache der Welt darstellen. Python3-Zeichen sind standardmäßig 16-Bit-Unicode-Codierung, und ASCII-Code ist eine Teilmenge der Unicode-Codierung.
- Verwenden Sie die integrierte Funktion ord (), um Zeichen in entsprechende Unicide-Codes umzuwandeln.
- Verwenden Sie die integrierte Funktion chr (), um Dezimalzahlen in entsprechende Zeichen umzuwandeln
print(ord('A'))#65
print(ord('桑'))#26705
print(chr(66))#B
print(chr(20001))#両
Anführungszeichen erstellen Zeichenfolge
Wir können eine Zeichenfolge durch einfache oder doppelte Anführungszeichen erstellen, z. B.: A = 'abc' b = "slp"
Der Vorteil der Verwendung von zwei Arten von Anführungszeichen besteht darin, dass wir Zeichenfolgen erstellen können, die Anführungszeichen enthalten, ohne Escapezeichen zu verwenden
Drei aufeinanderfolgende einfache Anführungszeichen oder drei doppelte Anführungszeichen können uns beim Erstellen mehrzeiliger Zeichenfolgen helfen.
Leere Zeichenfolge und len () -Funktion
Python erlaubt das Vorhandensein leerer Zeichenfolgen, enthält keine Zeichen und hat eine Länge von 0.
len () wird verwendet, um zu berechnen, wie viele Zeichen die Zeichenfolge enthält.
Escape-Zeichen
Wir können "\+特殊字符"
einige Effekte erzielen, die sich nur schwer in Zeichen ausdrücken lassen, z. B.: Zeilenvorschub. Übliche Escape-Zeichen sind:
Escape-Zeichen | Beschreibung |
---|---|
\(在行尾时) |
Leitungsfortsetzung |
\\ |
Backslash |
\' |
Apostroph |
\" |
Anführungszeichen |
\ b | Rücktaste |
\ n | Wickeln |
\ t | Horizontale Registerkarte |
\ r | Wagenrücklauf |
Saitenspleißen
- Mit + können Sie mehrere Zeichenfolgen verketten
- Wenn beide Seiten von + Zeichenfolgen sind, verketten Sie
- Wenn beide Seiten von + Zahlen sind, addieren Sie
- Wenn die beiden Seiten von + unterschiedlich sind, wird eine Ausnahme ausgelöst
- Sie können mehrere Literalzeichenfolgen direkt zusammenfügen, um das Spleißen zu erreichen
String-Kopie
Verwenden Sie *, um eine Zeichenfolgenkopie zu erhalten
a = 'Slp'*3
a #SlpSlpSlp
Drucken ohne Zeilenumbruch
Als wir früher print aufgerufen haben, wurde automatisch ein Zeilenumbruchzeichen gedruckt. Manchmal möchten wir Zeilenumbrüche nicht automatisch umbrechen oder hinzufügen. Wir können jeden Inhalt am Ende hinzufügen, indem wir end = "any string" selbst angeben.
Lesen Sie die Zeichenfolge aus dem Steuerelement
Wir können input () verwenden, um Tastatureingaben von der Konsole zu lesen.
str () implementiert einen digitalen Transformationsstring
str () kann uns helfen, andere Datentypen in Zeichenfolgen zu konvertieren
Wenn wir die Funktion print () aufrufen, ruft der Interpreter automatisch str () auf, um das Zeichenfolgenobjekt in eine Zeichenfolge umzuwandeln.
Verwenden Sie [], um Zeichen zu extrahieren
Die Essenz einer Zeichenfolge ist eine Folge von Zeichen. Wir können [] nach der Zeichenfolge hinzufügen und in [] angeben, wodurch ein einzelnes Zeichen an dieser Position extrahiert werden kann.
- Vorwärtssuche: Das erste Zeichen links, der Versatz ist 0, der zweite Versatz ist 1 usw. bis len (str) -1
- Umgekehrte Suche: Das erste Zeichen ganz rechts, der Versatz ist -1, der zweite Versatz der Ableitung ist -2 usw. bis -len (str)
replace () implementiert das Ersetzen von Zeichenfolgen
Die Zeichenfolge ist unveränderlich. Wir können das Zeichen an der angegebenen Position der Zeichenfolge über [] abrufen. Wir können die Zeichenfolge jedoch nicht ändern. Wenn wir versuchen, ein Zeichen zu ändern, tritt ein Fehler aufTypeError :'str' object does not support item assignment
Die Zeichenfolge kann nicht geändert werden, muss jedoch manchmal ersetzt werden. Derzeit können wir sie nur durch Erstellen einer neuen Zeichenfolge erreichen.
a = '123'
a = a.replace('1','4')
Während des gesamten Prozesses wird tatsächlich ein neues Zeichenfolgenobjekt erstellt und auf a verwiesen, anstatt die vorherige Zeichenfolge zu ändern.
String-Slice-Operation
Die Slice-Operation ermöglicht das schnelle Extrahieren von Teilzeichenfolgen. Das Standardformat lautet: [Startversatz Start: Ende Versatz Ende: Schrittgröße]
Der typische Vorgang (wenn die drei Größen positiv sind) ist wie folgt:
Bedienung und Anleitung | Beispiel | Ergebnis |
---|---|---|
[:] Extrahiere den gesamten String | abcdef [:] | abcdef |
[stsrt:] Vom Startindex bis zum Ende | abcdef [2:] | cdef |
[: end] Von Anfang bis Ende-1 | abcdef [: 2] | ab |
[Start: Ende] Von Anfang bis Ende-1 | abcdef [2: 4] | CD |
[start:end:step] Von Anfang bis Ende 1 ist die Schrittlänge Schritt |
abcdef [1: 5: 2] | bd |
Andere Operationen (drei Zahlen sind negativ):
Beispiel | Beschreibung | Ergebnis |
---|---|---|
"Abcdefghijk" [- 3:] | Countdown 3 | ijk |
"Abcdefghijkstuvwxyz" [- 8: -3] | Der 8. von unten bis zum 3. von unten (der Header enthält nicht den Schwanz) | stuvw |
"Abcdefghijkstuvwxyz" [:: - 1] | Die Schrittgröße ist negativ und die Extraktion wird von rechts nach links umgekehrt | zyxwvutsrqponmlkjihgfedcba |
Während des Slicing-Vorgangs liegen der Startversatz und der Endversatz nicht im Bereich von [0, Zeichenfolgenlänge 1], und es wird kein Fehler gemeldet. Startversatz kleiner als 0 wird als 0 behandelt, Endversatz größer als Länge -1 wird als -1 behandelt
split () separation und join () merge
split () kann eine Zeichenfolge basierend auf dem angegebenen Trennzeichen in mehrere Teilzeichenfolgen (in einer Liste gespeichert) aufteilen. Wenn kein Trennzeichen angegeben ist, werden standardmäßig Leerzeichen (Zeilenumbruch / Leerzeichen / Tabulator) verwendet
Die Rolle von join () ist das Gegenteil von der von split (), mit der eine Reihe von Teilzeichenfolgen verbunden werden.
print(a.split())
b=['s','l','p']
print("".join(b))
Wichtige Punkte beim Spleißen von Saiten:
Wenn Sie das Zeichenfolgenzeichen + verwenden, werden neue Zeichenfolgenobjekte erstellt. Es wird daher nicht empfohlen, + zum Verbinden von Zeichenfolgen zu verwenden. Es wird empfohlen, die Verknüpfungsfunktion zu verwenden, da die Verknüpfungsfunktion die Länge aller Zeichenfolgen berechnet, bevor die Zeichenfolgen verkettet werden, und sie dann einzeln kopiert, wobei nur einmal ein neues Objekt erstellt wird.
String-Resident-Mechanismus und Beurteilung der String-Identität
String-Residency: Speichern Sie nur eine Kopie derselben unveränderlichen Zeichenfolge. Im String-Residency-Pool werden unterschiedliche Werte gespeichert. Python unterstützt den String-Residency-Mechanismus. Für Strings, die den Bezeichnerregeln entsprechen (Unterstrich Buchstaben Nummer), wird die Persistenz der Strings aktiviert
Zusammenfassung der gängigen String-Methoden
Gängige Suchmethoden
Methoden und Anwendungsbeispiele | Beschreibung | Ergebnis |
---|---|---|
len (a) | String-Länge | |
a.startwith ('ss') | Beginnen Sie mit der angegebenen Zeichenfolge | |
a.endswith ('tt') | Beenden Sie mit der angegebenen Zeichenfolge | |
a.find ('s') | Das erste Vorkommen der angegebenen Zeichenfolge | |
a.rfind ('t') | Die Position des letzten Auftretens der angegebenen Zeichenfolge | |
a.count ('a') | Wie oft wird die angegebene Zeichenfolge angezeigt? | |
a.isalnum() | 所有字符全是字母或数字 |
去除首尾信息
我们可以使用strip()去除字符串收尾指定信息,通过lstrip()去除字符串左边指定信息,rstrip()去除字符串右边指定信息
大小写转换
示例 | 说明 | 结果 |
---|---|---|
a.capitalize() | 产生新的字符串,首字母大写 | |
a.title() | 产生新的字符串,每个单词都首字母大写 | |
a.upper() | 产生新的字符串,所有字符全部转成大写 | |
a.lower() | 产生新的字符串,所有字符全转成小写 | |
a.swapcase() | 产生新的,所有字母大小写转换 |
格式排版
center() ljust() rjust()这3个函数用于对字符串实现排版
字符串格式化
-
format()基本用法:基本语法是通过{}和:来代替以前的%,format函数可以接受不限个数参数,位置可以不按顺序。
a="名字是:{0},年龄是:{1}" print(a.format('slp','18')) b="名字是:{0},年龄是{1},{0}是个努力的小姑娘" print(b.format('slp',18)) c="名字是{name},年龄是{age}" print(c.format(age=18,name='slp'))
我们可以通过{索引}/{参数名},直接映射参数值,实现对字符串的格式化。
-
填充与对齐
填充常跟对齐一起使用
^ < > 分别是居中,左对齐 右对齐后面带宽度
:后面带填充的字符,只能是一个字符不指定则默认用空格填充。
-
数字格式化
浮点数通过f,整数通过d进行需要的格式化
格式 描述 输出 {:.2f} 保留小数点后两位 {:+.2f} 带符号保留小数点后两位 {:.0f} 不带小数 {:0>2d} 数字补0,填充左侧,宽度为2 {:x<4d} 数字补x,填充右边,宽度为4 {:,} 以逗号分隔的数字格式 {:.2%} 百分比格式 {:.2e} 指数记法 {:10d} 右对齐,(默认,宽度为10) {:<10d} 左对齐,(宽度为10) {:^10d} 中间对齐(宽度为10)
可变字符串
在python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,只能创建新的字符串对象,但是,经常我们确实需要原地修改字符串,可以使用ioStringIO对象或array模块
import io
s = 'hello slp'
sio = io.StringIO(s)
print(sio)
print(sio.getvalue())
print(sio.seek(7))
print(sio.write('g'))
print(sio.getvalue())
其他方法
- isalnum():是否为字母或数字
- isalphal():检测字符串是否只由字母组成(含汉字)
- isdigit():检测字符串是否只由数字组成
- isspace():检测是否为空白符
- isupper():是否为大写字母
- islower():是否为小写字母
基本运算符
运算符 | 说明 |
---|---|
or and not | 布尔或 布尔与 布尔非 |
is 、 is not | 同一性判断,判断是否为同一个对象 |
< <= > >= != == | 比较值是否相当,可以连用 |
| ^ & | 按位或 按位异或 按位与 |
<< >> | 移位 |
~ | 按位翻转 |
+ - * / // % | 加 减 乘 除 整数除 取余 |
** | 幂运算 |
运算符优先级
由高到低
运算符 | 描述 |
---|---|
** | 指数 |
~ + - | 按位翻转 一元加号和减号 |
* / // % | 乘 除 取模 取整除 |
+ - | 加法 减法 |
>> << | 右移 左移运算符 |
& | 位 AND |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= *= **= | 赋值运算符 |
is 、is not | 身份运算符 |
in 、not in | 成员运算符 |
not and or | 逻辑运算符 |
微信搜一搜【梓莘】或扫描下方二维码交个朋友共同进步。文章持续更新中。目前在整理python百战学习笔记,期待后续更多的更新哦。