Cách in 01 02 03 bằng Python

Phần này hơi lạc đề, nhưng khi bạn làm việc với dữ liệu, bạn thường muốn tạo đầu ra có cấu trúc (bảng, v.v. ). Ví dụ

      Name      Shares        Price
----------  ----------  -----------
        AA         100        32.20
       IBM          50        91.10
       CAT         150        83.44
      MSFT         200        51.23
        GE          95        40.37
      MSFT          50        65.10
       IBM         100        70.44

  • Định dạng chuỗi
  • mã định dạng
  • định dạng từ điển
  • phương thức định dạng()
  • Định dạng kiểu C
  • bài tập
    • Bài tập 2. 8. Cách định dạng số
    • Bài tập 2. 9. Thu thập dữ liệu
    • Bài tập 2. 10. In bảng đã định dạng
    • Bài tập 2. 11. Thêm một số tiêu đề
    • Bài tập 2. 12. Thử thách định dạng

Định dạng chuỗi

Một cách để định dạng chuỗi trong Python 3. 6+ là với

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
1

>>> name = 'IBM'
>>> shares = 100
>>> price = 91.1
>>> f'{name:>10s} {shares:>10d} {price:>10.2f}'
'       IBM        100      91.10'
>>>

Phần

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
2 được thay thế

Nó thường được sử dụng với

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
3

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')

mã định dạng

Mã định dạng (sau

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
4 bên trong
print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
5) tương tự như C
print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
6. Các mã phổ biến bao gồm

d       Decimal integer
b       Binary integer
x       Hexadecimal integer
f       Float as [-]m.dddddd
e       Float as [-]m.dddddde+-xx
g       Float, but selective use of E notation s String
c       Character (from integer)

Công cụ sửa đổi phổ biến điều chỉnh độ rộng trường và độ chính xác thập phân. Đây là một phần danh sách

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
0

định dạng từ điển

Bạn có thể sử dụng phương pháp

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
7 để áp dụng định dạng chuỗi cho từ điển giá trị

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
2

Nó sử dụng các mã giống như

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
1 nhưng lấy các giá trị từ từ điển được cung cấp

phương thức định dạng()

Có một phương pháp

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
9 có thể áp dụng định dạng cho đối số hoặc đối số từ khóa

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
5

Thành thật mà nói,

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
9 hơi dài dòng. Tôi thích f-string hơn

Định dạng kiểu C

Bạn cũng có thể sử dụng toán tử định dạng

d       Decimal integer
b       Binary integer
x       Hexadecimal integer
f       Float as [-]m.dddddd
e       Float as [-]m.dddddde+-xx
g       Float, but selective use of E notation s String
c       Character (from integer)
1

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
8

Điều này yêu cầu một mục hoặc một bộ ở bên phải. Mã định dạng cũng được mô phỏng theo C

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
6

Ghi chú. Đây là định dạng duy nhất có sẵn trên chuỗi byte

>>> name = 'IBM'
>>> shares = 100
>>> price = 91.1
>>> f'{name:>10s} {shares:>10d} {price:>10.2f}'
'       IBM        100      91.10'
>>>
0

bài tập

Bài tập 2. 8. Cách định dạng số

Một vấn đề phổ biến với việc in số là chỉ định số vị trí thập phân. Một cách để khắc phục điều này là sử dụng f-strings. Hãy thử những ví dụ này

>>> name = 'IBM'
>>> shares = 100
>>> price = 91.1
>>> f'{name:>10s} {shares:>10d} {price:>10.2f}'
'       IBM        100      91.10'
>>>
1

Có thể tìm thấy tài liệu đầy đủ về các mã định dạng được sử dụng chuỗi f tại đây. Định dạng đôi khi cũng được thực hiện bằng toán tử

d       Decimal integer
b       Binary integer
x       Hexadecimal integer
f       Float as [-]m.dddddd
e       Float as [-]m.dddddde+-xx
g       Float, but selective use of E notation s String
c       Character (from integer)
1 của chuỗi

