Hướng dẫn what are the types of string in python? - các loại chuỗi trong python là gì?


Dây

Chuỗi trong Python được bao quanh bởi các dấu ngoặc kép đơn hoặc dấu ngoặc kép.

'Xin chào' giống như "Xin chào". is the same as "hello".

Bạn có thể hiển thị một chuỗi chữ với hàm

#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])
5:


Gán chuỗi cho một biến

Việc gán một chuỗi cho một biến được thực hiện với tên biến theo sau là một dấu bằng và chuỗi:


Chuỗi đa dòng

Bạn có thể gán một chuỗi đa dòng cho một biến bằng cách sử dụng ba trích dẫn:

Thí dụ

Bạn có thể sử dụng ba trích dẫn kép:

A = "" "Lorem ipsum dor SIT AMET, lãnh đạo adipiscing elit, sed do eiusmod tempor inciduntut labore et dolore magna aliqua." "" Print (a)
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print(a)

Hãy tự mình thử »

Hoặc ba trích dẫn đơn:

Thí dụ

Bạn có thể sử dụng ba trích dẫn kép:
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''
print(a)

Hãy tự mình thử »

Hoặc ba trích dẫn đơn: in the result, the line breaks are inserted at the same position as in the code.



A = '' 'Lorem ipsum dor SIT AMET, lãnh sự quảng cáo elit, sed do eiusmod tempor inciduntut labore et dolore magna aliqua.' '' in (a)

LƯU Ý: Trong kết quả, các lần phá vỡ dòng được chèn ở cùng một vị trí như trong mã.

Chuỗi là mảng

Giống như nhiều ngôn ngữ lập trình phổ biến khác, các chuỗi trong Python là các mảng byte đại diện cho các ký tự Unicode.

Thí dụ

Bạn có thể sử dụng ba trích dẫn kép:

A = "" "Lorem ipsum dor SIT AMET, lãnh đạo adipiscing elit, sed do eiusmod tempor inciduntut labore et dolore magna aliqua." "" Print (a)
print(a[1])

Hãy tự mình thử »


Hoặc ba trích dẫn đơn:

A = '' 'Lorem ipsum dor SIT AMET, lãnh sự quảng cáo elit, sed do eiusmod tempor inciduntut labore et dolore magna aliqua.' '' in (a)

Thí dụ

Bạn có thể sử dụng ba trích dẫn kép:

A = "" "Lorem ipsum dor SIT AMET, lãnh đạo adipiscing elit, sed do eiusmod tempor inciduntut labore et dolore magna aliqua." "" Print (a)
  print(x)

Hãy tự mình thử »

Hoặc ba trích dẫn đơn:


A = '' 'Lorem ipsum dor SIT AMET, lãnh sự quảng cáo elit, sed do eiusmod tempor inciduntut labore et dolore magna aliqua.' '' in (a)

LƯU Ý: Trong kết quả, các lần phá vỡ dòng được chèn ở cùng một vị trí như trong mã.

Thí dụ

Bạn có thể sử dụng ba trích dẫn kép:

A = "" "Lorem ipsum dor SIT AMET, lãnh đạo adipiscing elit, sed do eiusmod tempor inciduntut labore et dolore magna aliqua." "" Print (a)
print(len(a))

Hãy tự mình thử »


Hoặc ba trích dẫn đơn:

A = '' 'Lorem ipsum dor SIT AMET, lãnh sự quảng cáo elit, sed do eiusmod tempor inciduntut labore et dolore magna aliqua.' '' in (a)

Thí dụ

Bạn có thể sử dụng ba trích dẫn kép:

A = "" "Lorem ipsum dor SIT AMET, lãnh đạo adipiscing elit, sed do eiusmod tempor inciduntut labore et dolore magna aliqua." "" Print (a)
print("free" in txt)

Hãy tự mình thử »

Hoặc ba trích dẫn đơn:

Thí dụ

Bạn có thể sử dụng ba trích dẫn kép:

A = "" "Lorem ipsum dor SIT AMET, lãnh đạo adipiscing elit, sed do eiusmod tempor inciduntut labore et dolore magna aliqua." "" Print (a)
if "free" in txt:
  print("Yes, 'free' is present.")

Hãy tự mình thử »

Hoặc ba trích dẫn đơn:


