Hướng dẫn python multiple variables in string - python nhiều biến trong chuỗi

Có một vấn đề đáng kể với một số câu trả lời được đăng cho đến nay:

Traceback (most recent call last):
  File "test.py", line 3, in 
    print '{0}'.format(unicode(author))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
0 giải mã từ mã hóa mặc định, thường là ASCII; Trên thực tế,
Traceback (most recent call last):
  File "test.py", line 3, in 
    print '{0}'.format(unicode(author))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
0 cố gắng làm cho "ý nghĩa" của các byte được đưa ra bằng cách chuyển đổi chúng thành các ký tự. Do đó, mã sau, về cơ bản là những gì được đề xuất bởi các câu trả lời trước đó, không thành công trên máy của tôi:

# -*- coding: utf-8 -*-
author = 'éric'
print '{0}'.format(unicode(author))

gives:

Traceback (most recent call last):
  File "test.py", line 3, in 
    print '{0}'.format(unicode(author))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)

Thất bại xuất phát từ thực tế là

Traceback (most recent call last):
  File "test.py", line 3, in 
    print '{0}'.format(unicode(author))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
2 không chỉ chứa các byte ASCII (tức là với các giá trị trong [0; 127]) và
Traceback (most recent call last):
  File "test.py", line 3, in 
    print '{0}'.format(unicode(author))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
0 giải mã từ ASCII theo mặc định (trên nhiều máy).

Một giải pháp mạnh mẽ là cung cấp rõ ràng cho mã hóa được sử dụng trong các trường của bạn; Lấy UTF-8 làm ví dụ:

u'{0} in {1}'.format(unicode(self.author, 'utf-8'), unicode(self.publication, 'utf-8'))

(hoặc không có

Traceback (most recent call last):
  File "test.py", line 3, in 
    print '{0}'.format(unicode(author))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
4 ban đầu, tùy thuộc vào việc bạn muốn kết quả Unicode hay chuỗi byte).

Tại thời điểm này, người ta có thể muốn xem xét có các trường

Traceback (most recent call last):
  File "test.py", line 3, in 
    print '{0}'.format(unicode(author))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
2 và
Traceback (most recent call last):
  File "test.py", line 3, in 
    print '{0}'.format(unicode(author))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
6 là chuỗi unicode, thay vì giải mã chúng trong quá trình định dạ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 Traceback (most recent call last): File "test.py", line 3, in print '{0}'.format(unicode(author)) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128) 7

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

Traceback (most recent call last):
  File "test.py", line 3, in 
    print '{0}'.format(unicode(author))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
7 để 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

Traceback (most recent call last):
  File "test.py", line 3, in 
    print '{0}'.format(unicode(author))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
9 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 (
u'{0} in {1}'.format(unicode(self.author, 'utf-8'), unicode(self.publication, 'utf-8'))
0) trong đó số lượng phải được chuẩn bị với
u'{0} in {1}'.format(unicode(self.author, 'utf-8'), unicode(self.publication, 'utf-8'))
1 để lấp đầy chiều rộng trường của
u'{0} in {1}'.format(unicode(self.author, 'utf-8'), unicode(self.publication, 'utf-8'))
2:

>>> print("Number {:03d} is here.".format(11))
Number 011 is here.

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

u'{0} in {1}'.format(unicode(self.author, 'utf-8'), unicode(self.publication, 'utf-8'))
3) với chính xác
u'{0} in {1}'.format(unicode(self.author, 'utf-8'), unicode(self.publication, 'utf-8'))
4 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

u'{0} in {1}'.format(unicode(self.author, 'utf-8'), unicode(self.publication, 'utf-8'))
3 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ử

u'{0} in {1}'.format(unicode(self.author, 'utf-8'), unicode(self.publication, 'utf-8'))
6. 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
u'{0} in {1}'.format(unicode(self.author, 'utf-8'), unicode(self.publication, 'utf-8'))
6 là ngắn gọn hơn.

Đối với toán tử

u'{0} in {1}'.format(unicode(self.author, 'utf-8'), unicode(self.publication, 'utf-8'))
6 hình thành, bạn hiển thị nơi các giá trị được chèn sẽ đi bằng ký tự
u'{0} in {1}'.format(unicode(self.author, 'utf-8'), unicode(self.publication, 'utf-8'))
6 theo sau là một định dạng định dạng, để nói làm thế nào giá trị nên được chèn.

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

u'{0} in {1}'.format(unicode(self.author, 'utf-8'), unicode(self.publication, 'utf-8'))
6. Lưu ý điểm đánh dấu
>>> shepherd = "Mary"
>>> string_in_string = "Shepherd {} is on duty.".format(shepherd)
>>> print(string_in_string)
Shepherd Mary is on duty.
1 để chèn một chuỗi và điểm đánh dấu
>>> shepherd = "Mary"
>>> string_in_string = "Shepherd {} is on duty.".format(shepherd)
>>> print(string_in_string)
Shepherd Mary is on duty.
2 để 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 khai báo nhiều biến chuỗi trong Python?

Python gán các giá trị từ phải sang trái. Khi gán nhiều biến trong một dòng, các tên biến khác nhau được cung cấp cho bên trái của toán tử gán được phân tách bằng dấu phẩy. Điều tương tự cũng xảy ra với các giá trị tương ứng của họ ngoại trừ chúng phải ở bên phải của toán tử chuyển nhượng.different variable names are provided to the left of the assignment operator separated by a comma. The same goes for their respective values except they should be to the right of the assignment operator.

Làm thế nào để bạn thêm hai biến vào một chuỗi?

Nếu bạn có nhiều biến trong chuỗi, bạn cần gửi kèm theo từng tên biến bên trong một bộ niềng răng xoăn.Cú pháp được hiển thị bên dưới: f "Đây là một chuỗi f {var_name} và {var_name}."▶ Đây là một ví dụ.enclose each of the variable names inside a set of curly braces. The syntax is shown below: f"This is an f-string {var_name} and {var_name}." ▶ Here's an example.

Làm thế nào để bạn in 3 biến trong Python?

Bạn có thể thấy, ba biến chuỗi được hiển thị bằng cách sử dụng chức năng in.Mỗi biến được phân tách bằng dấu phẩy.Trong đầu ra, không gian được thêm tự động.Điều này là do tham số sep = '', như được hiển thị trong cú pháp của hàm in.print function. Each variable is separated by a comma. In the output, space is added automatically. This is due to the parameter sep = '', as shown in the syntax of the print function.

Làm cách nào để in nhiều biến trong một dòng Python?

Để in trên cùng một dòng trong Python, hãy thêm đối số thứ hai, end = '', vào gọi chức năng in () ...
Chỉ định một đầu tham số tùy chọn là một khoảng trống ..
Gọi hàm in () với nhiều đầu vào ..
Sử dụng phương thức tham gia chuỗi () để kết hợp các chuỗi trước khi in ..