>>> name = 'IBM'
>>> shares = 100
>>> price = 91.1
>>> f'{name:>10s} {shares:>10d} {price:>10.2f}'
'       IBM        100      91.10'
>>>
0

Tài liệu về các mã khác nhau được sử dụng với

d       Decimal integer
b       Binary integer
x       Hexadecimal integer
f       Float as [-]m.dddddd
e       Float as [-]m.dddddde+-xx
g       Float, but selective use of E notation s String
c       Character (from integer)
1 có thể được tìm thấy tại đây

Mặc dù nó thường được sử dụng với

print(f'{name:>10s} {shares:>10d} {price:>10.2f}')
3, nhưng định dạng chuỗi không liên quan đến in ấn. Nếu bạn muốn lưu một chuỗi đã định dạng. Chỉ cần gán nó cho một biến

>>> name = 'IBM'
>>> shares = 100
>>> price = 91.1
>>> f'{name:>10s} {shares:>10d} {price:>10.2f}'
'       IBM        100      91.10'
>>>
1

Bài tập 2. 9. Thu thập dữ liệu

Trong bài tập 2. 7, bạn đã viết một chương trình tên là

d       Decimal integer
b       Binary integer
x       Hexadecimal integer
f       Float as [-]m.dddddd
e       Float as [-]m.dddddde+-xx
g       Float, but selective use of E notation s String
c       Character (from integer)
6 để tính lãi/lỗ của một danh mục đầu tư chứng khoán. Trong bài tập này, bạn sẽ bắt đầu sửa đổi nó để tạo ra một bảng như thế này

>>> name = 'IBM'
>>> shares = 100
>>> price = 91.1
>>> f'{name:>10s} {shares:>10d} {price:>10.2f}'
'       IBM        100      91.10'
>>>
2

Trong báo cáo này, "Giá" là giá cổ phiếu hiện tại của cổ phiếu và "Thay đổi" là sự thay đổi của giá cổ phiếu so với giá mua ban đầu

Để tạo báo cáo trên, trước tiên bạn sẽ muốn thu thập tất cả dữ liệu được hiển thị trong bảng. Viết hàm

d       Decimal integer
b       Binary integer
x       Hexadecimal integer
f       Float as [-]m.dddddd
e       Float as [-]m.dddddde+-xx
g       Float, but selective use of E notation s String
c       Character (from integer)
7 lấy danh sách cổ phiếu và từ điển giá làm đầu vào và trả về danh sách các bộ chứa các hàng của bảng trên

Thêm chức năng này vào tệp

d       Decimal integer
b       Binary integer
x       Hexadecimal integer
f       Float as [-]m.dddddd
e       Float as [-]m.dddddde+-xx
g       Float, but selective use of E notation s String
c       Character (from integer)
6 của bạn. Đây là cách nó sẽ hoạt động nếu bạn thử tương tác

>>> name = 'IBM'
>>> shares = 100
>>> price = 91.1
>>> f'{name:>10s} {shares:>10d} {price:>10.2f}'
'       IBM        100      91.10'
>>>
3

Bài tập 2. 10. In bảng đã định dạng

Làm lại vòng lặp for ở bài tập 2. 9, nhưng thay đổi câu lệnh in để định dạng các bộ dữ liệu

>>> name = 'IBM'
>>> shares = 100
>>> price = 91.1
>>> f'{name:>10s} {shares:>10d} {price:>10.2f}'
'       IBM        100      91.10'
>>>
4

Bạn cũng có thể mở rộng các giá trị và sử dụng chuỗi f. Ví dụ

>>> name = 'IBM'
>>> shares = 100
>>> price = 91.1
>>> f'{name:>10s} {shares:>10d} {price:>10.2f}'
'       IBM        100      91.10'
>>>
5