A = '' 'Lorem ipsum dor SIT AMET, lãnh sự quảng cáo elit, sed do eiusmod tempor inciduntut labore et dolore magna aliqua.' '' in (a)

LƯU Ý: Trong kết quả, các lần phá vỡ dòng được chèn ở cùng một vị trí như trong mã.

Thí dụ

Bạn có thể sử dụng ba trích dẫn kép:

A = "" "Lorem ipsum dor SIT AMET, lãnh đạo adipiscing elit, sed do eiusmod tempor inciduntut labore et dolore magna aliqua." "" Print (a)
print("expensive" not in txt)

Hãy tự mình thử »

Hoặc ba trích dẫn đơn:

Thí dụ

Bạn có thể sử dụng ba trích dẫn kép:

A = "" "Lorem ipsum dor SIT AMET, lãnh đạo adipiscing elit, sed do eiusmod tempor inciduntut labore et dolore magna aliqua." "" Print (a)
if "expensive" not in txt:
  print("No, 'expensive' is NOT present.")

Hãy tự mình thử »



Chuỗi trong Python là gì?

Một chuỗi là một chuỗi các ký tự.

Một nhân vật chỉ đơn giản là một biểu tượng. Ví dụ, ngôn ngữ tiếng Anh có 26 ký tự.

Máy tính không đối phó với các ký tự, họ đối phó với các con số (nhị phân). Mặc dù bạn có thể thấy các ký tự trên màn hình của mình, nhưng bên trong nó được lưu trữ và thao tác như là sự kết hợp giữa 0 và 1.

Chuyển đổi ký tự thành một số này được gọi là mã hóa và quá trình đảo ngược là giải mã. ASCII và Unicode là một số mã hóa phổ biến được sử dụng.

Trong Python, một chuỗi là một chuỗi các ký tự Unicode. Unicode được giới thiệu để bao gồm mọi nhân vật trong tất cả các ngôn ngữ và mang lại tính đồng nhất trong mã hóa. Bạn có thể tìm hiểu về Unicode từ Python Unicode.


Làm thế nào để tạo một chuỗi trong Python?

Chuỗi có thể được tạo bằng cách đặt các ký tự bên trong một trích dẫn hoặc trích dẫn kép. Ngay cả trích dẫn ba có thể được sử dụng trong Python nhưng thường được sử dụng để đại diện cho các chuỗi và tài liệu đa dòng.

# defining strings in Python
# all of the following are equivalent
my_string = 'Hello'
print(my_string)

my_string = "Hello"
print(my_string)

my_string = '''Hello'''
print(my_string)

# triple quotes string can extend multiple lines
my_string = """Hello, welcome to
           the world of Python"""
print(my_string)

Khi bạn chạy chương trình, đầu ra sẽ là:

Hello
Hello
Hello
Hello, welcome to
           the world of Python

Làm thế nào để truy cập các ký tự trong một chuỗi?

Chúng ta có thể truy cập các ký tự riêng lẻ bằng cách sử dụng lập chỉ mục và một loạt các ký tự bằng cách cắt lát. Chỉ mục bắt đầu từ 0. Cố gắng truy cập một ký tự ra khỏi phạm vi chỉ mục sẽ tăng

str =  programiz
str[0] =  p
str[-1] =  z
str[1:5] =  rogr
str[5:-2] =  am
3. Chỉ số phải là một số nguyên. Chúng tôi không thể sử dụng phao hoặc các loại khác, điều này sẽ dẫn đến
str =  programiz
str[0] =  p
str[-1] =  z
str[1:5] =  rogr
str[5:-2] =  am
4.

Python cho phép lập chỉ mục tiêu cực cho các chuỗi của nó.

Chỉ số của

str =  programiz
str[0] =  p
str[-1] =  z
str[1:5] =  rogr
str[5:-2] =  am
5 đề cập đến mục cuối cùng,
str =  programiz
str[0] =  p
str[-1] =  z
str[1:5] =  rogr
str[5:-2] =  am
6 cho mục cuối cùng thứ hai, v.v. Chúng ta có thể truy cập vào một loạt các mục trong một chuỗi bằng cách sử dụng toán tử cắt ____ 37 (đại tràng).

#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được đầu ra sau:

