Rumah > pembangunan bahagian belakang > Tutorial Python > Ringkasan rentetan Python, disyorkan untuk dikumpulkan!

Ringkasan rentetan Python, disyorkan untuk dikumpulkan!

WBOY
Lepaskan: 2023-04-12 19:10:11
ke hadapan
1155 orang telah melayarinya

Ringkasan rentetan Python, disyorkan untuk dikumpulkan!

Apakah itu rentetan Python

Rentetan ialah objek yang mengandungi urutan aksara. Aksara ialah rentetan panjang 1. Dalam Python, aksara individu juga merupakan rentetan. Tetapi yang lebih menarik ialah tiada jenis data aksara dalam bahasa pengaturcaraan Python, tetapi terdapat jenis data aksara dalam bahasa pengaturcaraan lain seperti C, Kotlin dan Java

Kita boleh menggunakan petikan tunggal, berganda. petikan, petikan Tiga atau fungsi str() untuk mengisytiharkan rentetan Python. Coretan kod berikut menunjukkan cara mengisytiharkan rentetan dalam Python:

# A single quote string
single_quote = 'a'# This is an example of a character in other programming languages. It is a string in Python
# Another single quote string
another_single_quote = 'Programming teaches you patience.'
# A double quote string
double_quote = "aa"
# Another double-quote string
another_double_quote = "It is impossible until it is done!"
# A triple quote string
triple_quote = '''aaa'''
# Also a triple quote string
another_triple_quote = """Welcome to the Python programming language. Ready, 1, 2, 3, Go!"""
# Using the str() function
string_function = str(123.45)# str() converts float data type to string data type
# Another str() function
another_string_function = str(True)# str() converts a boolean data type to string data type
# An empty string
empty_string = ''
# Also an empty string
second_empty_string = ""
# We are not done yet
third_empty_string = """"""# This is also an empty string: ''''''
Salin selepas log masuk

Cara lain untuk mendapatkan rentetan dalam Python ialah menggunakan fungsi input(). Fungsi input() membolehkan kami memasukkan nilai yang dimasukkan ke dalam program menggunakan papan kekunci. Nilai yang disisipkan dibaca sebagai rentetan, tetapi kita boleh menukarnya kepada jenis data lain:

# Inputs into a Python program
input_float = input()# Type in: 3.142
input_boolean = input() # Type in: True
# Convert inputs into other data types
convert_float = float(input_float)# converts the string data type to a float
convert_boolean = bool(input_boolean) # converts the string data type to a bool
Salin selepas log masuk

Kami menggunakan fungsi type() untuk menentukan jenis data objek dalam Python, yang mengembalikan kelas daripada objek itu. Apabila objek adalah rentetan, ia mengembalikan kelas str. Begitu juga, apabila objek ialah kamus, integer, float, tuple atau boolean, ia mengembalikan kelas dict, int, float, tuple, bool. Sekarang mari kita gunakan fungsi type() untuk menentukan jenis data pembolehubah yang diisytiharkan dalam coretan kod sebelumnya:

# Data types/ classes with type()
print(type(single_quote))
print(type(another_triple_quote))
print(type(empty_string))
print(type(input_float))
print(type(input_boolean))
print(type(convert_float))
print(type(convert_boolean))
Salin selepas log masuk

ASCII Table and Python String Characters ) direka untuk membantu kami memetakan aksara atau teks kepada nombor kerana set nombor lebih mudah disimpan dalam ingatan komputer berbanding teks. ASCII mengekod 128 aksara terutamanya dalam bahasa Inggeris dan digunakan untuk memproses maklumat dalam komputer dan pengaturcaraan. Aksara Inggeris yang dikodkan ASCII termasuk huruf kecil (a-z), huruf besar (A-Z), nombor (0-9), dan tanda baca serta simbol lain Fungsi

ord() menukar aksara Python dengan panjang 1 (. satu aksara) Rentetan ditukar kepada perwakilan perpuluhan pada jadual ASCII, dan fungsi chr() menukarkan perwakilan perpuluhan kembali kepada rentetan. Contohnya:

