Hướng dẫn do you need parentheses for print in python? - bạn có cần dấu ngoặc đơn để in bằng python không?

105

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

print "Hello stack over flowers"
5 từng là một tuyên bố trong Python 2, nhưng bây giờ nó đã trở thành một chức năng đòi hỏi dấu ngoặc đơn trong Python 3.

Dù sao thì có cách nào để đàn áp những dấu ngoặc đơn này trong Python 3 không? Có lẽ bằng cách xác định lại chức năng in?

Vì vậy, thay vì

print ["Hello stack over flowers"]

Tôi có thể gõ:

print "Hello stack over flowers"

Yu Hao

Huy hiệu vàng 117K4444 gold badges229 silver badges284 bronze badges

Hỏi ngày 20 tháng 8 năm 2015 lúc 15:53Aug 20, 2015 at 15:53

9

Mặc dù bạn cần một cặp dấu ngoặc đơn để in trong Python 3, bạn không còn cần một khoảng trống sau

print "Hello stack over flowers"
5, bởi vì đó là một chức năng. Vì vậy, đó chỉ là một ký tự phụ.

Nếu bạn vẫn thấy việc gõ một cặp dấu ngoặc đơn là "tốn thời gian không cần thiết", bạn có thể làm

print "Hello stack over flowers"
7 và lưu một vài ký tự theo cách đó. Bởi vì bạn có thể liên kết các tham chiếu mới với các chức năng nhưng không phải với các từ khóa, bạn chỉ có thể thực hiện phím tắt
print "Hello stack over flowers"
5 này trong Python 3.

Python 2:

>>> p = print
  File "", line 1
    p = print
            ^
SyntaxError: invalid syntax

Python 3:

>>> p = print
>>> p['hello']
hello

Nó sẽ làm cho mã của bạn không thể đọc được, nhưng bạn sẽ lưu một vài ký tự mỗi khi bạn in thứ gì đó.

Đã trả lời ngày 20 tháng 8 năm 2015 lúc 17:17Aug 20, 2015 at 17:17

TigerhawkT3TigerhawkT3TigerhawkT3

47.5K6 Huy hiệu vàng57 Huy hiệu bạc89 Huy hiệu đồng6 gold badges57 silver badges89 bronze badges

7

Sử dụng

print "Hello stack over flowers"
5 mà không có dấu ngoặc đơn trong mã Python 3 không phải là một ý tưởng tốt. Cũng không tạo ra bí danh, v.v ... Nếu đó là một công cụ phá vỡ thỏa thuận, hãy sử dụng Python 2.

Tuy nhiên,

print "Hello stack over flowers"
5 không có dấu ngoặc đơn có thể hữu ích trong vỏ tương tác. Đây không thực sự là vấn đề giảm số lượng nhân vật, mà là tránh cần phải nhấn ca hai lần mỗi khi bạn muốn in một cái gì đó trong khi bạn đang gỡ lỗi. Ipython cho phép bạn gọi các chức năng mà không cần sử dụng dấu ngoặc đơn nếu bạn bắt đầu dòng với dấu gạch chéo:

Python 3.6.6 [default, Jun 28 2018, 05:43:53]
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: var = 'Hello world'

In [2]: /print var
Hello world

Và nếu bạn bật

>>> p = print
  File "", line 1
    p = print
            ^
SyntaxError: invalid syntax
1, bạn thậm chí sẽ không cần gõ dấu gạch chéo:

In [3]: %autocall
Automatic calling is: Smart

In [4]: print var
------> print[var]
Hello world

Đã trả lời ngày 15 tháng 5 năm 2019 lúc 18:06May 15, 2019 at 18:06

Michaumichaumichau

2.04121 huy hiệu bạc15 huy hiệu đồng21 silver badges15 bronze badges

1

Sử dụng Autohotkey để tạo macro. AHK miễn phí và chết đơn giản để cài đặt. www.autohotkey.com

Bạn có thể gán vĩ mô cho, giả sử, alt-p:

!p::send print[]{Left}

Điều đó sẽ làm cho alt-p đưa ra in [] và di chuyển con trỏ của bạn vào bên trong parens.

Hoặc, thậm chí tốt hơn, để giải quyết vấn đề trực tiếp của bạn, bạn xác định một AutorePlace và giới hạn phạm vi của nó khi tệp mở có phần mở rộng .Py:

#IfWinActive .py            ;;; scope limiter
:b*:print ::print[]{Left}   ;;; I forget what b* does. The rest should be clear 
#IfWinActive                ;;; remove the scope limitation

Đây là một giải pháp được đảm bảo, không đau, minh bạch.

Đã trả lời ngày 2 tháng 2 năm 2017 lúc 18:37Feb 2, 2017 at 18:37

Không. Đó sẽ luôn là lỗi cú pháp trong Python 3. Cân nhắc sử dụng

>>> p = print
  File "", line 1
    p = print
            ^
SyntaxError: invalid syntax
2 để dịch mã của bạn sang Python 3

Đã trả lời ngày 20 tháng 8 năm 2015 lúc 15:56Aug 20, 2015 at 15:56

HoldenWebkeepenWebholdenweb

29,4K7 Huy hiệu vàng51 Huy hiệu bạc73 Huy hiệu đồng7 gold badges51 silver badges73 bronze badges

4

Kịch bản AHK là một ý tưởng tuyệt vời. Chỉ dành cho những người quan tâm, tôi cần phải thay đổi nó một chút để làm việc cho tôi:

