Tutorial pengen...login
Tutorial pengenalan asas Python
pengarang:php.cn  masa kemas kini:2022-04-18 16:14:50

Rentetan Python


String ialah jenis data yang paling biasa digunakan dalam Python. Kita boleh menggunakan petikan (' atau ") untuk mencipta rentetan.

Membuat rentetan adalah semudah memberikan nilai kepada pembolehubah. Contohnya:

var1 = 'Hello World !'
var2 = "Python php"

Python mengakses nilai dalam rentetan

Python tidak menyokong jenis aksara tunggal, aksara tunggal juga tersedia dalam Python Digunakan sebagai rentetan.

Python mengakses subrentetan Anda boleh menggunakan kurungan segi empat sama untuk memintas rentetan, seperti yang ditunjukkan dalam contoh berikut:

#!/usr/bin/python.

var1 = 'Hello World!'
var2 = "Python php"

print "var1[0]: ", var1[0]
print "var2[1: 5]: ", var2[1:5]

Hasil pelaksanaan contoh di atas:

var1[0]: H
var2[1: 5]: ytho

Kemas kini rentetan Python

Anda boleh mengubah suai rentetan sedia ada dan menetapkannya kepada pembolehubah lain, seperti dalam contoh berikut:

#!/usr/bin/python
# -*- pengekodan: UTF-8 -*-

var1 = 'Hello World!'

cetak "Kemas kini rentetan : - " , var1[:6] + 'php!'

Hasil pelaksanaan contoh di atas

Kemas kini rentetan:- Hello php!

Karakter melarikan diri Python

Apabila aksara khas perlu digunakan dalam aksara, Python menggunakan garis miring ke belakang () untuk melarikan aksara, seperti yang ditunjukkan dalam jadual berikut:

转义字符描述
(在行尾时)续行符
\反斜杠符号
'单引号
"双引号
a响铃
b退格(Backspace)
e转义
00
n换行
v纵向制表符
t横向制表符
r回车
f换页
oyy八进制数,yy代表的字符,例如:o12代表换行
xyy十六进制数,yy代表的字符,例如:x0a代表换行
other其它的字符以普通格式输出
.

Pengendali rentetan Python

Nilai pembolehubah contoh a dalam jadual berikut ialah rentetan "Hello", dan nilai pembolehubah b ialah "Python":

操作符描述实例
+字符串连接a + b 输出结果: HelloPython
*重复输出字符串a*2 输出结果:HelloHello
[]通过索引获取字符串中字符a[1] 输出结果 e
[ : ]截取字符串中的一部分a[1:4] 输出结果 ell
in成员运算符 - 如果字符串中包含给定的字符返回 TrueH in a 输出结果 1
not in成员运算符 - 如果字符串中不包含给定的字符返回 TrueM not in a 输出结果 1
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。print r'n' 输出 n 和 print R'n' 输出 n
%格式字符串请看下一章节

Contohnya adalah seperti berikut:

#!/usr/bin/python
# -*- pengekodan: UTF-8 -*-

a = " Hello"
b = "Python"

cetak "a + b Hasil keluaran:", a + b
cetak "a * 2 Hasil keluaran:", a * 2
cetak " a[1 ] Hasil keluaran: ", a[1]
cetak "a[1:4] hasil keluaran: ", a[1:4]

jika( "H" dalam a):
cetak "H dalam pembolehubah a"
lain :
cetak "H bukan dalam pembolehubah a"

jika( "M" bukan dalam a) :
cetak "M bukan dalam pembolehubah a "
lain :
cetak "M dalam pembolehubah a"

cetak r'n'
cetak R'n'

Hasil pelaksanaan program di atas ialah :

a + b Hasil output: HelloPython
a * 2 Hasil output: HelloHello
a[1] Hasil output: e
a [1:4] Hasil keluaran: ell
H dalam pembolehubah a
M bukan dalam pembolehubah a
n
n

Pemformatan rentetan Python

Sokongan Python Output rentetan terformat. Walaupun ini boleh membawa kepada ungkapan yang sangat kompleks, penggunaan paling asas adalah untuk memasukkan nilai ke dalam rentetan dengan aksara pemformatan rentetan %s.

Dalam Python, pemformatan rentetan menggunakan sintaks yang sama seperti fungsi sprintf dalam C.

Contoh berikut:

#!/usr/bin/python

cetak "Nama saya %s dan berat ialah %d kg!" ' Zara', 21)

Contoh hasil keluaran di atas:

Nama saya Zara dan berat 21 kg!

ular sawa simbol Pemformatan rentetan:


Simbol Deskripsi
%c Format aksara dan kod ASCIInya
%s Format rentetan
%d Integer diformat
%u Format integer tak bertanda
%o Format Nombor perlapanan tidak bertanda
%x Nombor heksadesimal tidak bertanda diformat
%X Format nombor heksadesimal tidak bertanda (huruf besar)
%f Format nombor titik terapung, anda boleh menentukan ketepatan selepas titik perpuluhan
%e Format titik terapung nombor dalam tatatanda saintifik
%E Sama seperti %e, format nombor titik terapung dalam tatatanda saintifik
%g Singkatan untuk %f dan %e
%G Singkatan untuk %f dan %E
%p Gunakan sepuluh Alamat pembolehubah format heksadesimal

Format perintah bantu operator:

SimbolFungsi
符号功能
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )
<sp>在正数前面显示空格
#在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0显示的数字前面填充'0'而不是默认的空格
%'%%'输出一个单一的'%'
(var)映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
<🎜><🎜>*<🎜><🎜>Tentukan ketepatan lebar atau titik perpuluhan<🎜><🎜>< 🎜><🎜> -<🎜><🎜> digunakan untuk penjajaran kiri<🎜><🎜><🎜><🎜>+<🎜><🎜>Paparkan tanda tambah (+) di hadapan nombor positif<🎜><🎜 ><🎜 ><🎜><sp><🎜><🎜>Paparkan ruang sebelum nombor positif<🎜><🎜><🎜><🎜>#<🎜><🎜>Paparkan sifar sebelum nombor perlapanan (' 0'), paparan '0x' atau '0X' di hadapan perenambelasan (bergantung kepada sama ada 'x' atau 'X' digunakan)<🎜><🎜><🎜><🎜>0<🎜><🎜 >Nombor yang dipaparkan diawali dengan '0' bukannya ruang lalai <🎜><🎜><🎜><🎜>%<🎜><🎜> '%%' mengeluarkan satu '%' <🎜><🎜> <🎜><🎜>( var)<🎜><🎜>Pembolehubah peta (parameter kamus)<🎜><🎜><🎜><🎜>m.n.<🎜><🎜>m ialah jumlah lebar minimum paparan, n ialah Bilangan digit selepas titik perpuluhan (jika ada)<🎜><🎜><🎜><🎜>

Petik tiga Python

Petik tiga dalam python boleh menyalin rentetan kompleks:

Petikan tiga python membenarkan rentetan menjangkau berbilang baris, aksara Rentetan boleh mengandungi baris baharu, tab dan watak istimewa lain.

Sintaks petikan tiga kali ganda ialah sepasang petikan tunggal atau petikan berganda berturut-turut (biasanya digunakan secara berpasangan).

>>> hai = '''hai
di sana'''
>>> hi # repr()
'di sana'
>>> cetak hi # str()
hai
di sana

Petikan tiga menandakan pengaturcara bebas daripada rawa-rawa tanda petikan dan rentetan khas, dan mengekalkan konsistensi daripada mula hingga akhir Format rentetan kecil ialah format yang dipanggil WYSIWYG (What You See Is What You Get).

Kes penggunaan biasa ialah apabila anda memerlukan sekeping HTML atau SQL, kemudian menggunakan gabungan rentetan, pelarian rentetan khas akan menjadi sangat menyusahkan.

errHTML = '''
<HTML><HEAD><TITLE>
Rakan CGI Demo</TITLE></HEAD>
<BODY ;<H3>RALAT</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=butang NILAI=Kembali
ONC .history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CIPTA pengguna JADUAL (
log masuk VARCHAR(8),
uid INTEGER,
prid INTEGER)
''')

Rentetan Unicode

