Dieser Artikel bietet Ihnen eine detaillierte Zusammenfassung (Codebeispiele) von Python-Datentypen und -Operatoren. Ich hoffe, dass er für Freunde hilfreich ist.
Im vorherigen Artikel ging es um die Eingabe, Ausgabe und Variablen von Python. In diesem Abschnitt werden die Datentypen von Python und die Berechnungsmethoden zwischen Daten untersucht.
Im vorherigen Abschnitt wurden Variablen erläutert. Tatsächlich können diese Datentypen unterschiedliche Datentypen darstellen In Python gibt es hauptsächlich die folgenden Datentypen:
In Computern hat die Anzahl der Ziffern in Ganzzahlen tatsächlich einen Bereich und ist nicht unendlich, wie wir es uns vorstellen , die Anzahl der Ziffern in der Ganzzahl kann auf verschiedenen Maschinen unterschiedlich sein, zum Beispiel:
32-Bit-System: Die Anzahl der Ziffern in der Ganzzahl beträgt 32 Bit und der Adressierungsbereich ist: -231 ~ 231-1, also -2147483648 ~ 2147483647
64-Bit-System: Die Anzahl der Ziffern in der Ganzzahl beträgt 64 Bit und der Adressbereich beträgt : -263 ~ 263-1, also -9223372036854775808 ~ 9223372036854775807
In Python lange Ganzzahl gibt nicht die Anzahl der Ziffern an, das heißt, die lange Ganzzahl kann unendlich groß sein, aber aufgrund der Einschränkungen der Maschine selbst kann sie oft nicht unendlich groß sein und funktioniert nicht innerhalb eines bestimmten Bereichs.
Die beiden oben genannten Datentypen sind Ganzzahlen, aber in Wirklichkeit sind es nicht alle Ganzzahlen, es gibt auch Dezimalzahlen, sodass der Gleitkommatyp entstanden ist. Um es ganz klar auszudrücken: Gleitkomma ist eine Dezimalzahl, und in Computern werden Vielfache von 10 in wissenschaftlicher Schreibweise durch e ersetzt. Beispielsweise wird 5,21x105 als 5,21e9 geschrieben. oder 521e7
Die Kombination der oben genannten drei Datentypen ist eine reelle Zahl. Tatsächlich werden komplexe Zahlen häufig in wissenschaftlichen Berechnungen verwendet. Die allgemeine Form ist: x+yj, wobei x und y beide reelle Zahlen sind, zum Beispiel: 5+6j
Es gibt nur zwei Boolesche Werte: wahr und falsch, dargestellt durch True und False in Python. Achten Sie darauf, den ersten Buchstaben groß zu schreiben. In Python wird die Groß- und Kleinschreibung beachtet. Achten Sie daher unbedingt darauf.
In [77]: 5==6 Out[77]: False In [78]: 3>2 Out[78]: True In [79]: True == True Out[79]: True In [80]: True == False Out[80]: False
Es gibt nur einen Nullwert: Keiner. Dieser Nullwert kann nicht als 0 verstanden werden. weil 0 kein Nullwert ist, genau wie die Temperatur 0 Grad Celsius ist, hat 0 Grad Celsius eine Temperatur ( ̄▽ ̄)"
Die Zeichenfolge kann geschrieben werden Der am häufigsten verwendete Datentyp in Python ist eine Zeichenfolge, solange sie in Anführungszeichen eingeschlossen ist. Python unterscheidet nicht zwischen einfachen Anführungszeichen, doppelten Anführungszeichen und dreifachen Anführungszeichen. Sie sind dasselbe:
rrreeEs wird bestimmt Neulinge geben, die fragen: „Was machst du mit so vielen Motten? Wenn du nicht einfach eine verwenden kannst“, lächle ich einfach still und sage nichts:
In [81]: 'Hello,world!' Out[81]: 'Hello,world!' In [82]: "Hello,world!" Out[82]: 'Hello,world!' In [83]: '''Hello,world''' Out[83]: 'Hello,world'
Es wird ein Fehler gemeldet, weil Python automatisch das nächste Symbol abgleicht und die obige Situation eintritt:
In [84]: 'i'm MinuteSheep' File "<ipython-input-84-a2a810ee38cb>", line 1 'i'm MinuteSheep' ^ SyntaxError: invalid syntax
(Mengxin: Du böser alter Mann ist sehr böse ╰(‵□′)╯)
In ähnlicher Weise werden dreifache Anführungszeichen für mehrere Zeilen verwendet oder wenn die Inhaltssymbole verwirrend sind:
In [85]: "i'm MinuteSheep" Out[85]: "i'm MinuteSheep"
Perfekte Lösung, denken Sie daran, was n ist, es bedeutet Zeilenumbruch, Sie werden auch feststellen, dass i'm zu i'm wird, das ist eigentlich eine Änderung der Bedeutungsanzeige , wir werden später darüber sprechen, nachdem wir entkommen sind
Ein weiterer Neuling benimmt sich wie ein Monster. Haben Sie im letzten Abschnitt nicht gesagt, dass drei Zitate mehrzeilige Kommentare sind? string?
Das ist eine gute Frage! Schauen Sie sich meine Erklärung an, es gibt Bilder und die Wahrheit:
Der Inhalt in drei Zitaten ist ein Kommentar. Der Inhalt in Anführungszeichen wird der Variablen
zugewiesen. Es gibt viele Methoden für Zeichenfolgen. Die Methoden von Zeichenfolgen werden später im Detail erläutert >Liste (Liste)
Neulinge sind möglicherweise nicht mit Listen vertraut. Sie können sie sich vorübergehend als eindimensionale Arrays vorstellen. Listen werden in Python häufig verwendet und sind ein Datentyp, der zusätzlich beherrscht werden muss Schauen wir uns an, wie die Liste aussieht:
In [87]: '''i'm MinuteSheep,i said:"i'm the best man in the world!"''' Out[87]: 'i\'m MinuteSheep,i said:"i\'m the best man in the world!"' In [86]: ''' ...: i'm MinuteSheep, ...: i said: ...: "i'm the best man in the world!" ...: ''' Out[86]: '\ni\'m MinuteSheep,\ni said:\n"i\'m the best man in the world!"\n'
Sie können sehen, dass es sich bei den in eckigen Klammern eingeschlossenen Daten um eine Liste handelt , und es kann andere Datentypen in der Liu-Tabelle geben, wie oben gezeigt. Zu den Listen gehören: Zeichenfolgen und Ganzzahlen. Natürlich können Listen Listen enthalten, die als Verschachtelung von Listen bezeichnet werden:
In [88]: ['MinuteSheep', 'LiMing', '123', 123] Out[88]: ['MinuteSheep', 'LiMing', '123', 123]
Es gibt viele spezifische Dinge zu Listen, die hier nicht einzeln vorgestellt werden. Es wird später einen speziellen Abschnitt geben, in dem die Listenmethode erläutert wird 🎜> Tupel sind möglicherweise noch unbekannter. Um eine Liste zu ändern, wird die Liste in eckige Klammern gesetzt, und die Liste kann manipuliert werden wie Hinzufügen, Löschen, Ändern und Überprüfen), aber das Tupel kann nicht und das Tupel kann nicht geändert werden. Schauen wir uns an, wie das Tupel aussieht:
In [89]: ['MinuteSheep', ['LiMing', 123]] Out[89]: ['MinuteSheep', ['LiMing', 123]]
字典是Python的一种非常强大的数据类型,通过键值对的形式将数据保存下来,提高了数据增、删、改、查的速度,通常作为数据存储的格式,也来看看字典长啥样哇:
In [91]: {'name': 'MinuteSheep', 'gender' : 'male', 'age': 99} Out[91]: {'age': 99, 'gender': 'male', 'name': 'MinuteSheep'}
可以看到,字典是用一对花括号括起来的,并且以 'key' : 'value' 的形式存储,同样,字典里面可以包含其他数据类型,上面的字典包括:字符串、整型。当然,字典也可以嵌套:
In [92]: {'name' : 'MinuteSheep', 'age': {'young' : 15, 'old' : 99}} Out[92]: {'age': {'old': 99, 'young': 15}, 'name': 'MinuteSheep'}
字典也会有专门的一节去讲解它的方法。
说完了Python的数据类型,就该数据运算了,养兵千日,用在一时嘛
加 +
In [93]: 1+2 Out[93]: 3
减 -
In [95]: 1-2O ut[95]: -1
乘 *
In [96]: 1*2 Out[96]: 2
除 /
In [97]: 5/2Out[97]: 2.5
取模 % (就是取余数)
In [98]: 5%2 Out[98]: 1
取整 //
In [99]: 5//2 Out[99]: 2
幂 **
In [100]: 5**2 Out[100]: 25
简单赋值 =
In [102]: a=5 In [103]: b=6 In [104]: c=a+b In [105]: c Out[105]: 11
加法赋值 += (b+=a,相当于b=b+a)
In [106]: a=5 In [107]: b=6 In [108]: b+=a In [109]: b Out[109]: 11
减法赋值 -= (b-=a,相当于b=b-a)
In [111]: a=5 In [112]: b=6 In [113]: b-=a In [114]: b Out[114]: 1
乘法赋值 *= (b*=a,相当于b=b*a)
In [115]: a=5 In [116]: b=6 In [117]: b*=a In [118]: b Out[118]: 30
除法赋值 /= (b/=a,相当于b=b/a)
In [119]: a=5 In [120]: b=6 In [121]: b/=a In [122]: b Out[122]: 1.2
取模赋值 %= (b%=a,相当于b=b%a)
In [123]: a=5 In [124]: b=6 In [125]: b%=a In [126]: b Out[126]: 1
取整赋值 //= (b//=a,相当于b=b//a)
In [127]: a=5 In [128]: b=6 In [129]: b//=a In [130]: b Out[130]: 1
幂赋值 **= (b**=a,相当于b=b**a)
In [131]: a=5 In [132]: b=6 In [133]: b**=a In [134]: b Out[134]: 7776
测试相等 ==
In [136]: 1==1 Out[136]: True In [137]: 1==2 Out[137]: False
不等于 !=
In [144]: 1!=1 Out[144]: False In [145]: 1!=2 Out[145]: True
大于 >
In [146]: 1>1 Out[146]: False In [147]: 2>1 Out[147]: True
大于等于 >=
In [149]: 1>=1 Out[149]: True In [150]: 2>=1 Out[150]: True
小于 <
In [151]: 6<6 Out[151]: False In [152]: 6<7 Out[152]: True
小于等于 <=
In [153]: 6<=6 Out[153]: True In [154]: 6<=7 Out[154]: True
布尔'与' and (有假为假,全真为真)
In [156]: True and False Out[156]: False In [157]: True and True Out[157]: True In [158]: False and False Out[158]: False
布尔'或' or (有真为真,全假为假)
In [159]: True or True Out[159]: True In [160]: True or False Out[160]: True In [161]: False and False Out[161]: False
布尔'非' not (取相反)
In [162]: not True Out[162]: False In [163]: not False Out[163]: True
判断两个标识符是否引用自同一个对象 is
In [167]: a=b=3 In [168]: a is b Out[168]: True In [169]: a=3 In [170]: b=5 In [171]: a is b Out[171]: False
判断两个标识符是否引用自不同对象 is not
In [177]: a=3 In [178]: b=5 In [179]: a is not b Out[179]: True
== 与 is 的区别:
看到这里,很多小伙伴已经晕了,== 和 is 好像一样啊,看起来一样,其实是不一样的,来看下面的这段代码:
In [180]: a = 600 In [181]: b = 600 In [182]: a == b Out[182]: True In [183]: a is b Out[183]: False
其实啊,== 比较的是值,is比较的地址,让我们用 id() 这个函数查看一下变量的地址:
In [184]: id(a) Out[184]: 2155434581648 In [185]: id(b) Out[185]: 2155434581904
可以看到,a和b俩个变量的值虽然相同,但地址却不一样,所以使用 == 和 is 的结果自然就不一样。那我们再来看一段代码:
In [187]: a = 10 In [188]: b = 10 In [189]: a == b Out[189]: True In [190]: a is b Out[190]: True In [191]: id(a) Out[191]: 1529742064 In [192]: id(b) Out[192]: 1529742064
萌新是不是莫不着头脑了,用600的时候 is 输出False,用10的时候怎么地址一样了啊,(快回头,有鬼~)其实啊,Python有一个叫做小整数对象池的东西,只要是[-5, 256]之间的整数都会使用同一份地址,这下萌新明白了哇。
重点说明:位运算针对的是二进制数
按位与 &
In [193]: a = 15 # 15 = 0000 1111 In [194]: b = 30 # 30 = 0001 1110 In [195]: c = a&b # 14 = 0000 1110 In [196]: c Out[196]: 14
按位或 |
In [193]: a = 15 # 15 = 0000 1111 In [194]: b = 30 # 30 = 0001 1110 In [197]: c = a|b # 31 = 0001 1111 In [198]: c Out[198]: 31
按位异或 ^
In [193]: a = 15 # 15 = 0000 1111 In [194]: b = 30 # 30 = 0001 1110 In [200]: c = a^b # 17 = 0001 0001 In [201]: c Out[201]: 17
按位取反 ~
In [210]: a = 60 # 60 = 0011 1100 In [211]: c = ~a # -61 = 1100 0011 In [212]: c Out[212]: -61
左移 <<
In [213]: a = 15 # 15 = 0000 1111 In [214]: c = a<<2 # 60 = 0011 1100 In [215]: c Out[215]: 60#左移后面要加位数
右移 >>
In [213]: a = 15 # 15 = 0000 1111 In [218]: c = a>>2 # 3 = 0000 0011 In [219]: c Out[219]: 3#右移后面要加位数
** # 指数 (最高优先级) ~ + - # 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) * / % // # 乘,除,取模和取整除 + - # 加法减法 >> << # 右移,左移运算符 & # 位 'AND' ^ | # 位运算符 <= < > >= # 比较运算符 <> == != # 等于运算符 = %= /= //= -= += *= **= # 赋值运算符 is is not # 身份运算符 in not in # 成员运算符 not and or # 逻辑运算符
Das obige ist der detaillierte Inhalt vonDetaillierte Zusammenfassung der Python-Datentypen und -Operatoren (Codebeispiele). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!