SetTitleMatchMode,2         ;;; allows for a partial search 
#IfWinActive, .py           ;;; scope limiter to only python files
:b*:print ::print[]{Left}   ;;; I forget what b* does
#IfWinActive                ;;; remove the scope limitation

Đã trả lời ngày 29 tháng 8 năm 2017 lúc 1:28Aug 29, 2017 at 1:28

Cuối cùng tôi đã tìm ra Regex để thay đổi tất cả những thứ này trong các kịch bản ví dụ Python2 cũ. Nếu không hãy sử dụng 2to3.py.

Hãy thử nó trên regexr.com, không hoạt động trong NP ++ [?]:

find:     [?>> p = print
  File "", line 1
    p = print
            ^
SyntaxError: invalid syntax
3 như trong iStreams C ++.

Đã trả lời ngày 21 tháng 10 năm 2021 lúc 15:23Oct 21, 2021 at 15:23

Nadapeznadapeznadapez

Huy hiệu vàng 2.4031 Huy hiệu bạc25 Huy hiệu đồng1 gold badge18 silver badges25 bronze badges

Bạn không thể, bởi vì cách duy nhất bạn có thể làm điều đó mà không có dấu ngoặc đơn là nó là một từ khóa, như trong Python 2. Bạn không thể định nghĩa thủ công một từ khóa, vì vậy không.

Đã trả lời ngày 20 tháng 8 năm 2015 lúc 15:57Aug 20, 2015 at 15:57

Trong Python 3, in là một hàm, trong khi nó từng là một tuyên bố trong các phiên bản trước. Như @holdenweb đề xuất, sử dụng 2TO3 để dịch mã của bạn.

Đã trả lời ngày 20 tháng 8 năm 2015 lúc 15:59Aug 20, 2015 at 15:59

Tôi đã cấu hình VIM để tự động thêm các parens xung quanh các cuộc gọi DEF gỡ lỗi của tôi khi tôi viết tệp. Tôi sử dụng một người theo dõi đơn giản tự động chạy các bản cập nhật của mình khi dấu thời gian thay đổi. Và tôi đã xác định Ctrl+P để xóa tất cả. Lời cảnh báo duy nhất là tôi phải có chúng một mình trên một dòng, điều mà tôi luôn luôn làm. Tôi đã nghĩ về việc cố gắng lưu và khôi phục ánh sáng tìm kiếm trước đây của tôi. Và tôi đã tìm một giải pháp trên ngăn xếp. Nhưng bây giờ nó trông hơi quá sâu. Bây giờ cuối cùng tôi cũng có thể quay lại để gỡ lỗi theo phong cách Ruby với

>>> p = print
  File "", line 1
    p = print
            ^
SyntaxError: invalid syntax
4 nhanh chóng.CTRL+p to delete them all. The only caveat is that I have to have them alone on a line, which I pretty much always do. I thought about trying to save and restore my previous search-highlight. And I did find a solution on Stack. But it looked a little too deep for now. Now I can finally get back to debugging Ruby-style with a quick
>>> p = print
  File "", line 1
    p = print
            ^
SyntaxError: invalid syntax
4.

print "Hello stack over flowers"
3

Tôi sử dụng những defs Python này để thực hiện in gỡ lỗi của tôi.

print "Hello stack over flowers"
4

Đã trả lời ngày 29 tháng 3 lúc 19:42Mar 29 at 19:42

Tại sao chúng ta sử dụng print [] trong python?

Hàm in [] in thông báo được chỉ định lên màn hình hoặc thiết bị đầu ra tiêu chuẩn khác. Thông báo có thể là một chuỗi hoặc bất kỳ đối tượng nào khác, đối tượng sẽ được chuyển đổi thành một chuỗi trước khi được ghi vào màn hình.prints the specified message to the screen, or other standard output device. The message can be a string, or any other object, the object will be converted into a string before written to the screen.

Làm thế nào để bạn loại bỏ dấu ngoặc đơn khỏi in trong Python?

Sử dụng hàm thay thế [] để loại bỏ dấu ngoặc đơn khỏi chuỗi trong python.Trong Python, chúng tôi sử dụng hàm thay thế [] để thay thế một số phần của chuỗi bằng một chuỗi khác.Chúng ta có thể sử dụng chức năng này để loại bỏ dấu ngoặc đơn khỏi chuỗi trong Python bằng cách thay thế các lần xuất hiện của chúng bằng một ký tự trống. to Remove Parentheses from String in Python. In Python, we use the replace[] function to replace some portion of a string with another string. We can use this function to remove parentheses from string in Python by replacing their occurrences with an empty character.

Làm thế nào để bạn trở lại mà không có dấu ngoặc đơn trong Python?

Trong Python, bạn có thể trả về nhiều giá trị bằng cách trả về chúng được phân tách bằng dấu phẩy.Trong Python, các giá trị phân tách bằng dấu phẩy được coi là các bộ đếm không có dấu ngoặc đơn, ngoại trừ khi được yêu cầu bởi cú pháp.return them separated by commas. In Python, comma-separated values are considered tuples without parentheses, except where required by syntax.

Tại sao lỗi print là lỗi?

Lưu ý: Thông báo lỗi lệnh "Lỗi Syntax" trên bản in là loại lỗi PostScript.Điều này có thể được gây ra bởi một trình điều khiển in tham nhũng hoặc vấn đề giao tiếp mạng gây ra một công việc in tham nhũng.a Corrupt Print Driver or a Network Communication Issue causing a Corrupt Print Job.

Bài Viết Liên Quan

Chủ Đề