str =  programiz
str[0] =  p
str[-1] =  z
str[1:5] =  rogr
str[5:-2] =  am

Nếu chúng tôi cố gắng truy cập một chỉ mục ra khỏi phạm vi hoặc các số sử dụng khác với số nguyên, chúng tôi sẽ gặp lỗi.

# index must be in range
>>> my_string[15]  
...
IndexError: string index out of range

# index must be an integer
>>> my_string[1.5] 
...
TypeError: string indices must be integers

Cắt lát có thể được hình dung tốt nhất bằng cách xem xét chỉ số là giữa các yếu tố như hình dưới đây.

Nếu chúng tôi muốn truy cập một phạm vi, chúng tôi cần chỉ mục sẽ cắt phần từ chuỗi.

Hướng dẫn what are the types of string in python? - các loại chuỗi trong python là gì?
Chuỗi cắt trong Python

Làm thế nào để thay đổi hoặc xóa một chuỗi?

Chuỗi là bất biến. Điều này có nghĩa là các phần tử của chuỗi không thể được thay đổi khi chúng đã được chỉ định. Chúng ta chỉ có thể chỉ định lại các chuỗi khác nhau thành cùng một tên.

>>> my_string = 'programiz'
>>> my_string[5] = 'a'
...
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'

Chúng ta không thể xóa hoặc xóa các ký tự khỏi chuỗi. Nhưng việc xóa chuỗi hoàn toàn có thể bằng cách sử dụng từ khóa

str =  programiz
str[0] =  p
str[-1] =  z
str[1:5] =  rogr
str[5:-2] =  am
8.

>>> del my_string[1]
...
TypeError: 'str' object doesn't support item deletion
>>> del my_string
>>> my_string
...
NameError: name 'my_string' is not defined

Hoạt động chuỗi Python

Có nhiều hoạt động có thể được thực hiện với các chuỗi làm cho nó trở thành một trong những loại dữ liệu được sử dụng nhiều nhất trong Python.

Để tìm hiểu thêm về các loại dữ liệu có sẵn trong Python, hãy truy cập: các loại dữ liệu Python

Sự kết hợp của hai hoặc nhiều chuỗi

Tham gia hai hoặc nhiều chuỗi vào một chuỗi duy nhất được gọi là nối.

Toán tử + thực hiện điều này trong Python. Đơn giản chỉ cần viết hai chuỗi chữ với nhau cũng liên kết chúng.+ operator does this in Python. Simply writing two string literals together also concatenates them.

Toán tử * có thể được sử dụng để lặp lại chuỗi trong một số lần nhất định.* operator can be used to repeat the string for a given number of times.

# Python String Operations
str1 = 'Hello'
str2 ='World!'

# using +
print('str1 + str2 = ', str1 + str2)

# using *
print('str1 * 3 =', str1 * 3)

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được đầu ra sau:

str1 + str2 =  HelloWorld!
str1 * 3 = HelloHelloHello

Viết hai chuỗi chữ với nhau cũng liên kết chúng như + toán tử.+ operator.

Nếu chúng ta muốn nối các chuỗi trong các dòng khác nhau, chúng ta có thể sử dụng dấu ngoặc đơn.

>>> # two string literals together
>>> 'Hello ''World!'
'Hello World!'

>>> # using parentheses
>>> s = ('Hello '
...      'World')
>>> s
'Hello World'

Lặp lại qua một chuỗi

Chúng ta có thể lặp lại thông qua một chuỗi bằng cách sử dụng một vòng lặp. Dưới đây là một ví dụ để đếm số lượng 'L trong một chuỗi.

Hello
Hello
Hello
Hello, welcome to
           the world of Python
0

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được đầu ra sau:

Hello
Hello
Hello
Hello, welcome to
           the world of Python
1

Kiểm tra thành viên chuỗi

Chúng ta có thể kiểm tra xem một chuỗi con có tồn tại trong một chuỗi hay không, sử dụng từ khóa

#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])
9.

Hello
Hello
Hello
Hello, welcome to
           the world of Python
2

Các chức năng tích hợp để làm việc với Python

Các chức năng tích hợp khác nhau làm việc với trình tự làm việc với các chuỗi là tốt.

Một số trong những cái thường được sử dụng là

# index must be in range
>>> my_string[15]  
...
IndexError: string index out of range

