Hướng dẫn how do you pass a string in python? - làm thế nào để bạn vượt qua một chuỗi trong python?

Python vượt qua một chuỗi bằng cách tham chiếu. Lưu ý rằng hai chuỗi có cùng nội dung được coi là giống hệt nhau:does pass a string by reference. Notice that two strings with the same content are considered identical:

a = 'hello'
b = 'hello'
a is b        # True

Vì khi B được gán bởi một giá trị và giá trị đã tồn tại trong bộ nhớ, nó sử dụng cùng một tham chiếu của chuỗi. Lưu ý một thực tế khác, rằng nếu chuỗi được tạo động, có nghĩa là được tạo với các hoạt động chuỗi [tức là nối], biến mới sẽ tham chiếu một thể hiện mới của cùng một chuỗi:

c = 'hello'
d = 'he'
d += 'llo'
c is d        # False

Điều đó đang được nói, việc tạo một chuỗi mới sẽ phân bổ một chuỗi mới trong bộ nhớ và trả về một tham chiếu cho chuỗi mới, nhưng sử dụng một chuỗi hiện đang được tạo sẽ sử dụng lại cùng một thể hiện chuỗi. Do đó, việc truyền một chuỗi dưới dạng tham số hàm sẽ chuyển nó bằng tham chiếu hoặc nói cách khác, sẽ chuyển địa chỉ trong bộ nhớ của chuỗi.will pass it by reference, or in other words, will pass the address in memory of the string.

Và bây giờ đến mức bạn đang tìm kiếm- nếu bạn thay đổi chuỗi bên trong hàm, chuỗi bên ngoài hàm sẽ vẫn giữ nguyên và điều đó bắt nguồn từ tính bất biến chuỗi. Thay đổi một chuỗi có nghĩa là phân bổ một chuỗi mới trong bộ nhớ.

a = 'a'
b = a    # b will hold a reference to string a
a += 'a'
a is b   # False

Điểm mấu chốt:

Bạn không thể thực sự thay đổi một chuỗi. Giống như đối với có thể mọi ngôn ngữ lập trình khác [nhưng đừng trích dẫn tôi]. Khi bạn vượt qua chuỗi như một đối số, bạn vượt qua một tham chiếu. Khi bạn thay đổi giá trị của nó, bạn thay đổi biến thành một vị trí khác trong bộ nhớ. Nhưng khi bạn thay đổi tham chiếu của một biến, các biến khác trỏ đến cùng một địa chỉ sẽ tự nhiên giữ giá trị cũ [tham chiếu] mà chúng giữ. Ước gì giải thích đủ rõ ràng

