Jenis terbina dalam Python dan masalah biasa
Jenis data terbina dalam Python sangat kaya dan boleh dibahagikan secara kasar kepada lima kategori: Tiada, jenis angka, jenis jujukan, jenis pemetaan dan jenis koleksi. Di bawah saya akan memperkenalkan mereka masing-masing dan membuat rumusan untuk rujukan masa hadapan. Jadual berikut menyenaraikan jenis data khusus di bawah setiap kategori. *Nota: Kandungan yang dibincangkan dalam artikel ini adalah berdasarkan python2, dan python3 akan agak berbeza*.
1.Tiada
Tiada mewakili objek nol, yang merupakan objek kosong Jika fungsi tidak mengembalikan nilai, objek nol dikembalikan. Tiada yang tidak mempunyai atribut dan mewakili False dalam ungkapan Boolean.2. Jenis angka
Kecuali jenis Boolean, semua jenis angka ditandatangani. Julat perwakilan integer adalah antara -2147483648 dan 2147483647, dan integer panjang boleh mewakili sebarang panjang, terhad hanya oleh saiz memori yang tersedia.#整数i = 123i = int(123)#长整数l = 123Ll = long(123)
Nombor titik terapung ialah jenis ketepatan berganda (64bit), yang sama dengan dua kali ganda dalam bahasa C Julat nilai ialah -1.7*10(-308) hingga 1.7*10(308).
f = 12.3f = float(12.3)
Nombor kompleks diwakili menggunakan sepasang nombor titik terapung, dibahagikan kepada bahagian nyata dan khayalan, diakses menggunakan nyata dan imag, dan bahagian khayalan diakhiri dengan j atau J.
c = 1.0 + 2.3jc = complex(1.0, 2.3)print c.real,c.imag
Nilai Boolean hanya mempunyai dua nilai: True dan False, yang masing-masing dipetakan kepada integer 1 dan 0.
b = Falseb = bool(True)
2.1. Operasi berangka
Selain jenis Boolean, operasi yang boleh digunakan untuk int, panjang, apungan dan kompleks ialah: penambahan, penolakan, pendaraban, pembahagian, pembahagian integer, eksponen dan baki. Contoh diberikan di bawah.>>> 1 + 2 # 加法3>>> 1 - 2 # 减法-1>>> 2 * 3 # 乘6>>> 2 / 4 # 整数除0>>> 2 / 4.0 # 浮点除0.5>>> 3 // 2.0 # 整除1.0>>> 2 % 3 # 取余2>>> 3 ** 2 # 幂运算 =3^29
Anda juga boleh melakukan operasi bit pada integer Terdapat 6 jenis operasi bit: penolakan (~), anjakan kiri (<<), anjakan kanan (>>), eksklusif ATAU (^) , tekan Bitwise ATAU (|), bitwise DAN (&).
>>> ~1 # 1取反后为-2的补码-2>>> 8 << 1 # 左移16>>> 8 >> 2 # 右移2>>> 1 ^ 3 # 01 和 11 异或得到10,就是22>>> 1 | 3 # 01 和 11 位或得到11,就是33>>> 1 & 3 # 01 和 11 位与得到01,就是11
Jenis Boolean boleh dinilai melalui ungkapan Boolean Terdapat 6 operator perbandingan Boolean: kurang daripada (<), kurang daripada atau sama dengan (<=), lebih besar daripada (>), lebih besar daripada atau sama dengan (. >=), sama dengan (==), tidak sama dengan (!=).
>>> 1 < 2True>>> 1 <= 2True>>> 1 > 2False>>> 1 >= 2False>>> 1 == 2False>>> 1 != 2True
Operasi logik juga boleh dilakukan pada jenis Boolean Terdapat tiga jenis operasi: NOT logik (bukan), NOT-OR logik (atau), dan logik DAN (dan).
>>> not TrueFalse>>> True or FalseTrue>>> True and FalseFalse
2.2 Fungsi jenis berangka yang biasa digunakan
abs(): Mengembalikan nilai mutlak objek tertentu.>>> abs(-2)2
divmod(): Menggabungkan operasi bahagi dan baki, mengembalikan tuple yang mengandungi hasil bagi dan baki.
>>> divmod(10, 3)(3, 1)
pow(): dua parameter, operasi kuasa. Tiga parameter, ambil baki selepas eksponen.
>>> pow(2, 5),pow(2, 5, 10)(32, 2)
bulat(): pembulatan
>>> round(3.4),round(3.6)(3.0, 4.0)
lantai(): bulat ke bawah, siling(): bulatkan ke atas, sqrt(): punca kuasa dua, memerlukan modul matematik.
>>> from math import floor,ceil,sqrt>>> floor(3.6),ceil(3.6),sqrt(9)(3.0, 4.0, 3.0)
conjugate(): Conjugate complex number
>>> c = 2 + 3j>>> c.conjugate()(2-3j)
3. Jenis jujukan
Jujukan mewakili koleksi tertib objek dengan indeks bukan negatif, termasuk rentetan, senarai dan tupel. Rentetan ialah jujukan aksara, senarai dan tupel ialah jujukan objek arbitrari. Rentetan dan tupel tidak boleh diubah, manakala senarai boleh disisipkan, dipadamkan dan diganti. Semua jujukan menyokong lelaran.3.1. Rentetan
Membuat rentetan adalah mudah, tetapi terdapat banyak cara untuk mewakili rentetan.s = 'string's = "string" # 和上面单引号一样s = '''string''' # 三引号之间的内容都被保留,用于多行输入s = r"string" # 原生字符,关掉字符串中的转义。s = u"string" # unicode字符串
Terdapat banyak kaedah untuk rentetan, tetapi ia tidak akan mengubah kandungan rentetan Yang biasa digunakan adalah seperti yang ditunjukkan dalam jadual di bawah.
Sebagai contoh format, {0} mewakili nilai pertama *args, dan {name} mewakili nilai nama dalam kwargs.>>> "Here is {0},I'm {name}.".format("wuyuans.com", name="wuyuan")"Here is wuyuans.com,I'm wuyuan"
3.2. Senarai dan tuple
Kandungan senarai adalah berubah-ubah dan boleh mengandungi sebarang objek, diwakili oleh kurungan segi empat sama.Kandungan tupel adalah tidak berubah dan boleh mengandungi sebarang objek, diwakili oleh kurungan.
l = [1, 2, 3, '4', '5'] # 列表l = list((1, 2, 3, '4', '5'))t = (1, 2, 3, '4', '5') # 元组t = tuple("1234")
Kaedah senarai digunakan terutamanya untuk menukar kandungan di dalam Kaedah yang biasa digunakan senarai disenaraikan di bawah.
Anda juga boleh memadamkan elemen dalam senarai mengikut indeks.>>> l = [1, 2, 3, 4, 5]>>> del l[1]>>> l[1, 3, 4, 5]
3.3. Operasi biasa pada jujukan
Semua jujukan boleh diakses oleh indeks Indeks elemen pertama ialah 0, -1 ialah elemen terakhir, -2 ialah elemen kedua hingga terakhir, dan seterusnya.Operasi menghiris: Tentukan julat indeks dan kembalikan urutan yang sepadan.
Terdapat juga beberapa yang biasa digunakan, seperti yang ditunjukkan di bawah
>>> t = (1, 2, 3, 4, 5)>>> l = [1, 2, 3, 4, 5]>>> t[0]1>>> t[1:4] # 索引1~4(2, 3, 4)>>> t[1:4:2] # 索引1~4,步进为2(2, 4)>>> len(t) # 序列长度5>>> max(t) # 最大值5>>> min(t) # 最小值1>>> sum(t) # 序列求和15
3.4 Operasi menghiris tidak boleh digunakan pada objek xrange. Objek xrange dicipta oleh fungsi xrange([i, ] j [, stride]), dengan i ialah nilai permulaan dan stride ialah nilai step.
>>> x = xrange(1,10,2)>>> for i in x: print i 13579
Kamus (dikt) ialah jenis pemetaan terbina dalam ular sawa Sebarang objek tidak berubah boleh digunakan sebagai nilai utama kamus, seperti rentetan, nombor, tupel, dsb. Kamus diwakili oleh pendakap kerinting, kekunci dan nilai dipisahkan dengan titik bertindih, dan setiap nilai kunci dipisahkan dengan koma. Objek peta tidak tertib.
d = dict((['name', 'wuyuan'], ['age', 23]))d = {'name': 'wuyuan', 'blog': 'wuyuans.com', 'age': 23}d['school'] = 'HDU' # 添加一项come Kaedah dan Operasi Kamus Kaedah Kejutan TRAVERSAL:
#使用键历遍for i in d: print i,d[i]#使用键值历遍for k,v in d.items(): print k,v
5 koleksi boleh diubah, tetapi apa yang dimasukkan ke dalamnya mestilah tidak berubah. Terdapat dua jenis set: set boleh ubah (set) dan set tidak boleh ubah (set beku). . ?
1) Integer - int - nombor
Python mempunyai 5 jenis nombor, yang paling biasa ialah jenis integer. Contohnya: 1234, -1234
2) Jenis Boolean - bool - diwakili oleh simbol ==
Jenis Boolean ialah jenis nombor ular sawa khas Ia hanya mempunyai dua nilai: Benar dan Salah Ia digunakan terutamanya Untuk membandingkan dan menilai, hasilnya dipanggil nilai Boolean. Contohnya: 3==3 memberikan Benar, 3==5 memberikan Salah
3) Rentetan - str - diwakili oleh ' ' atau " "
Contohnya: 'www.phpcnpython.com' atau " hello"
4) Senarai - senarai - diwakili oleh simbol [ ]
Contohnya: [1,2,3,4]
5) Tuple - tuple - diwakili oleh ( ) simbol
Contohnya: (' d',300)
6) Kamus - dict - diwakili oleh { } simbol
Contohnya: {'name':'coco','country':'china'}
Which of Python jenis data asas boleh berubah dan yang mana tidak boleh diubah?
jenis data pembolehubah python: list[], kamus dict{}
jenis data tidak boleh ubah python: int, string str' ', tuple tuple()