# index must be an integer
>>> my_string[1.5] 
...
TypeError: string indices must be integers
0 và
#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])
7. Hàm
# index must be in range
>>> my_string[15]  
...
IndexError: string index out of range

# index must be an integer
>>> my_string[1.5] 
...
TypeError: string indices must be integers
0 trả về một đối tượng liệt kê. Nó chứa chỉ mục và giá trị của tất cả các mục trong chuỗi dưới dạng cặp. Điều này có thể hữu ích cho việc lặp lại.

Tương tự,

#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])
7 trả về độ dài (số lượng ký tự) của chuỗi.

Hello
Hello
Hello
Hello, welcome to
           the world of Python
3

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được đầu ra sau:

Hello
Hello
Hello
Hello, welcome to
           the world of Python
4

Định dạng chuỗi Python

Trình tự thoát

Nếu chúng ta muốn in một văn bản như anh ta nói, "Có gì ở đó?", Chúng ta không thể sử dụng các trích dẫn đơn lẻ cũng không có trích dẫn kép. Điều này sẽ dẫn đến một

# index must be in range
>>> my_string[15]  
...
IndexError: string index out of range

# index must be an integer
>>> my_string[1.5] 
...
TypeError: string indices must be integers
4 vì bản thân văn bản chứa cả trích dẫn đơn và đôi.

Hello
Hello
Hello
Hello, welcome to
           the world of Python
5

Một cách để giải quyết vấn đề này là sử dụng trích dẫn ba. Ngoài ra, chúng ta có thể sử dụng trình tự thoát.

Một chuỗi thoát bắt đầu với một dấu gạch chéo ngược và được giải thích khác nhau. Nếu chúng ta sử dụng một trích dẫn duy nhất để biểu diễn một chuỗi, tất cả các trích dẫn duy nhất bên trong chuỗi phải được thoát. Tương tự là trường hợp với báo giá kép. Đây là cách nó có thể được thực hiện để đại diện cho văn bản trên.

Hello
Hello
Hello
Hello, welcome to
           the world of Python
6

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được đầu ra sau:

Hello
Hello
Hello
Hello, welcome to
           the world of Python
7

Dưới đây là danh sách tất cả các chuỗi thoát được hỗ trợ bởi Python.

Trình tự thoátNếu chúng ta muốn in một văn bản như anh ta nói, "Có gì ở đó?", Chúng ta không thể sử dụng các trích dẫn đơn lẻ cũng không có trích dẫn kép. Điều này sẽ dẫn đến một
# index must be in range
>>> my_string[15]  
...
IndexError: string index out of range

# index must be an integer
>>> my_string[1.5] 
...
TypeError: string indices must be integers
4 vì bản thân văn bản chứa cả trích dẫn đơn và đôi.
Một cách để giải quyết vấn đề này là sử dụng trích dẫn ba. Ngoài ra, chúng ta có thể sử dụng trình tự thoát.Một chuỗi thoát bắt đầu với một dấu gạch chéo ngược và được giải thích khác nhau. Nếu chúng ta sử dụng một trích dẫn duy nhất để biểu diễn một chuỗi, tất cả các trích dẫn duy nhất bên trong chuỗi phải được thoát. Tương tự là trường hợp với báo giá kép. Đây là cách nó có thể được thực hiện để đại diện cho văn bản trên.
Dưới đây là danh sách tất cả các chuỗi thoát được hỗ trợ bởi Python.Sự mô tả
\dòng mớiBackslash và Newline bị bỏ qua
\\Dấu vết chéo ngược
\ 'Trích dẫn duy nhất
\ "Báo giá kép
\mộtAscii Bell
\ bASCII backspace
\ fASCII Formfeed
\NASCII Linefeed
\ rASCII vận chuyển trở lại
\ tTab ngang ASCII
\ vTab dọc ASCII

\ ooo

Hello
Hello
Hello
Hello, welcome to
           the world of Python
8

Nhân vật có giá trị bát phân ooo

\ XHH

Hello
Hello
Hello
Hello, welcome to
           the world of Python
9

Nhân vật có giá trị thập lục phân HH

Dưới đây là một số ví dụ

Chuỗi thô để bỏ qua chuỗi thoát

#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])
0

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được đầu ra sau:

#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])
1