Output:
import string
# Convert uppercase characters to their ASCII decimal numbers
ascii_upper_case = string.ascii_uppercase# Output: ABCDEFGHIJKLMNOPQRSTUVWXYZ
for one_letter in ascii_upper_case[:5]:# Loop through ABCDE
print(ord(one_letter))
Salin selepas log masuk

65
66
67
68
69
Salin selepas log masuk
Output:
# Convert digit characters to their ASCII decimal numbers
ascii_digits = string.digits# Output: 0123456789
for one_digit in ascii_digits[:5]:# Loop through 01234
print(ord(one_digit))
Salin selepas log masuk

Dalam coretan kod di atas, kami mengulangi rentetan ABCDE dan 01234 , dan menukar setiap aksara kepada perwakilan perpuluhan mereka dalam jadual ASCII. Kita juga boleh menggunakan fungsi chr() untuk melaksanakan operasi terbalik, menukar nombor perpuluhan pada jadual ASCII kepada aksara rentetan Python mereka. Contohnya:
48
49
50
51
52
Salin selepas log masuk

Output:
decimal_rep_ascii = [37, 44, 63, 82, 100]
for one_decimal in decimal_rep_ascii:
print(chr(one_decimal))
Salin selepas log masuk

Dalam jadual ASCII, aksara rentetan dalam output atur cara di atas dipetakan kepada nombor perpuluhan masing-masing
%
,
?
R
d
Salin selepas log masuk

Harta Rentetan

Indeks sifar: Elemen pertama dalam rentetan mempunyai indeks sifar, manakala elemen terakhir mempunyai indeks len(rentetan) - 1. Contohnya:

Output:
immutable_string = "Accountability"
print(len(immutable_string))
print(immutable_string.index('A'))
print(immutable_string.index('y'))
Salin selepas log masuk

Ketidakbolehubah: Ini bermakna kita tidak boleh mengemas kini aksara dalam rentetan. Contohnya kita tidak boleh mengalih keluar elemen daripada rentetan atau cuba memperuntukkan elemen baharu pada mana-mana kedudukan indeksnya. Jika kita cuba mengemas kini rentetan, ia akan membuang TypeError:
14
0
13
Salin selepas log masuk

Output:
immutable_string = "Accountability"
# Assign a new element at index 0
immutable_string[0] = 'B'
Salin selepas log masuk

Tetapi kita boleh menetapkan semula rentetan kepada pembolehubah immutable_string, walaupun kita harus sedar tentang mereka Bukan rentetan yang sama kerana mereka tidak menunjuk ke objek yang sama dalam ingatan. Python tidak mengemas kini objek rentetan lama; ia mencipta yang baharu, seperti yang dapat kita lihat melalui id:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
~AppDataLocalTemp/ipykernel_11336/2351953155.py in
2
3 # Assign a new element at index 0
----> 4 immutable_string[0] = 'B'
TypeError: 'str' object does not support item assignment
Salin selepas log masuk

