Hướng dẫn how to use skulpt python - cách sử dụng python skulpt

Nhúng skulpt

Nếu bạn muốn nhúng một chút mã đẹp mắt mà người dùng của bạn có thể chỉnh sửa, Trinket.io có thể giúp bạn với điều đó! Bạn có thể đặt ví dụ trên trang web của họ và sau đó tạo mã cho một iframe mà bạn có thể nhúng vào trang của mình.

Người dùng có thể phối lại ví dụ của bạn và lưu công việc của họ vào tài khoản Trinket miễn phí. Remix your example and save their work to a free Trinket account.

Sử dụng nút Chia sẻ trong Trinket ở trên để nhận mã nhúng. Thông tin thêm về việc dỡi đồ trang sức ở đây.

Sử dụng skulpt với html

Muốn các JS được biên dịch bao gồm trong trang web của bạn? Tất cả mọi thứ bạn cần là trong zip này: skulpt-dist. Sau khi thêm skulpt.js hoặc skulpt-min.jsskulpt-stdlib.js vào dự án của bạn, hãy tải JavaScript ngay trước thẻ đóng.

Chúng tôi làm việc để đưa SKULPT lên CDN phổ biến để bạn có thể tải chúng ngay từ đó.

Khi HTML của bạn đang tải skulpt, đây là một ví dụ thực sự đơn giản để bạn đi. Bạn có thể sao chép và dán hoặc lấy mã từ ý chính này.

Sử dụng các mô -đun tùy chỉnh

Tính năng mới này cho phép bạn tạo và lưu trữ các mô -đun của riêng bạn để sử dụng trong Skulpt. Ý chính sau đây cho thấy cách đưa một trong số họ vào một trang.

Tùy chỉnh các mô -đun sau khi nhập

Nếu bạn muốn tùy chỉnh cách một mô -đun hoạt động, bạn có thể sử dụng móc onAfterImport. Đây là một ý chính về cách những người đồ trang sức làm điều đó.

Phát hành

1.3.0

Đây là danh sách các thay đổi được thực hiện với phiên bản này. Một số là nội bộ và một số khác là một phần của API Skulpt (nếu chúng tôi có một 🙂).

Python 2 Không chính xác: (Đối với những người vẫn đang sử dụng Python 2 trong sản xuất)

  • long
    • Khi thêm hai đối tượng dài, kết quả có thể là int
  • method
    • Các phương pháp không bị ràng buộc không còn được hỗ trợ
  • Lớp base cho tất cả các đối tượng loại sẽ là object ngay cả khi lớp cơ sở không được chỉ định

API SKULPT

  • Sk.builtin.object.prototype.genericGetAttr -> skulpt-min.js0
  • skulpt-min.js1 -> skulpt-min.js2
  • skulpt-min.js3 bị loại bỏ và thay thế bằng skulpt-min.js4
  • skulpt-min.js5 được thay thế bởi thư viện JSBI
  • skulpt-min.js6 bị loại bỏ - Kế thừa độc quyền được xử lý bởi skulpt-min.js7
  • skulpt-min.js8 Trả về chuỗi JS (trước đó skulpt-min.js9)
  • skulpt-stdlib.js0 trở thành mặc định. Những người muốn sử dụng skulpt-stdlib.js1 phải xác định điều này trong đối tượng skulpt-stdlib.js2.
  • skulpt-stdlib.js3, skulpt-stdlib.js4, skulpt-stdlib.js5 bị xóa - sử dụng skulpt-stdlib.js6, skulpt-stdlib.js7, skulpt-stdlib.js8 thay thế.

Chữ ký cuộc gọi của tích hợp

  • skulpt-stdlib.js9 là bắt buộc đối với (gần như) tất cả các loại tích hợp
    • 3 ngoại lệ - onAfterImport0, onAfterImport1, onAfterImport2
    • 3 này sẽ luôn trả lại (các) hằng số tương ứng của chúng và do đó không bắt buộc phải được sử dụng làm hàm tạo.
  • Các tham số bị hạn chế để truy cập trực tiếp một hàm tạo thuộc loại onAfterImport3
  • Lỗi xác nhận được nâng lên trong chế độ Dev nếu skulpt-stdlib.js9 không được sử dụng - nếu sử dụng trong sản xuất, các lỗi này sẽ không được nêu ra. Đây có thể là một gotcha cho bất cứ ai sử dụng phiên bản này.
loại hìnhparamsghi chú
onAfterImport5onAfterImport6Cũng có thể được gọi với một đối tượng Python có onAfterImport7 được xác định
onAfterImport8onAfterImport9Cũng có thể được gọi với một đối tượng Python có long0 được xác định
long1long2& nbsp;
long3long4Mảng các đối tượng PY hoặc có thể được gọi bằng một con trăn có thể
long5long4Mảng các đối tượng PY hoặc có thể được gọi bằng một con trăn có thể
long5long4Mảng các đối tượng PY hoặc có thể được gọi bằng một con trăn có thể
long5long4Mảng các đối tượng PY hoặc có thể được gọi bằng một con trăn có thể
long5Mảng các đối tượng PY có thể được gọi bằng một con trăn có thể& nbsp;
long3Mảng các đối tượng PY có thể được gọi bằng một con trăn có thể& nbsp;

long3

long4

  • Mảng các đối tượng PY hoặc có thể được gọi bằng một con trăn có thể
  • long5
  • Mảng các đối tượng PY có thể được gọi bằng một con trăn có thể
  • long7
  • long9
    • Các cặp khóa/giá trị - Chỉ các đối tượng Python
    • method8
    • method9
    • skulpt-min.js9
  • int2
  • onAfterImport0
  • Lưu ý rằng bạn chỉ nên chuyển một số cho hàm tạo JavaScript int nếu giá trị tuyệt đối của nó nhỏ hơn int6. Tương tự như vậy, bạn chỉ nên chuyển một int7 cho hàm tạo INT nếu nó giá trị tuyệt đối lớn hơn int6.
  • Sự thay đổi chính
  • Tất cả các đối tượng loại hiện có thể gọi được bằng các phương thức int9 tương ứng của chúng được kế thừa từ method0

Tất cả các đối tượng loại gốc sẽ yêu cầu phương thức method1 và method2 (có thể được kế thừa bởi method3)

  • Tất cả các đối tượng loại là các phiên bản JavaScript của method0
  • Tất cả các đối tượng được kế thừa duy nhất theo kế thừa JavaScript
  • Tất cả các đối tượng loại gốc hiện có các đối tượng sau và thay thế việc sử dụng method5 cho tất cả các phương thức/phương thức Dunder.
  • Sk.builtin.object.prototype.genericGetAttr5 bây giờ có thể không bị ràng buộc, hãy xem lời giải thích này
  • method5 Đối tượng đạt được Sk.builtin.object.prototype.genericGetAttr7 trong mã biên dịch
  • API để xây dựng các loại bản địa
    • Sk.builtin.object.prototype.genericGetAttr8
  • Lớp Sk.builtin.object.prototype.genericGetAttr9 được thêm vào
  • skulpt-min.js00 iterators được thêm vào cho skulpt-min.js01, skulpt-min.js02, skulpt-min.js03
  • Nhà điều hành skulpt-min.js04 có giá trị cho object4, skulpt-min.js06, skulpt-min.js07
  • skulpt-min.js08 có các khe cắm số được thêm
  • Python Docstrings hiện đang hoạt động

skulpt-min.js09

  • skulpt-min.js10
  • skulpt-min.js11
  • skulpt-min.js12
  • skulpt-min.js13
  • skulpt-min.js14
  • skulpt-min.js15
  • skulpt-min.js16
  • skulpt-min.js17
  • skulpt-min.js18
  • skulpt-min.js19
  • skulpt-min.js20
  • skulpt-min.js21
  • skulpt-min.js22
  • skulpt-min.js23
  • skulpt-min.js24

skulpt-min.js25

  • skulpt-min.js26
  • skulpt-min.js27
  • skulpt-stdlib.js9
  • skulpt-min.js29
  • skulpt-min.js30
  • skulpt-min.js31
  • skulpt-min.js32
  • skulpt-min.js33
  • skulpt-min.js34

skulpt-min.js35

  • skulpt-min.js36 - sẽ trả về biểu diễn nội bộ của số nguyên - hoặc không xác định nếu không thể lập chỉ mục - có thể là một số hoặc một Bigint (JSBI)
  • skulpt-min.js37 - không skulpt-min.js36 nhưng ném lỗi nếu số không thể lập chỉ mục - với tham số tin nhắn tùy chọn.
  • skulpt-min.js39 - ném lỗi nếu đối tượng không thể lập chỉ mục, luôn luôn trả về một số, tùy chọn để ném lỗi nếu chỉ mục lớn hơn int6. Đây là phương pháp GOTO cho hầu hết các công trình hiện nay.
  • skulpt-min.js41 - một lớp Python dễ dàng kết thúc một trình lặp lại
  • skulpt-min.js42 - Việc thực hiện cansuspend tùy chọn trả về một mảng từ một trình lặp Python
  • skulpt-min.js43 - như skulpt-min.js44 nhưng với một mảng chứ không phải là một trình lặp python

