Đây là tất cả các câu trả lời thông tin, nhưng không có câu trả lời nào hoàn toàn nhận được sự khác biệt giữa
>>> '%d' % 34.5
'34'
1 và >>> '%d' % 34.5
'34'
2.>>> '%d' % 34.5
'34'
1 bảo định dạng gọi hàm >>> '%d' % 34.5
'34'
4 trên đối số và vì chúng tôi đang ép buộc theo một chuỗi theo định nghĩa, >>> '%d' % 34.5
'34'
1 về cơ bản chỉ thực hiện >>> '%d' % 34.5
'34'
6.>>> '%d' % 34.5
'34'
2 Mặt khác, đang gọi >>> '%d' % 34.5
'34'
8 trên đối số trước khi gọi >>> '%d' % 34.5
'34'
4, như >>> '%d' % 'thirteen'
Traceback [most recent call last]:
File "", line 1, in
TypeError: %d format: a number is required, not str
0, điều này sẽ gây ra sự ép buộc >>> '%d' % 'thirteen'
Traceback [most recent call last]:
File "", line 1, in
TypeError: %d format: a number is required, not str
1 cũng như cưỡng chế >>> '%d' % 'thirteen'
Traceback [most recent call last]:
File "", line 1, in
TypeError: %d format: a number is required, not str
2.Ví dụ: tôi có thể chuyển đổi giá trị hex thành thập phân,
>>> '%d' % 0x15
'21'
hoặc cắt ngắn một chiếc phao.
>>> '%d' % 34.5
'34'
Nhưng hoạt động sẽ tăng một ngoại lệ nếu đối số không phải là một số.
>>> '%d' % 'thirteen'
Traceback [most recent call last]:
File "", line 1, in
TypeError: %d format: a number is required, not str
Vì vậy, nếu ý định chỉ là gọi
>>> '%d' % 34.5
'34'
6, thì >>> '%d' % 34.5
'34'
1 là đủ, nhưng nếu bạn cần định dạng thêm [như định dạng các vị trí thập phân nổi] hoặc sự ép buộc khác, thì cần phải có các ký hiệu định dạng khác.Với ký hiệu
>>> '%d' % 'thirteen'
Traceback [most recent call last]:
File "", line 1, in
TypeError: %d format: a number is required, not str
5, khi bạn bỏ định dạng ra, mặc định là >>> '%d' % 'thirteen'
Traceback [most recent call last]:
File "", line 1, in
TypeError: %d format: a number is required, not str
2.>>> a = 1
>>> f'{a}'
'1'
>>> f'{a:d}'
'1'
>>> a = '1'
>>> f'{a:d}'
Traceback [most recent call last]:
File "", line 1, in
ValueError: Unknown format code 'd' for object of type 'str'
Điều tương tự cũng đúng với
>>> '%d' % 'thirteen'
Traceback [most recent call last]:
File "", line 1, in
TypeError: %d format: a number is required, not str
7; Mặc định là >>> '%d' % 'thirteen'
Traceback [most recent call last]:
File "", line 1, in
TypeError: %d format: a number is required, not str
2.>>> a = 1
>>> '{}'.format[a]
'1'
>>> '{!s}'.format[a]
'1'
>>> '{:d}'.format[a]
'1'
Mô tả dự án
Một người trợ giúp gỡ lỗi in ấn.
Động lực
>>> '%d' % 'thirteen'
Traceback [most recent call last]:
File "", line 1, in
TypeError: %d format: a number is required, not str
9 được lấy cảm hứng từ một chủ đề Python-Ideas, để hiển thị những gì có thể với một chút phép thuật với mã Python đơn giản.Cài đặt
Đó là trên pypi là
>>> '%d' % 'thirteen'
Traceback [most recent call last]:
File "", line 1, in
TypeError: %d format: a number is required, not str
9. Cách rõ ràng sẽ chỉ hoạt động:pip install dprint
Cách sử dụng
Nhập hàm
>>> '%d' % 'thirteen'
Traceback [most recent call last]:
File "", line 1, in
TypeError: %d format: a number is required, not str
9 từ mô -đun >>> '%d' % 'thirteen'
Traceback [most recent call last]:
File "", line 1, in
TypeError: %d format: a number is required, not str
9.from dprint import dprint def spam[]: eggs = 10 dprint[eggs * 2] spam[]
Chạy tập lệnh trên đưa ra:
$ python script.py
script.py:6 in spam
eggs * 2 -> 20
Giả định hoạt động
Logic hiện tại để tìm ra biểu thức được chuyển cho DPrint hoạt động theo một số giả định:
- Hàm được nhập phải được gọi là
9>>> '%d' % 'thirteen' Traceback [most recent call last]: File "", line 1, in TypeError: %d format: a number is required, not str
- Một cuộc gọi sẽ không quá 1 dòng
- Không quá 1 cuộc gọi trên 1 dòng
Một phiên bản trong tương lai có thể thư giãn những giả định này.
Giấy phép
Tất cả các tập tin trong kho này thuộc giấy phép MIT.
Tải tập tin
Tải xuống tệp cho nền tảng của bạn. Nếu bạn không chắc chắn nên chọn cái nào, hãy tìm hiểu thêm về việc cài đặt các gói.
Phân phối nguồn
Phân phối xây dựng
Python sử dụng định dạng chuỗi kiểu C để tạo các chuỗi mới, được định dạng. Toán tử "%" được sử dụng để định dạng một tập hợp các biến được đặt trong một "tuple" [một danh sách kích thước cố định], cùng với một chuỗi định dạng, chứa văn bản bình thường cùng với "các định hướng đối số", các biểu tượng đặc biệt như "%s" và "%d".
Giả sử bạn có một biến có tên là "Tên" với tên người dùng của bạn trong đó và sau đó bạn muốn in [ra lời chào đến người dùng đó.]
# This prints out "Hello, John!"
name = "John"
print["Hello, %s!" % name]
Để sử dụng hai hoặc nhiều nhà xác định đối số, hãy sử dụng tuple [dấu ngoặc đơn]:
# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
Bất kỳ đối tượng nào không phải là một chuỗi cũng có thể được định dạng bằng toán tử %s. Chuỗi trả về từ phương thức "repr" của đối tượng đó được định dạng là chuỗi. Ví dụ:
>>> '%d' % 34.5
'34'
0Dưới đây là một số trình xác định đối số cơ bản mà bạn nên biết:
>>> a = 1
>>> f'{a}'
'1'
>>> f'{a:d}'
'1'
>>> a = '1'
>>> f'{a:d}'
Traceback [most recent call last]:
File "", line 1, in
ValueError: Unknown format code 'd' for object of type 'str'
4>>> a = 1
>>> f'{a}'
'1'
>>> f'{a:d}'
'1'
>>> a = '1'
>>> f'{a:d}'
Traceback [most recent call last]:
File "", line 1, in
ValueError: Unknown format code 'd' for object of type 'str'
5>>> a = 1
>>> f'{a}'
'1'
>>> f'{a:d}'
'1'
>>> a = '1'
>>> f'{a:d}'
Traceback [most recent call last]:
File "", line 1, in
ValueError: Unknown format code 'd' for object of type 'str'
6>>> a = 1
>>> f'{a}'
'1'
>>> f'{a:d}'
'1'
>>> a = '1'
>>> f'{a:d}'
Traceback [most recent call last]:
File "", line 1, in
ValueError: Unknown format code 'd' for object of type 'str'
7>>> a = 1
>>> f'{a}'
'1'
>>> f'{a:d}'
'1'
>>> a = '1'
>>> f'{a:d}'
Traceback [most recent call last]:
File "", line 1, in
ValueError: Unknown format code 'd' for object of type 'str'
8Tập thể dục
Bạn sẽ cần viết một chuỗi định dạng in dữ liệu bằng cú pháp sau:
>>> a = 1
>>> f'{a}'
'1'
>>> f'{a:d}'
'1'
>>> a = '1'
>>> f'{a:d}'
Traceback [most recent call last]:
File "", line 1, in
ValueError: Unknown format code 'd' for object of type 'str'
9>>> a = 1
>>> '{}'.format[a]
'1'
>>> '{!s}'.format[a]
'1'
>>> '{:d}'.format[a]
'1'
0 >>> a = 1
>>> '{}'.format[a]
'1'
>>> '{!s}'.format[a]
'1'
>>> '{:d}'.format[a]
'1'
1 >>> a = 1
>>> '{}'.format[a]
'1'
>>> '{!s}'.format[a]
'1'
>>> '{:d}'.format[a]
'1'
2 >>> a = 1
>>> '{}'.format[a]
'1'
>>> '{!s}'.format[a]
'1'
>>> '{:d}'.format[a]
'1'
3