Vỏ Python dán nhiều dòng

Các dòng bắt đầu bằng ... được giữ nguyên. Tôi ngạc nhiên là chúng không bị xóa bởi tùy chọn copybutton_only_copy_prompt_lines. Trong bất kỳ trường hợp nào. Điều tôi thực sự muốn là coi ... cũng là dấu nhắc, tôi. e. giữ nguyên các dòng nhưng xóa .... Điều này có thể liên quan đến #52

  • Bảng đầu ra ở cuối, cũng được sao chép. Một lần nữa, điều này sẽ không xảy ra với tùy chọn copybutton_only_copy_prompt_lines hiện tại

  • Tôi không giỏi Js lắm nhưng nếu các bạn thừa nhận vấn đề thì tôi có thể PR. Nhưng nếu nó dễ dàng với bạn, hãy tiếp tục 😃

    Trong nhiều năm, tôi đã viết python trong một trình soạn thảo văn bản [sang chảnh] và dán các đoạn mã vào shell đang chạy python để thực thi chúng. Bằng cách này, tôi có thể thực hiện thay đổi nhanh chóng, thử nghiệm mà không cần phải chạy đi chạy lại tất cả mã. Tôi không muốn chờ đợi lặp đi lặp lại tất cả các lần nhập và khởi chạy cũng như các bước đầu tiên của một quy trình dài. Tôi có thể nhanh chóng mân mê vài dòng ở giữa chương trình. Cách làm việc này đã rất tuyệt vời trong nhiều năm, nhiều thập kỷ.  

    Rồi vài ngày trước, không còn nữa. Dán nhiều hơn một dòng sẽ báo lỗi. Trăn 3. 9. 0 và 3. 9. 1 có một trình phân tích cú pháp mới không thể nuốt nhiều dòng cùng một lúc. Rõ ràng vấn đề đã được khắc phục trong 3. 9. 2 nhưng tôi sẽ không nâng cấp bất cứ thứ gì cho đến khi nào đó "sau này".   

    Video YT này cho thấy vấn đề. https. //www. youtube. com/watch?v=CrTzBpVdcVM

    Tôi đã hỏi về vấn đề này trên StackOverflow , lúc đầu tôi cho rằng tôi có cú pháp sai hoặc đã sử dụng  [ ] nơi lẽ ra tôi phải có { } hoặc một số thứ tương tự. Tôi luôn bắt đầu với việc cho rằng mình không tập luyện, quên một số chi tiết, có một nơ-ron khác cắn bụi. Nhưng đó là Python

    Sorry, I cannot reproduce that behavior. The output you show isn't what I would expect, in any case.
    
    $ python3.8
    Python 3.8.7 [v3.8.7:6503f05dd5, Dec 21 2020, 12:45:15]
    [Clang 6.0 [clang-600.0.57]] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> def f[]:
    ..     print["hello world"]
    ...
    >>> ^D
    $ python3.9
    Python 3.9.1 [v3.9.1:1e5d33e9b9, Dec  7 2020, 12:44:01]
    [Clang 12.0.0 [clang-1200.0.32.27]] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> def f[]:
    ..     print["hello world"]
    ...
    >>> ^D
    
    Note the missing '...' continuation prompts.  So can you verify that the text when you paste it includes just a standard linefeed [LF] control character as the end-of-line delimiter?  Other possible differences might be whether the python in use was linked with the BSD libedit library or with GNU readline but that shouldn't make a difference unless you have some non-default options in their configuration files.  You can check which one is in use with this:
    
    $ python3.8 -c "import readline;print[readline.__doc__]"
    Importing this module enables command line editing using GNU readline.
    $ python3.9 -c "import readline;print[readline.__doc__]"
    Importing this module enables command line editing using libedit readline.
    
    If all else fails, from where did you obtain the pythons that you are using?  And in what environment are you running those commands, i.e. the macOS Terminal.app?

    Nhân tiện, IDE PyScripter cho phép bạn diễn giải mã nguồn của mình mà không cần phải tạo tệp chính thức. Tôi ghét vỏ Python, chỉ một lớp lót thôi cũng được

    Nếu tôi bị mắc kẹt trên một…

    Tất cả 6 câu trả lời

    Cầu chì 17 Áp phích chiếu sáng

    14 năm trước

    Tôi mới bắt đầu làm quen với Python và đã có khoảng thời gian tuyệt vời khi nhập các lệnh GUI của Tkinter vào trình bao Python [ActivePython 2. 5].
    Thật thú vị khi nhập từng lệnh một và thấy các thành phần xuất hiện theo thời gian thực [thay vì quy trình thông thường phải biên dịch toàn bộ trước].

    Dù sao, tôi tự hỏi liệu có cách nào để dán nhiều dòng mã nguồn [cùng một lúc]

    Cũng. Có chức năng nào khiến chuỗi được hiểu là lệnh không?

    Tôi đề xuất tiêu chuẩn IDLE thay thế. Tôi thấy ActivePython thiếu các tính năng [vùng thụt lề, vùng thụt lề, vùng chú thích, vùng không ghi chú] nhưng lại không chứa các tính năng mới [hữu ích]

    Đối với dán nhiều dòng. tốt, bạn có thể dán nhiều dòng, nhưng dường như nó chỉ đánh giá dòng đầu tiên

    Thay vào đó, những gì bạn có thể làm là lồng nhiều dòng đó vào một hàm, sau đó dán nó vào

    def test[]:
      line1 = 'bah'
      line2 = 'foo'
      print line2 + line1

    bây giờ gõ test[] cho kết quả 'foobah'

    trong khi

    line1 = 'bah'
    line2 = 'foo'
    in dòng2 + dòng1

    sẽ chỉ đánh giá line1 = 'bah'

    Điều này chỉ dễ dàng hơn một chút so với việc tạo một tập lệnh thực tế, vì bạn có thể tránh tạo một tệp chỉ để kiểm tra

    Sử dụng lại các chuỗi làm lệnh. bối cảnh là gì?

    Ồ, và tôi thực sự khuyên dùng wxPython trên Tkinter. IMHO mạnh mẽ, trực quan và dễ sử dụng hơn nhiều. Cũng mới hơn. http. //www. wxpython. tổ chức/trích dẫn. php

    Lưu ý các từ của Eric S. Raymond và Guido van Rossum [người sáng tạo Python]

    0 0

    Chia sẻ

    sneekula 969 Gần thành Maven đăng bài

    14 năm trước

    Hàm Python eval[] sẽ lấy một chuỗi và cố gắng đánh giá/diễn giải nó

    Nhân tiện, IDE PyScripter cho phép bạn diễn giải mã nguồn của mình mà không cần phải tạo tệp chính thức. Tôi ghét vỏ Python, chỉ một lớp lót thôi cũng được

    Nếu tôi bị mắc kẹt trên một hòn đảo và chỉ được phép sử dụng một bộ công cụ Python GU, tôi sẽ dùng wxPython. Trên thực tế, Fuse đã để lại một bài giới thiệu rất hay về lập trình wxPython tại đây

    0 0

    Chia sẻ

    DustinS 0 Áp phích dành cho người mới

    14 năm trước

    Tôi đã thử eval['a=1'] nhưng không được. Tôi đã tra cứu cú pháp của eval và phát hiện ra rằng exec chính là hàm mà tôi đang tìm kiếm

    >BTW, IDE PyScripter cho phép bạn diễn giải mã nguồn của mình mà không cần phải tạo tệp chính thức. Tôi ghét vỏ Python, chỉ một lớp lót thôi cũng được

    Thanks

    Có cách nào để chạy một đoạn mã nguồn, sau đó mở trình bao có quyền truy cập [và có thể thay đổi] các biến và hàm giống như đã được xác định trong tập lệnh không?

    0 0

    Chia sẻ

    DustinS 0 Áp phích dành cho người mới

    14 năm trước

    > Đối với việc dán nhiều dòng. tốt, bạn có thể dán nhiều dòng, nhưng dường như nó chỉ đánh giá dòng đầu tiên

    >Những gì bạn có thể làm thay vào đó là lồng nhiều dòng đó vào một hàm, rồi dán nó vào

    >

    def test[]:
      line1 = 'bah'
      line2 = 'foo'
      print line2 + line1

    cảm ơn vì tiền hỗ trợ

    0 0

    Chia sẻ

    sneekula 969 Gần thành Maven đăng bài

    14 năm trước

    Có một IDE nhỏ gọi là PyPE cho phép bạn chạy mã đã chọn trong trình bao. Nó có cửa sổ shell cao cấp hơn của riêng mình

    Chủ Đề