skulpt-min.js45

  • Chứa tất cả các thông tin về ánh xạ các khe cho Dunders và ngược lại.

thay đổi khe chỉ liên quan đến các nhà phát triển đó và những chức năng viết khe trực tiếp - hy vọng rất ít người dùng only relevant for those developers and those writing slot functions directly - hopefully very few users

  • skulpt-min.js46 được thay thế bằng skulpt-min.js47 trong cơ sở mã
  • ________ 148/________ 149 được thay thế bằng skulpt-min.js50
  • skulpt-min.js51 được thay thế bằng skulpt-min.js52 và phiên bản chuyển sang PY2/PY3 chăm sóc ánh xạ phương pháp Dunder thích hợp.
  • skulpt-min.js53 được thay thế bởi skulpt-min.js50 (theo CPython)
    • Xóa VS Cài đặt một mục dựa trên chữ ký cuộc gọi
    • skulpt-min.js55 -> Đặt mục
    • skulpt-min.js56 -> Xóa mục
  • Nếu một func Dunder được xác định trên lớp do người dùng xác định thì hàm khe được đảm bảo.
    • ví dụ. skulpt-min.js57 Đảm bảo xác định skulpt-min.js47.
    • Một hàm khe được xác định bởi Skulpt theo cách này ném các lỗi thích hợp và chuyển đổi giá trị trả về thành đối tượng bên trong thích hợp.
    • skulpt-min.js47 được gọi là nội bộ: skulpt-min.js57 được gọi bằng skulpt-min.js61.
    • Kết quả được kiểm tra là int và sau đó được chuyển đổi thành skulpt-min.js63 kể từ khi skulpt-min.js47 mong đợi một skulpt-min.js63.
  • skulpt-min.js66 bị loại bỏ khỏi một số công trình xây dựng theo Python 3.8 thay đổi
  • Nếu skulpt-min.js67 được xác định - các hàm bao bọc skulpt-min.js68, v.v.
    • Trong thực tế - sự tồn tại của các khe này được đảm bảo vì chúng được thừa hưởng từ method3
  • ________ 172/________ 173 là mảng JS chứ không phải long5
  • skulpt-min.js66 và skulpt-min.js76 cho các lỗi đã được thay đổi theo CPython.
  • skulpt-min.js77 -> onAfterImport7
  • skulpt-min.js79 -> skulpt-min.js80
  • skulpt-min.js81 -> long0
  • Trả về giá trị cho các hàm khe nhất định đã thay đổi
    • skulpt-min.js83 - sẽ trả về số JavaScript nhỏ hơn int6 có thể là tư thế hoặc âm
    • Is
  • skulpt-min.js86 đã bị xóa khỏi các trường hợp method5 và skulpt-min.js88 có lợi cho skulpt-min.js89 vì nó skulpt-min.js86 phải là skulpt-min.js91

cờ - chỉ có liên quan trong nội bộ

  • skulpt-min.js92 được sử dụng cho một số đối tượng loại
  • skulpt-min.js93 Mỗi đối tượng skulpt sẽ có cờ này. Một cách dễ dàng để xác định xem bạn có đối tượng skulpt hay đối tượng JavaScript
  • skulpt-min.js94 Tất cả các loại của các loại skulpt-min.js95
  • skulpt-min.js96 Chúng ta có cần phải đi lên MRO hay chúng ta có thể kiểm tra object1
  • skulpt-min.js98 Cơ sở có nguồn gốc nhiều nhất là lớp skulpt bản địa
  • skulpt-min.js99 Các lớp học tích hợp là trẻ em trực tiếp của object

