[Anmerkungen zur Python-Studie] 07 In Python integrierte Datentypen und grundlegende Operationen

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:

  1. Ganze Zahl

    Ganzzahl 234

  2. Gleitkomma

    Dezimalzahl 3.14

  3. Boolescher Wert

    Zeigt an, dass wahr und falsch nur Richtig Falsch enthält

  4. 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

  1. Gleitkommazahlen runden den Dezimalteil direkt ab
  2. Boolescher Wert True wird zu 1, False wird zu 0
  3. 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 ^ eeinbDie 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

  1. Ähnlich wie bei int () können wir auch float () verwenden, um es in eine Gleitkommazahl umzuwandeln
  2. Wenn die Ganzzahl und die Gleitkommazahl gemischt werden, wird das Ausdrucksergebnis automatisch in eine Gleitkommazahl konvertiert
  3. 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:

  1. is vergleicht, ob die ID-Werte von zwei Objekten gleich sind und ob sie auf dieselbe Speicheradresse verweisen
  2. == vergleicht, ob der Inhalt der beiden Objekte gleich ist und ob die Werte gleich sind
  3. Kleine ganzzahlige Objekte [-5,256] werden zur Wiederverwendung im Bereich des globalen Interpreters in den Cache gestellt
  4. 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

  1. 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
  2. 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())
其他方法
  1. isalnum():是否为字母或数字
  2. isalphal():检测字符串是否只由字母组成(含汉字)
  3. isdigit():检测字符串是否只由数字组成
  4. isspace():检测是否为空白符
  5. isupper():是否为大写字母
  6. islower():是否为小写字母

基本运算符

运算符 说明
or and not 布尔或 布尔与 布尔非
is 、 is not 同一性判断,判断是否为同一个对象
< <= > >= != == 比较值是否相当,可以连用
| ^ & 按位或 按位异或 按位与
<< >> 移位
~ 按位翻转
+ - * / // % 加 减 乘 除 整数除 取余
** 幂运算
运算符优先级

由高到低

运算符 描述
** 指数
~ + - 按位翻转 一元加号和减号
* / // % 乘 除 取模 取整除
+ - 加法 减法
>> << 右移 左移运算符
& 位 AND
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= *= **= 赋值运算符
is 、is not 身份运算符
in 、not in 成员运算符
not and or 逻辑运算符

微信搜一搜【梓莘】或扫描下方二维码交个朋友共同进步。文章持续更新中。目前在整理python百战学习笔记,期待后续更多的更新哦。
在这里插入图片描述

Ich denke du magst

Origin blog.csdn.net/weixin_51656605/article/details/112322526
Empfohlen
Rangfolge