Lấy các câu trên và thêm chúng vào chương trình

d       Decimal integer
b       Binary integer
x       Hexadecimal integer
f       Float as [-]m.dddddd
e       Float as [-]m.dddddde+-xx
g       Float, but selective use of E notation s String
c       Character (from integer)
6 của bạn. Yêu cầu chương trình của bạn lấy đầu ra của hàm
d       Decimal integer
b       Binary integer
x       Hexadecimal integer
f       Float as [-]m.dddddd
e       Float as [-]m.dddddde+-xx
g       Float, but selective use of E notation s String
c       Character (from integer)
7 và in ra một bảng được định dạng đẹp mắt như hình minh họa

Bài tập 2. 11. Thêm một số tiêu đề

Giả sử bạn có một bộ tên tiêu đề như thế này

>>> name = 'IBM'
>>> shares = 100
>>> price = 91.1
>>> f'{name:>10s} {shares:>10d} {price:>10.2f}'
'       IBM        100      91.10'
>>>
6

Thêm mã vào chương trình của bạn để lấy bộ tiêu đề ở trên và tạo một chuỗi trong đó mỗi tên tiêu đề được căn phải trong một trường rộng 10 ký tự và mỗi trường được phân tách bằng một dấu cách

>>> name = 'IBM'
>>> shares = 100
>>> price = 91.1
>>> f'{name:>10s} {shares:>10d} {price:>10.2f}'
'       IBM        100      91.10'
>>>
7

Viết mã lấy các tiêu đề và tạo chuỗi phân cách giữa các tiêu đề và dữ liệu để theo dõi. Chuỗi này chỉ là một loạt các ký tự "-" dưới mỗi tên trường. Ví dụ

>>> name = 'IBM'
>>> shares = 100
>>> price = 91.1
>>> f'{name:>10s} {shares:>10d} {price:>10.2f}'
'       IBM        100      91.10'
>>>
8

Khi bạn hoàn thành, chương trình của bạn sẽ tạo ra bảng hiển thị ở đầu bài tập này

>>> name = 'IBM'
>>> shares = 100
>>> price = 91.1
>>> f'{name:>10s} {shares:>10d} {price:>10.2f}'
'       IBM        100      91.10'
>>>
2

Bài tập 2. 12. Thử thách định dạng

Bạn sẽ sửa đổi mã của mình như thế nào để giá bao gồm ký hiệu tiền tệ ($) và đầu ra trông như thế này

%s và %D trong Python là gì?

%s đóng vai trò giữ chỗ cho một chuỗi trong khi %d đóng vai trò giữ chỗ cho một số . Các giá trị được liên kết của chúng được truyền qua một bộ sử dụng toán tử %.

%s hoạt động như thế nào trong Python?

Toán tử %s cho phép bạn thêm một giá trị vào chuỗi Python. %s biểu thị rằng bạn muốn thêm một giá trị chuỗi vào một chuỗi. Toán tử % có thể được sử dụng với các cấu hình khác, chẳng hạn như %d, để định dạng các loại giá trị khác nhau

%d %s %F trong Python là gì?

Trả lời. Trong Python, các trình định dạng chuỗi về cơ bản là các trình giữ chỗ cho phép chúng ta chuyển các giá trị khác nhau vào một số chuỗi được định dạng. Trình định dạng %d được sử dụng để nhập giá trị thập phân hoặc số nguyên . Nếu bạn cung cấp một giá trị float, nó sẽ chuyển đổi nó thành một số nguyên, bằng cách cắt bớt các giá trị sau dấu thập phân.

%s trong Python 2 là gì?

#1 Định dạng chuỗi “Kiểu cũ” (% Toán tử) . Có sẵn các công cụ xác định định dạng khác cho phép bạn kiểm soát định dạng đầu ra. tell Python where to substitute the value of name , represented as a string. There are other format specifiers available that let you control the output format.