những thay đổi nội bộ khác

  • Việc sử dụng skulpt-stdlib.js01 đã bị loại bỏ để cải thiện hiệu suất trong việc thực hiện skulpt-stdlib.js02
    • Đó là hiệu suất có lợi khi rời khỏi các khe cắm skulpt-stdlib.js03 tương ứng
    • int Các khe cắm Binop chỉ đối phó với ví dụ int
    • skulpt-stdlib.js06 Các khe cắm Binop đối phó với các trường hợp skulpt-stdlib.js06 và int
    • skulpt-stdlib.js09 Các khe cắm Binop đối phó với các trường hợp skulpt-stdlib.js09, skulpt-stdlib.js06 và int
  • long đã được loại bỏ một cách hiệu quả khi một số lớn hơn int6, giá trị ____ ____215 là skulpt-stdlib.js16. Nếu skulpt-stdlib.js16 không có sẵn trong trình duyệt thì thư viện skulpt-stdlib.js18 được sử dụng để sao chép chức năng skulpt-stdlib.js16.
  • object5 và skulpt-stdlib.js21 bây giờ chia sẻ phần lớn việc triển khai của họ
  • skulpt-stdlib.js22 được viết lại mô -đun bằng API mới
  • skulpt-stdlib.js23 Mô -đun viết lại bằng API mới - Đây là các đối tượng loại thay vì các trường hợp của skulpt-stdlib.js24
  • skulpt-stdlib.js25 được viết lại mô -đun bằng API mới
  • skulpt-stdlib.js26 Mô -đun thích nghi với API mới
  • object4 và object5 Lỗi ném nếu các đối tượng thay đổi kích thước trong quá trình lặp theo cpython.
    • được kiểm tra đầy đủ
  • skulpt-stdlib.js29 chuyển đến skulpt-stdlib.js30
  • skulpt-stdlib.js31 bị loại bỏ
  • skulpt-stdlib.js32 bị loại bỏ
  • skulpt-stdlib.js33 bị loại bỏ
  • skulpt-stdlib.js34 Không nên được gọi bởi đối tượng JS (xem các thay đổi trong skulpt-stdlib.js35)
  • skulpt-stdlib.js36 được thêm vào skulpt-stdlib.js37, đây là cách nhanh chóng để tra cứu skulpt-stdlib.js38 Chìa khóa
  • skulpt-stdlib.js39 thay vì có các giá trị là skulpt-stdlib.js40 của các cặp giá trị chính
  • skulpt-stdlib.js41 sẽ không còn thêm skulpt-stdlib.js42 vào đối tượng - thay vào đó, nó sử dụng bản đồ JavaScript và gán các đối tượng cho một số ngẫu nhiên nhỏ hơn int6 thay vì tăng giá trị băm mỗi lần.
  • skulpt-stdlib.js44 Đối với các số nguyên, đây sẽ có cùng giá trị với skulpt-stdlib.js45 đối với các số nguyên, đây sẽ là một số ngẫu nhiên nhỏ hơn int6. Trước đây đây là con số được làm tròn xuống - nhưng điều này tạo ra rất nhiều va chạm.

0.10.0

Bản phát hành mới nhất này chứa rất nhiều lòng tốt.

  • Bây giờ bạn có thể kế thừa từ các loại tích hợp bao gồm các trường hợp ngoại lệ!
  • Dọn dẹp chính các loại số
  • Sửa lỗi cho phép lặp khi sử dụng các lớp con với chúng tôi không có skulpt-stdlib.js47
  • Sửa lỗi và tính đầy đủ hơn đối với các phương pháp của Dunder
  • loại phức tạp được thêm vào
  • Lệnh Brun được thêm vào Skulpt để dễ dàng truy cập vào gỡ lỗi trong trình duyệt
  • Nhiều sửa lỗi lỗi nhỏ.

Skulpt Python là gì?

Skulpt là một triển khai hoàn toàn trong trình duyệt của Python.Không có tiền xử lý, các plugin hoặc hỗ trợ phía máy chủ, chỉ cần viết python và tải lại.Cắt/Sao chép/Dán/Hoàn tác/Làm lại với các phím tắt thông thường.Tab không thụt đầu vào.Cảm ơn Codemirror cho trình soạn thảo văn bản.an entirely in-browser implementation of Python. No preprocessing, plugins, or server-side support required, just write Python and reload. cut/copy/paste/undo/redo with the usual shortcut keys. Tab does decent indenting. Thanks to CodeMirror for the text editor.

Tôi có thể sử dụng Python trong HTML không?

Bạn có thể sử dụng Python trong mã HTML của mình.Bạn không cần biết JavaScript.Pyscript không chỉ là HTML, nó mạnh hơn, bởi vì hệ sinh thái phong phú và dễ tiếp cận của các thư viện Python.. You don't need to know javascript. PyScript is not just HTML only, it is more powerful, because of the rich and accessible ecosystem of Python libraries.