Đôi khi chúng ta có thể muốn bỏ qua các chuỗi thoát trong một chuỗi. Để làm điều này, chúng ta có thể đặt

# index must be in range
>>> my_string[15]  
...
IndexError: string index out of range

# index must be an integer
>>> my_string[1.5] 
...
TypeError: string indices must be integers
5 hoặc
# index must be in range
>>> my_string[15]  
...
IndexError: string index out of range

# index must be an integer
>>> my_string[1.5] 
...
TypeError: string indices must be integers
6 trước chuỗi. Điều này sẽ ngụ ý rằng nó là một chuỗi thô và bất kỳ chuỗi thoát nào bên trong nó sẽ bị bỏ qua.

Phương thức định dạng () để định dạng chuỗi

#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])
2

Định dạng kiểu cũ

Chúng ta thậm chí có thể định dạng các chuỗi như kiểu

>>> my_string = 'programiz'
>>> my_string[5] = 'a'
...
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'
4 cũ được sử dụng trong ngôn ngữ lập trình C. Chúng tôi sử dụng toán tử
>>> my_string = 'programiz'
>>> my_string[5] = 'a'
...
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'
5 để thực hiện điều này.

#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])
3

Phương thức chuỗi python phổ biến

Có rất nhiều phương pháp có sẵn với đối tượng chuỗi. Phương pháp

# index must be in range
>>> my_string[15]  
...
IndexError: string index out of range

# index must be an integer
>>> my_string[1.5] 
...
TypeError: string indices must be integers
7 mà chúng tôi đã đề cập ở trên là một trong số đó. Một số phương pháp thường được sử dụng là
>>> my_string = 'programiz'
>>> my_string[5] = 'a'
...
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'
7,
>>> my_string = 'programiz'
>>> my_string[5] = 'a'
...
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'
8,
>>> my_string = 'programiz'
>>> my_string[5] = 'a'
...
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'
9,
>>> del my_string[1]
...
TypeError: 'str' object doesn't support item deletion
>>> del my_string
>>> my_string
...
NameError: name 'my_string' is not defined
0,
>>> del my_string[1]
...
TypeError: 'str' object doesn't support item deletion
>>> del my_string
>>> my_string
...
NameError: name 'my_string' is not defined
1,
>>> del my_string[1]
...
TypeError: 'str' object doesn't support item deletion
>>> del my_string
>>> my_string
...
NameError: name 'my_string' is not defined
2, v.v ... Dưới đây là danh sách đầy đủ tất cả các phương pháp tích hợp để làm việc với các chuỗi trong Python.

#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])
4

Có bao nhiêu loại chuỗi trong Python?

Python hỗ trợ hai loại chuỗi-chuỗi một dòng và chuỗi nhiều dòng.Các chuỗi một dòng được đặt trong các trích dẫn đơn hoặc đôi và chấm dứt trong một dòng.Chuỗi nhiều dòng lưu trữ nhiều dòng văn bản và được đặt trong ba trích dẫn.two types of strings — Single-line strings and Multi-line strings. Single line strings are enclosed in single or double quotes and terminate in one line. Multi-line strings store multiple lines of text and are enclosed in triple quotes.

Hai loại chuỗi trong Python là gì?

ASCII và Unicode là một số mã hóa phổ biến được sử dụng.Trong Python, một chuỗi là một chuỗi các ký tự Unicode. are some of the popular encodings used. In Python, a string is a sequence of Unicode characters.

3 loại python là gì?

Các loại số - int, float, phức tạp.Có ba loại số riêng biệt: số nguyên, số điểm nổi và số phức.integers, floating point numbers, and complex numbers.

Có bao nhiêu loại chuỗi?

Nói chung, có hai loại dữ liệu chuỗi: chuỗi có độ dài cố định, có độ dài tối đa cố định được xác định tại thời điểm biên dịch và sử dụng cùng một lượng bộ nhớ cho dù có cần tối đa này hay không, và các chuỗi có độ dài thay đổi,có độ dài không được sửa chữa tùy ý và có thể sử dụng khác nhau ...two types of string datatypes: fixed-length strings, which have a fixed maximum length to be determined at compile time and which use the same amount of memory whether this maximum is needed or not, and variable-length strings, whose length is not arbitrarily fixed and which can use varying ...