Mentakrifkan rentetan Unicode dalam Python adalah semudah mentakrifkan rentetan biasa:

>>> u'Hello World !'
u'Hello World ! 🎜>
Huruf kecil "u" ​​sebelum tanda petikan menunjukkan bahawa rentetan Unicode dicipta di sini. Jika anda ingin memasukkan aksara khas, anda boleh menggunakan pengekodan Unicode-Escape Python. Seperti yang ditunjukkan dalam contoh berikut:

>>> u'Hellou0020World !'
u'Hello World !'

Pengecam u0020 yang diganti bermaksud memasukkan aksara Unicode (aksara ruang) dengan nilai pengekodan 0x0020 pada kedudukan yang diberikan.


Fungsi rentetan terbina dalam Python

Kaedah rentetan ditambahkan secara perlahan daripada python1.6 kepada 2.0 - ia juga telah ditambahkan pada Jython.

Kaedah ini melaksanakan kebanyakan kaedah modul rentetan Jadual berikut menyenaraikan kaedah yang kini disokong oleh rentetan terbina dalam Semua kaedah termasuk sokongan untuk Unicode, malah ada yang direka khas untuk Unicode.

Jika rentetan mempunyai sekurang-kurangnya Jika satu aksara dan semua aksara ialah huruf atau nombor, mengembalikan Benar, jika tidak ia mengembalikan SalahMengembalikan Benar jika rentetan mempunyai sekurang-kurangnya satu aksara dan semua aksara ialah huruf, Jika tidak mengembalikan SalahMengembalikan True jika rentetan hanya mengandungi digit perpuluhan, jika tidak mengembalikan False. string.isdigit()string.partition(str)<🎜). > serupa dengan fungsi find(), tetapi ia mencari dari sebelah kanan.rentetan rindex(. str, beg=0,end=len(string)) serupa dengan index(), tetapi bermula dari kanan.string.rjust(width)Mengembalikan rentetan baharu dengan rentetan asal dijajar kanan dan berlapik dengan ruang kepada lebar panjangstring.rpartition(str)Serupa dengan fungsi partition(), tetapi bermula dari kanan.string.rstrip()
KaedahPenerangan

string.capitalize()

Huruf besar huruf pertama rentetan

string.center(lebar)

Mengembalikan rentetan baharu dengan rentetan asal berpusat dan berlapik dengan ruang hingga lebar panjang

string.count (str, beg=0, end=len(string))

Mengembalikan bilangan kali str muncul dalam rentetan Jika beg atau akhir dinyatakan, nombor yang dinyatakan ialah dikembalikan. Bilangan kejadian str dalam julat

string.decode(encoding='UTF-8', errors='strict')

Nyahkod rentetan dalam format pengekodan yang ditentukan oleh pengekodan Jika ralat berlaku, pengecualian ValueError akan dilaporkan secara lalai, melainkan ralat menyatakan 'abaikan' atau 'gantikan'

string.encode(encoding='UTF-8', errors='strict')

Encode rentetan dalam format pengekodan yang ditentukan oleh pengekodan. Jika ralat berlaku, pengecualian ValueError akan dilaporkan secara lalai Melainkan ralat menyatakan 'abaikan' atau 'gantikan'

string.endswith. (obj, beg=0, end=len(string))

Semak sama ada rentetan berakhir dengan obj Jika beg atau akhir ditentukan, semak sama ada julat yang ditentukan berakhir dengan obj. Jika ya, kembalikan Benar, jika tidak, kembalikan Salah.

string.expandtabs(tabsize=8)

Tukar simbol tab dalam rentetan rentetan kepada ruang, tab Bilangan lalai ruang untuk simbol ialah 8.

string.find(str, beg=0, end=len(string))

Semak sama ada str disertakan dalam rentetan Jika beg dan akhir nyatakan julat, semak sama ada ia termasuk dalam julat yang ditentukan Jika ya, kembalikan nilai indeks permulaan, jika tidak, kembalikan -1

string.index(str, beg=0, end=len(string))

Sama seperti kaedah find(), sahaja Walau bagaimanapun, jika str tiada dalam rentetan, pengecualian akan dilaporkan.

string.isalpha()

string.isdecimal()

