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:
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:
var1 = 'Hello World!'
var2 = "Python php"
print "var1[0]: ", var1[0]
print "var2[1: 5]: ", var2[1:5]
Hasil pelaksanaan contoh di atas:
var2[1: 5]: ytho
Kemas kini rentetan Python
Anda boleh mengubah suai rentetan sedia ada dan menetapkannya kepada pembolehubah lain, seperti dalam contoh berikut:
# -*- pengekodan: UTF-8 -*-
var1 = 'Hello World!'
cetak "Kemas kini rentetan : - " , var1[:6] + 'php!'
Hasil pelaksanaan contoh di atas
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 | 成员运算符 - 如果字符串中包含给定的字符返回 True | H in a 输出结果 1 |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | M not in a 输出结果 1 |
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 | print r'n' 输出 n 和 print R'n' 输出 n |
% | 格式字符串 | 请看下一章节 |
Contohnya adalah seperti berikut:
# -*- 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 * 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:
cetak "Nama saya %s dan berat ialah %d kg!" ' Zara', 21)
Contoh hasil keluaran di atas:
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:
Simbol | Fungsi |
---|
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
<sp> | 在正数前面显示空格 |
# | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') |
0 | 显示的数字前面填充'0'而不是默认的空格 |
% | '%%'输出一个单一的'%' |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
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).
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.
<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 ! 🎜>
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()Kaedah | Penerangan | |
---|---|---|
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. |