\ [\ newcommand {l} [1] {\ | #1 \ |} \ newcommand {vl} [1] {\ l {\ vec Re} \, [#1]} \ newCommand {i} [1] {\ operatorName {im} \, [#1]} \]

Tùy chọn 1 - Phương thức chuỗi ____10

Bạn có thể sử dụng phương thức Chuỗi

c = 'hello'
d = 'he'
d += 'llo'
c is d        # False
0 để tạo các chuỗi mới với các giá trị được chèn. Phương pháp này hoạt động cho tất cả các bản phát hành hiện tại của Python. Ở đây chúng tôi chèn một chuỗi vào một chuỗi khác:

>>> shepherd = "Mary"
>>> string_in_string = "Shepherd {} is on duty.".format[shepherd]
>>> print[string_in_string]
Shepherd Mary is on duty.

Các niềng răng xoăn cho thấy giá trị chèn nên đi.

Bạn có thể chèn nhiều hơn một giá trị. Các giá trị không phải là chuỗi, chúng có thể là số và các đối tượng Python khác.

>>> shepherd = "Mary"
>>> age = 32
>>> stuff_in_string = "Shepherd {} is {} years old.".format[shepherd, age]
>>> print[stuff_in_string]
Shepherd Mary is 32 years old.

>>> 'Here is a {} floating point number'.format[3.33333]
'Here is a 3.33333 floating point number'

Bạn có thể thực hiện định dạng phức tạp hơn của các số và chuỗi bằng cách sử dụng các tùy chọn định dạng trong dấu ngoặc xoăn - xem tài liệu về định dạng chuỗi giòn xoăn.

Hệ thống này cho phép chúng tôi cung cấp các hướng dẫn định dạng cho những thứ như số, bằng cách sử dụng

c = 'hello'
d = 'he'
d += 'llo'
c is d        # False
2 bên trong niềng răng xoăn, theo sau là các hướng dẫn định dạng. Ở đây chúng tôi yêu cầu in bằng số nguyên [
c = 'hello'
d = 'he'
d += 'llo'
c is d        # False
3] trong đó số lượng cần được chuẩn bị với
c = 'hello'
d = 'he'
d += 'llo'
c is d        # False
4 để lấp đầy chiều rộng trường của
c = 'hello'
d = 'he'
d += 'llo'
c is d        # False
5:

>>> print["Number {:03d} is here.".format[11]]
Number 011 is here.

Điều này in một giá trị điểm nổi [

c = 'hello'
d = 'he'
d += 'llo'
c is d        # False
6] với chính xác
c = 'hello'
d = 'he'
d += 'llo'
c is d        # False
7 chữ số sau điểm thập phân:

>>> 'A formatted number - {:.4f}'.format[.2]
'A formatted number - 0.2000'

Xem tài liệu định dạng chuỗi Python để biết thêm chi tiết và ví dụ.

Tùy chọn 2 - F -String trong Python> = 3.6¶

Nếu bạn có thể phụ thuộc vào việc có Python> = Phiên bản 3.6, thì bạn có một tùy chọn hấp dẫn khác, đó là sử dụng cú pháp theo nghĩa đen [F-String] được định dạng mới để chèn các giá trị biến. Một

c = 'hello'
d = 'he'
d += 'llo'
c is d        # False
6 khi bắt đầu chuỗi cho Python cho phép bất kỳ tên biến hợp lệ hiện tại làm tên biến trong chuỗi. Ví dụ: đây là một ví dụ như ở trên, sử dụng cú pháp F-String:

>>> shepherd = "Martha"
>>> age = 34
>>> # Note f before first quote of string
>>> stuff_in_string = f"Shepherd {shepherd} is {age} years old."
>>> print[stuff_in_string]
Shepherd Martha is 34 years old.

Tùy chọn 3 - Định dạng trường học cũ % cũ

Có một phương thức định dạng chuỗi cũ hơn sử dụng toán tử

c = 'hello'
d = 'he'
d += 'llo'
c is d        # False
9. Nó kém linh hoạt hơn một chút so với hai tùy chọn khác, nhưng bạn vẫn sẽ thấy nó được sử dụng trong mã cũ hơn và khi sử dụng định dạng
c = 'hello'
d = 'he'
d += 'llo'
c is d        # False
9 là ngắn gọn hơn.

Đối với toán tử

c = 'hello'
d = 'he'
d += 'llo'
c is d        # False
9 hình thành, bạn hiển thị nơi các giá trị được chèn sẽ đi bằng ký tự
c = 'hello'
d = 'he'
d += 'llo'
c is d        # False
9 theo sau là một định dạng định dạng, để nói cách chèn giá trị.

Dưới đây là ví dụ trên, sử dụng định dạng

c = 'hello'
d = 'he'
d += 'llo'
c is d        # False
9. Lưu ý điểm đánh dấu
a = 'a'
b = a    # b will hold a reference to string a
a += 'a'
a is b   # False
4 để chèn một chuỗi và điểm đánh dấu
a = 'a'
b = a    # b will hold a reference to string a
a += 'a'
a is b   # False
5 để chèn một số nguyên.

>>> stuff_in_string = "Shepherd %s is %d years old." % [shepherd, age]
>>> print[stuff_in_string]
Shepherd Martha is 34 years old.

Làm thế nào để bạn vượt qua một chuỗi?

Để truyền một chuỗi theo giá trị, con trỏ chuỗi [trường S của bộ mô tả] được truyền. Khi thao tác các chuỗi IDL: được gọi là mã nên xử lý thông tin trong bộ mô tả IDL_String đã truyền và bản thân chuỗi là chỉ đọc và không nên sửa đổi các giá trị này.the string pointer [the s field of the descriptor] is passed. When manipulating IDL strings: Called code should treat the information in the passed IDL_STRING descriptor and the string itself as read-only, and should not modify these values.

Tôi có thể chuyển chuỗi cho chức năng Python không?

Bạn có thể gửi bất kỳ loại dữ liệu nào của đối số đến một hàm [chuỗi, số, danh sách, từ điển, v.v.] và nó sẽ được coi là cùng một loại dữ liệu bên trong hàm. [string, number, list, dictionary etc.], and it will be treated as the same data type inside the function.

Python có đi qua giá trị hoặc chuỗi không?

Python sử dụng một hệ thống, được gọi là Call Call by the Object tham khảo đối tượng hoặc cuộc gọi của người khác.Trong trường hợp bạn chuyển các đối số như toàn bộ số, chuỗi hoặc bộ dữ liệu cho một hàm, việc vượt qua giống như giá trị cuộc gọi vì bạn không thể thay đổi giá trị của các đối tượng bất biến được truyền đến hàm.call-by-value because you can not change the value of the immutable objects being passed to the function.

Làm thế nào để bạn vượt qua một giá trị trong Python?

Vượt qua các lập luận trong Python.Python chuyển các đối số bằng cách chuyển nhượng.Đó là, khi bạn gọi hàm python, mỗi đối số hàm trở thành một biến mà giá trị truyền được gán.Python passes arguments by assignment. That is, when you call a Python function, each function argument becomes a variable to which the passed value is assigned.

Bài Viết Liên Quan

Chủ Đề