Mengembalikan True jika rentetan hanya mengandungi nombor, jika tidak mengembalikan False.

string.islower()

Mengembalikan Benar jika rentetan mengandungi sekurang-kurangnya satu aksara sensitif huruf besar dan semua aksara ini (sensitif huruf besar) adalah huruf kecil, jika tidak Salah

string.isnumeric()

Jika rentetan mengandungi aksara angka sahaja, kembalikan Benar, jika tidak kembalikan False

rentetan .isspace()

Jika rentetan mengandungi hanya ruang, ia akan mengembalikan Benar, jika tidak ia akan mengembalikan Salah.

string.istitle()

Mengembalikan True jika rentetan bertajuk (lihat title()), jika tidak mengembalikan False

string.isupper()

Jika rentetan mengandungi sekurang-kurangnya satu aksara sensitif huruf besar dan semua aksara ini (sensitif huruf besar) Jika semuanya dalam huruf besar, True dikembalikan, jika tidak False dikembalikan

Gunakan rentetan sebagai pemisah untuk menggabungkan semua elemen (perwakilan rentetan) dalam seq menjadi rentetan baharu

string.ljust( width)

Mengembalikan rentetan baharu dengan rentetan asal dijajar ke kiri dan berlapik dengan ruang ke lebar panjang

string.lower ()

Tukar semua aksara besar dalam rentetan kepada huruf kecil.

string.lstrip()

Potong ruang di sebelah kiri rentetan

string.maketrans(intab, outtab])

Kaedah maketrans() digunakan untuk mencipta jadual penukaran untuk pemetaan aksara Untuk kaedah panggilan paling mudah yang menerima dua parameter, parameter pertama ialah rentetan yang mewakili aksara yang perlu ditukar dan parameter kedua. Juga sasaran penukaran perwakilan rentetan.

maks(str)

Mengembalikan huruf terbesar dalam rentetan

str

.

min(str)

Mengembalikan huruf terkecil dalam rentetan str

.

Sedikit seperti find() dan split ( ), bermula dari kedudukan pertama di mana str muncul, bahagikan rentetan rentetan kepada tuple 3 elemen (string_pre_str, str, string_post_str Jika rentetan tidak mengandungi str, string_pre_str == rentetan.

string.replace(str1, str2, num=string.count(str1))

Gantikan str1 dalam rentetan dengan str2. Jika num dinyatakan, penggantian tidak akan melebihi num kali

string.rfind(str, beg=0,end=len (string) )

Alih keluar ruang di hujung rentetan rentetan.

string.split(str="", num= string .count(str))

Gunakan str sebagai pemisah untuk menghiris rentetan Jika num mempunyai nilai yang ditentukan, hanya num subrentetan akan dipisahkan

<🎜. >
string.splitlines(num=string.count('n'))

Asingkan mengikut baris, kembalikan senarai yang mengandungi setiap baris sebagai elemen, Jika num dinyatakan, hanya num rows akan dihiris.

string.startswith(obj, beg=0,end=len(string) )

Semak sama ada rentetan bermula dengan obj, jika ya, kembalikan Benar, jika tidak kembalikan Salah. Jika minta dan akhir nyatakan nilai, semak dalam julat yang ditentukan.

string.strip([obj])

Laksanakan lstrip() dan rstrip() pada rentetan

string.swapcase()

Kes terbalik dalam rentetan

string.title()

Kembali ke rentetan "Penebutan", iaitu , semua perkataan bermula dengan huruf besar, dan huruf yang tinggal adalah huruf kecil (lihat istitle())

string.translate(str , del="" )

Tukar aksara rentetan mengikut jadual yang diberikan oleh str (mengandungi 256 aksara),

letakkan aksara untuk ditapis keluar Dalam del parameter

string.upper()

tukar huruf kecil dalam rentetan kepada huruf besar

string.zfill(width)

Mengembalikan rentetan dengan lebar panjang Rentetan asal dijajarkan ke kanan dan berlapik di hadapan

string.isdecimal()

Kaedah isdecimal() menyemak sama ada rentetan mengandungi aksara perpuluhan sahaja. Kaedah ini hanya wujud untuk objek unicode.