Hướng dẫn print complex number in python without brackets - in số phức trong python không có dấu ngoặc

W W Srilyk tại gmail.com Thứ Sáu ngày 19 tháng 9 năm 19 12:46:16 CEST 2008 Srilyk tại gmail.com Thứ Sáu ngày 19 tháng 9 12:46:16 CEST 2008
Thứ Sáu ngày 19 tháng 9 12:46:16 CEST 2008
  • Tin nhắn trước: [Gia sư] Cách in các số phức tạp mà không bao quanh dấu ngoặc đơn
  • Thông báo tiếp theo: [Gia sư] Cách in các số phức tạp mà không bao quanh dấu ngoặc đơn
  • Tin nhắn được sắp xếp bởi: [Ngày] [Chủ đề] [Chủ đề] [Tác giả] [ date ] [ thread ] [ subject ] [ author ]
On Fri, Sep 19, 2008 at 4:26 AM, Stephen McInerney
wrote:

>
> Why does the complex.__str__[] method on complex numbers add the enclosing
> parentheses?
> It's unwanted, and it also makes them look like a tuple [other than the
> trailing comma].
> How can I get rid of it, other than the clunky:
>
> >>> print d
> [0.80-0.58j]
> >>> print repr[d][1:-1]
> 0.80-0.58j
>
> How can I change complex.__str__[] ?
>

>>> def printComp[comp]:
...     comp = str[comp]
...     comp = comp.strip[']']
...     comp = comp.strip['[']
...     print comp
...
>>> printComp[d]
0.8-0.58j


That's the best I could come up with...
HTH,
Wayne
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
  • Tin nhắn trước: [Gia sư] Cách in các số phức tạp mà không bao quanh dấu ngoặc đơn
  • Thông báo tiếp theo: [Gia sư] Cách in các số phức tạp mà không bao quanh dấu ngoặc đơn
  • Tin nhắn được sắp xếp bởi: [Ngày] [Chủ đề] [Chủ đề] [Tác giả] [ date ] [ thread ] [ subject ] [ author ]
Thêm thông tin về danh sách gửi thư gia sư

Bạn có thể làm điều đó như được hiển thị bên dưới bằng phương pháp

>>> n = 3.4+2.3j
>>> n
[3.4+2.3j]
>>> '[{0.real:.2f} + {0.imag:.2f}i]'.format[n]
'[3.40 + 2.30i]'
>>> '[{c.real:.2f} + {c.imag:.2f}i]'.format[c=n]
'[3.40 + 2.30i]'
2:

>>> n = 3.4+2.3j
>>> n
[3.4+2.3j]
>>> '[{0.real:.2f} + {0.imag:.2f}i]'.format[n]
'[3.40 + 2.30i]'
>>> '[{c.real:.2f} + {c.imag:.2f}i]'.format[c=n]
'[3.40 + 2.30i]'

Để làm cho nó xử lý cả các phần tưởng tượng tích cực và tiêu cực đúng cách, bạn sẽ cần một hoạt động định dạng phức tạp [thậm chí nhiều hơn]:

>>> n = 3.4-2.3j
>>> n
[3.4-2.3j]
>>> '[{0:.2f} {1} {2:.2f}i]'.format[n.real, '+-'[n.imag < 0], abs[n.imag]]
'[3.40 - 2.30i]'

Cập nhật - Cách dễ dàng hơn

Mặc dù bạn không thể sử dụng

>>> n = 3.4+2.3j
>>> n
[3.4+2.3j]
>>> '[{0.real:.2f} + {0.imag:.2f}i]'.format[n]
'[3.40 + 2.30i]'
>>> '[{c.real:.2f} + {c.imag:.2f}i]'.format[c=n]
'[3.40 + 2.30i]'
3 làm loại trình bày cho các số phức bằng cách sử dụng toán tử định dạng chuỗi
>>> n = 3.4+2.3j
>>> n
[3.4+2.3j]
>>> '[{0.real:.2f} + {0.imag:.2f}i]'.format[n]
'[3.40 + 2.30i]'
>>> '[{c.real:.2f} + {c.imag:.2f}i]'.format[c=n]
'[3.40 + 2.30i]'
4:cannot use
>>> n = 3.4+2.3j
>>> n
[3.4+2.3j]
>>> '[{0.real:.2f} + {0.imag:.2f}i]'.format[n]
'[3.40 + 2.30i]'
>>> '[{c.real:.2f} + {c.imag:.2f}i]'.format[c=n]
'[3.40 + 2.30i]'
3 as a presentation type for complex numbers using the string formatting operator
>>> n = 3.4+2.3j
>>> n
[3.4+2.3j]
>>> '[{0.real:.2f} + {0.imag:.2f}i]'.format[n]
'[3.40 + 2.30i]'
>>> '[{c.real:.2f} + {c.imag:.2f}i]'.format[c=n]
'[3.40 + 2.30i]'
4:

n1 = 3.4+2.3j
n2 = 3.4-2.3j

try:
    print['test: %.2f' % n1]
except Exception as exc:
    print['{}: {}'.format[type[exc].__name__, exc]]

Output:

TypeError: float argument required, not complex

Tuy nhiên, bạn có thể sử dụng nó với các số phức tạp thông qua phương thức

>>> n = 3.4+2.3j
>>> n
[3.4+2.3j]
>>> '[{0.real:.2f} + {0.imag:.2f}i]'.format[n]
'[3.40 + 2.30i]'
>>> '[{c.real:.2f} + {c.imag:.2f}i]'.format[c=n]
'[3.40 + 2.30i]'
2. Điều này không được ghi lại rõ ràng, nhưng được ngụ ý bởi tài liệu về ngôn ngữ nhỏ định dạng mà chỉ nói:can however use it with complex numbers via the
>>> n = 3.4+2.3j
>>> n
[3.4+2.3j]
>>> '[{0.real:.2f} + {0.imag:.2f}i]'.format[n]
'[3.40 + 2.30i]'
>>> '[{c.real:.2f} + {c.imag:.2f}i]'.format[c=n]
'[3.40 + 2.30i]'
2 method. This isn't explicitly documented, but is implied by the Format Specification Mini-Language documentation which just says:

________ 16 & nbsp; & nbsp; điểm cố định. Hiển thị số dưới dạng số điểm cố định. Độ chính xác mặc định là

>>> n = 3.4+2.3j
>>> n
[3.4+2.3j]
>>> '[{0.real:.2f} + {0.imag:.2f}i]'.format[n]
'[3.40 + 2.30i]'
>>> '[{c.real:.2f} + {c.imag:.2f}i]'.format[c=n]
'[3.40 + 2.30i]'
7.

. . Vì vậy, thật dễ dàng để bỏ qua. Theo thuật ngữ cụ thể, các công trình sau đây trong cả Python 2.7,14 và 3.4.6:

print['n1: {:.2f}'.format[n1]]
print['n2: {:.2f}'.format[n2]]

Output:

n1: 3.10+4.20j
n2: 3.10-4.20j

Điều này không cung cấp cho bạn hoàn toàn kiểm soát mã trong câu trả lời ban đầu của tôi, nhưng nó chắc chắn ngắn gọn hơn nhiều [và xử lý cả các bộ phận tưởng tượng tích cực và tiêu cực tự động].

Cập nhật 2 - F -String

Các chuỗi chữ được định dạng [còn gọi là F-Strings] đã được thêm vào Python 3.6, điều đó có nghĩa là nó cũng có thể được thực hiện như thế này trong phiên bản đó hoặc muộn hơn:

print[f'n1: {n1:.2f}']  # -> n1: 3.40+2.30j
print[f'n2: {n2:.3f}']  # -> n2: 3.400-2.300j

Trong Python 3.8.0, hỗ trợ cho một nhà xác định

>>> n = 3.4+2.3j
>>> n
[3.4+2.3j]
>>> '[{0.real:.2f} + {0.imag:.2f}i]'.format[n]
'[3.40 + 2.30i]'
>>> '[{c.real:.2f} + {c.imag:.2f}i]'.format[c=n]
'[3.40 + 2.30i]'
8 đã được thêm vào các chuỗi F, cho phép bạn viết:

print[f'{n1=:.2f}']  # -> n1=3.40+2.30j
print[f'{n2=:.3f}']  # -> n2=3.400-2.300j

Stephen McInerney đã viết:

& nbsp; Tại sao phương thức .__ str __ [] phức tạp trên các số phức tạp thêm dấu ngoặc đơn?
Why does the complex.__str__[] method on complex numbers add the enclosing parentheses?

Bởi vì nó được thiết kế theo cách đó và sau đó được thực hiện để theo thiết kế.

Hoặc bạn đang hỏi tại sao nó được thiết kế theo cách đó? Tôi đoán bạn phải hỏi nhà thiết kế.

Ít nhất nó có phần tương thích với các biểu diễn StR của các loại dữ liệu khác có chứa hơn 1 giá trị, ví dụ: thập phân, bộ, tuple, ...

Nó không mong muốn

Bởi một số; những người khác thích nó. Tôi nghĩ bạn có nghĩa là bạn không muốn nó.
, và nó cũng làm cho chúng trông giống như một tuple [ngoài dấu phẩy kéo dài].

ĐÚNG VẬY.
Làm thế nào tôi có thể thoát khỏi nó, ngoài những người vụng về:

Vui lòng xác định "Clunky". & nbsp; >>> In D [0,80-0.58J] >>> In repr [D] [1: -1] 0.80-0.58j
 
>>> print d
[0.80-0.58j]
>>> print repr[d][1:-1]
0.80-0.58j

& nbsp; Làm thế nào tôi có thể thay đổi phức tạp .__ str __ []?

Tạo Subclas của riêng bạn

>>> Lớp C [phức tạp]: ... & nbsp; & nbsp; & nbsp; def __str __ [tự]: ... & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; trả về "%s-%sj"%[self.real, self.imag] ... & nbsp; & nbsp; & nbsp; def __init __ [self, r, i]: ... & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; phức tạp .__ init __ [tự, r, i] ... >>> c = c [1,2] >>> c [1+2j] >>> in c '1.0-2.0j';
...     def __str__[self]:
...         return "%s-%sj" % [self.real, self.imag]
...     def __init__[self, r, i]:
...         complex.__init__[self, r, i]
...
>>> c=C[1,2]
>>> c
[1+2j]
>>> print c
'1.0-2.0j';

Điều này có vẻ khó hiểu nhưng đây là cách để thay đổi hành vi của các đối tượng tích hợp.

-- 
Bob Gailer
Chapel Hill NC 
919-636-4239
>>> n = 3.4+2.3j
>>> n
[3.4+2.3j]
>>> '[{0.real:.2f} + {0.imag:.2f}i]'.format[n]
'[3.40 + 2.30i]'
>>> '[{c.real:.2f} + {c.imag:.2f}i]'.format[c=n]
'[3.40 + 2.30i]'
0

>>> n = 3.4+2.3j
>>> n
[3.4+2.3j]
>>> '[{0.real:.2f} + {0.imag:.2f}i]'.format[n]
'[3.40 + 2.30i]'
>>> '[{c.real:.2f} + {c.imag:.2f}i]'.format[c=n]
'[3.40 + 2.30i]'
1

Làm thế nào để bạn in các số phức tạp trong Python?

Một số phức được đại diện bởi các x + yi. Python chuyển đổi các số thực x và y thành phức tạp bằng cách sử dụng phức hợp hàm [x, y]. Phần thực có thể được truy cập bằng cách sử dụng phần thực [] và phần tưởng tượng có thể được biểu diễn bằng hình ảnh [].Python converts the real numbers x and y into complex using the function complex[x,y]. The real part can be accessed using the function real[] and imaginary part can be represented by imag[].

Phức tạp [] làm gì trong Python?

Hàm python Complex [] Hàm [] Hàm trả về một số phức bằng cách chỉ định một số thực và một số tưởng tượng.returns a complex number by specifying a real number and an imaginary number.

Làm thế nào để bạn viết tưởng tượng tôi trong Python?

Trong Python, biểu tượng J được sử dụng để biểu thị đơn vị tưởng tượng.the symbol j is used to denote the imaginary unit.

Tại sao Python sử dụng J thay vì I cho các số phức tạp?

Python đã thông qua quy ước được sử dụng bởi các kỹ sư điện. Trong trường đó, tôi được sử dụng để biểu diễn dòng điện và sử dụng J làm căn bậc hai của -1.i is used to represent current and use j as the square root of -1.

Bài Viết Liên Quan

Chủ Đề