Output:
immutable_string = "Accountability"
print(id(immutable_string))
immutable_string = "Bccountability"
print(id(immutable_string)
test_immutable = immutable_string
print(id(test_immutable))
Salin selepas log masuk

dua id di atas Ia juga berbeza pada komputer yang sama, yang bermaksud kedua-dua pembolehubah immutable_string menghala ke alamat yang berbeza dalam ingatan. Kami menetapkan pembolehubah immutable_string terakhir kepada pembolehubah test_immutable. Anda boleh melihat bahawa pembolehubah test_immutable dan pembolehubah immutable_string terakhir menghala ke alamat yang sama
2693751670576
2693751671024
2693751671024
Salin selepas log masuk

Concatenation: Gabungkan dua atau lebih rentetan bersama-sama untuk mendapatkan rentetan baharu dengan tanda +. Contohnya:

Output:
first_string = "Zhou"
second_string = "luobo"
third_string = "Learn Python"
fourth_string = first_string + second_string
print(fourth_string)
fifth_string = fourth_string + " " + third_string
print(fifth_string)
Salin selepas log masuk

Ulang: Rentetan boleh diulang menggunakan simbol *. Contohnya:
Zhouluobo
Zhouluobo Learn Python
Salin selepas log masuk

Output:
print("Ha" * 3)
Salin selepas log masuk

Pengindeksan dan penghirisan: Kami telah menetapkan bahawa rentetan diindeks daripada sifar dan kami boleh mengakses mana-mana elemen dalam rentetan menggunakan elemen nilai indeksnya . Kita juga boleh mendapatkan subset rentetan dengan menghiris antara dua nilai indeks. Contohnya:
HaHaHa
Salin selepas log masuk

Output:
main_string = "I learned English and Python with ZHouluobo. You can do it too!"
# Index 0
print(main_string[0])
# Index 1
print(main_string[1])
# Check if Index 1 is whitespace
print(main_string[1].isspace())
# Slicing 1
print(main_string[0:11])
# Slicing 2:
print(main_string[-18:])
# Slicing and concatenation
print(main_string[0:11] + ". " + main_string[-18:])
Salin selepas log masuk

Kaedah rentetan
I
True
I learned English
You can do it too!
I learned English. You can do it too!
Salin selepas log masuk

str.split(sep=None, maxsplit=-1): Kaedah pemisahan rentetan Mengandungi dua atribut: sep dan maxsplit. Apabila kaedah ini dipanggil dengan nilai lalainya, ia memisahkan rentetan di mana sahaja terdapat ruang. Kaedah ini mengembalikan senarai rentetan:

Output:
string = "Apple, Banana, Orange, Blueberry"
print(string.split())
Salin selepas log masuk

Kita dapat melihat bahawa rentetan itu tidak terbelah dengan baik kerana rentetan terbelah mengandungi ,. Kita boleh menggunakan sep=',' untuk membelah di mana terdapat:
['Apple,', 'Banana,', 'Orange,', 'Blueberry']
Salin selepas log masuk

Output:
print(string.split(sep=','))
Salin selepas log masuk

Ini lebih baik daripada pemisahan sebelumnya, tetapi kita boleh melakukannya dalam beberapa Ruang dilihat sebelum membelah tali. Anda boleh mengalih keluarnya menggunakan (sep=', '):
['Apple', ' Banana', ' Orange', ' Blueberry']
Salin selepas log masuk

Output:
# Notice the whitespace after the comma
print(string.split(sep=', '))
Salin selepas log masuk

Sekarang rentetan dibelah dengan baik. Kadangkala kita tidak mahu membahagikan bilangan maksimum kali, kita boleh menggunakan atribut maxsplit untuk menentukan bilangan kali kita berniat untuk memisahkan:
['Apple', 'Banana', 'Orange', 'Blueberry']
Salin selepas log masuk

Output:
print(string.split(sep=', ', maxsplit=1))
print(string.split(sep=', ', maxsplit=2))
Salin selepas log masuk
['Apple', 'Banana, Orange, Blueberry']
['Apple', 'Banana', 'Orange, Blueberry']
Salin selepas log masuk

str.splitlines(keepends=False): 有时我们想处理一个在边界处具有不同换行符('n'、nn'、'r'、'rn')的语料库。我们要拆分成句子,而不是单个单词。可以使用 splitline 方法来执行此操作。当 keepends=True 时,文本中包含换行符;否则它们被排除在外

import nltk# You may have to `pip install nltk` to use this library.
macbeth = nltk.corpus.gutenberg.raw('shakespeare-macbeth.txt')
print(macbeth.splitlines(keepends=True)[:5]
Salin selepas log masuk

Output:

['[The Tragedie of Macbeth by William Shakespeare 1603]n', 'n', 'n', 'Actus Primus. Scoena Prima.n', 'n']
Salin selepas log masuk

str.strip([chars]): 我们使用 strip 方法从字符串的两侧删除尾随空格或字符。例如:

string = "Apple Apple Apple no apple in the box apple apple "
stripped_string = string.strip()
print(stripped_string)
left_stripped_string = (
stripped_string
.lstrip('Apple')
.lstrip()
.lstrip('Apple')
.lstrip()
.lstrip('Apple')
.lstrip()
)
print(left_stripped_string)
capitalized_string = left_stripped_string.capitalize()
print(capitalized_string)
right_stripped_string = (
capitalized_string
.rstrip('apple')
.rstrip()
.rstrip('apple')
.rstrip()
)
print(right_stripped_string)
Salin selepas log masuk

Output:

Apple Apple Apple no apple in the box apple apple
no apple in the box apple apple
No apple in the box apple apple
No apple in the box
Salin selepas log masuk

在上面的代码片段中,我们使用了 lstrip 和 rstrip 方法,它们分别从字符串的左侧和右侧删除尾随空格或字符。我们还使用了 capitalize 方法,它将字符串转换为句子大小写str.zfill(width): zfill 方法用 0 前缀填充字符串以获得指定的宽度。例如:

example = "0.8"# len(example) is 3
example_zfill = example.zfill(5) # len(example_zfill) is 5
print(example_zfill)
Salin selepas log masuk

Output:

000.8
Salin selepas log masuk

str.isalpha(): 如果字符串中的所有字符都是字母,该方法返回True;否则返回 False:

# Alphabet string
alphabet_one = "Learning"
print(alphabet_one.isalpha())
# Contains whitspace
alphabet_two = "Learning Python"
print(alphabet_two.isalpha())
# Contains comma symbols
alphabet_three = "Learning,"
print(alphabet_three.isalpha())
Salin selepas log masuk

Output:

True
False
False
Salin selepas log masuk

如果字符串字符是字母数字,str.isalnum() 返回 True;如果字符串字符是十进制,str.isdecimal() 返回 True;如果字符串字符是数字,str.isdigit() 返回 True;如果字符串字符是数字,则 str.isnumeric() 返回 True

如果字符串中的所有字符都是小写,str.islower() 返回 True;如果字符串中的所有字符都是大写,str.isupper() 返回 True;如果每个单词的首字母大写,str.istitle() 返回 True:

# islower() example
string_one = "Artificial Neural Network"
print(string_one.islower())
string_two = string_one.lower()# converts string to lowercase
print(string_two.islower())
# isupper() example
string_three = string_one.upper() # converts string to uppercase
print(string_three.isupper())
# istitle() example
print(string_one.istitle())
Salin selepas log masuk

Output:

False
True
True
True
Salin selepas log masuk

str.endswith(suffix) 返回 True 是以指定后缀结尾的字符串。如果字符串以指定的前缀开头,str.startswith(prefix) 返回 True:

sentences = ['Time to master data science', 'I love statistical computing', 'Eat, sleep, code']
# endswith() example
for one_sentence in sentences:
print(one_sentence.endswith(('science', 'computing', 'Code')))
Salin selepas log masuk

Output:

True
True
False
Salin selepas log masuk
# startswith() example
for one_sentence in sentences:
print(one_sentence.startswith(('Time', 'I ', 'Ea')))
Salin selepas log masuk

Output:

True
True
True
Salin selepas log masuk

str.find(substring) 如果子字符串存在于字符串中,则返回最低索引;否则它返回 -1。str.rfind(substring) 返回最高索引。如果找到,str.index(substring) 和 str.rindex(substring) 也分别返回子字符串的最低和最高索引。如果字符串中不存在子字符串,则会引发 ValueError

string = "programming"
# find() and rfind() examples
print(string.find('m'))
print(string.find('pro'))
print(string.rfind('m'))
print(string.rfind('game'))
# index() and rindex() examples
print(string.index('m'))
print(string.index('pro'))
print(string.rindex('m'))
print(string.rindex('game'))
Salin selepas log masuk

Output:

6
0
7
-1
6
0
7
---------------------------------------------------------------------------
ValueErrorTraceback (most recent call last)
~AppDataLocalTemp/ipykernel_11336/3954098241.py in
 11 print(string.index('pro'))# Output: 0
 12 print(string.rindex('m'))# Output: 7
---> 13 print(string.rindex('game'))# Output: ValueError: substring not found
ValueError: substring not found
Salin selepas log masuk

str.maketrans(dict_map) 从字典映射创建一个翻译表,str.translate(maketrans) 用它们的新值替换翻译中的元素。例如:

example = "abcde"
mapped = {'a':'1', 'b':'2', 'c':'3', 'd':'4', 'e':'5'}
print(example.translate(example.maketrans(mapped)))
Salin selepas log masuk

Output:

12345
Salin selepas log masuk

字符串操作

循环遍历一个字符串

字符串是可迭代的,因此它们支持使用 for 循环和枚举的循环操作:

# For-loop example
word = "bank"
for letter in word:
print(letter)
Salin selepas log masuk

Output:

b
a
n
k
Salin selepas log masuk
# Enumerate example
for idx, value in enumerate(word):
print(idx, value)
Salin selepas log masuk

Output:

0 b
1 a
2 n
3 k
Salin selepas log masuk

字符串和关系运算符

当使用关系运算符(>、<、== 等)比较两个字符串时,两个字符串的元素按其 ASCII 十进制数字逐个索引进行比较。例如:

print('a' > 'b')
print('abc' > 'b')
Salin selepas log masuk

Output:

False
False
Salin selepas log masuk

在这两种情况下,输出都是 False。关系运算符首先比较两个字符串的索引 0 上元素的 ASCII 十进制数。由于 b 大于 a,因此返回 False;在这种情况下,其他元素的 ASCII 十进制数字和字符串的长度无关紧要

当字符串长度相同时,它比较从索引 0 开始的每个元素的 ASCII 十进制数,直到找到具有不同 ASCII 十进制数的元素。例如:

print('abd' > 'abc')
Salin selepas log masuk

Output:

True
Salin selepas log masuk

检查字符串的成员资格

in 运算符用于检查子字符串是否是字符串的成员:

print('data' in 'dataquest')
print('gram' in 'programming')
Salin selepas log masuk

Output:

True
True
Salin selepas log masuk

检查字符串成员资格、替换子字符串或匹配模式的另一种方法是使用正则表达式

import re
substring = 'gram'
string = 'programming'
replacement = '1234'
# Check membership
print(re.search(substring, string))
# Replace string
print(re.sub(substring, replacement, string))
Salin selepas log masuk

Output:

pro1234ming
Salin selepas log masuk

字符串格式

f-string 和 str.format() 方法用于格式化字符串。两者都使用大括号 {} 占位符。例如:

monday, tuesday, wednesday = "Monday", "Tuesday", "Wednesday"
format_string_one = "{} {} {}".format(monday, tuesday, wednesday)
print(format_string_one)
format_string_two = "{2} {1} {0}".format(monday, tuesday, wednesday)
print(format_string_two)
format_string_three = "{one} {two} {three}".format(one=tuesday, two=wednesday, three=monday)
print(format_string_three)
format_string_four = f"{monday} {tuesday} {wednesday}"
print(format_string_four)
Salin selepas log masuk

Output:

Monday Tuesday Wednesday
Wednesday Tuesday Monday
Tuesday Wednesday Monday
Monday Tuesday Wednesday
Salin selepas log masuk

f-strings 更具可读性,并且它们比 str.format() 方法实现得更快。因此,f-string 是字符串格式化的首选方法

处理引号和撇号

撇号 (') 在 Python 中表示一个字符串。为了让 Python 知道我们不是在处理字符串,我们必须使用 Python 转义字符 ()。因此撇号在 Python 中表示为 '。与处理撇号不同,Python 中有很多处理引号的方法。它们包括以下内容:

# 1. Represent string with single quote (`""`) and quoted statement with double quote (`""`)
quotes_one ='"Friends don't let friends use minibatches larger than 32" - Yann LeCun'
print(quotes_one)
# 2. Represent string with double quote `("")` and quoted statement with escape and double quote `("statement")`
quotes_two =""Friends don't let friends use minibatches larger than 32" - Yann LeCun"
print(quotes_two)
# 3. Represent string with triple quote `("""""")` and quoted statment with double quote ("")
quote_three = """"Friends don't let friends use minibatches larger than 32" - Yann LeCun"""
print(quote_three)
Salin selepas log masuk

Output:

"Friends don't let friends use minibatches larger than 32" - Yann LeCun
"Friends don't let friends use minibatches larger than 32" - Yann LeCun
"Friends don't let friends use minibatches larger than 32" - Yann LeCun
Salin selepas log masuk

写在最后

字符串作为编程语言当中最为常见的数据类型,熟练而灵活的掌握其各种属性和方法,实在是太重要了,小伙伴们千万要实时温习,处处留心哦!

好了,这就是今天分享的内容,如果喜欢就点个赞吧~

Atas ialah kandungan terperinci Ringkasan rentetan Python, disyorkan untuk dikumpulkan!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan