Hướng dẫn julia python cheat sheet - julia python cheat sheet
Nội phân Chính showShow Show
Là gì…?Julia là một ngôn ngữ lập trình nguồn mở, đa nền tảng, cấp cao, hiệu suất cao cho điện toán kỹ thuật. Julia có máy ảo cấp thấp LLVM (LLVM) là cơ sở hạ tầng trình biên dịch để xây dựng mã máy trung gian và/hoặc mã nhị phân. -dựa trên tổng hợp JIT chỉ trong thời gian xảy ra vào thời gian chạy thay vì trước khi thực hiện, điều đó có nghĩa là nó cung cấp cả tốc độ của mã được biên dịch và tính linh hoạt của việc giải thích. Trình biên dịch phân tích các loại mã và thông tin, sau đó mã LLVM được tạo, lần lượt được biên dịch thành mã gốc. Trình biên dịch cho phép nó phù hợp với hiệu suất của các ngôn ngữ như C và Fortran mà không gặp rắc rối của mã cấp thấp. Bởi vì mã được biên dịch trên con ruồi, bạn có thể chạy mã (bit của) trong một shell hoặc replet-eval-eval in-loop, là một phần của quy trình làm việc được đề xuất. Low-Level Virtual Machine (LLVM) is a compiler infrastructure to build intermediate and/or binary machine code. -based JIT Just-In-Time compilation occurs at run-time rather than prior to execution, which means it offers both the speed of compiled code and the flexibility of interpretation. The compiler parses the code and infers types, after which the LLVM code is generated, which in turn is compiled into native code. compiler that allows it to match the performance of languages such as C and FORTRAN without the hassle of low-level code. Because the code is compiled on the fly you can run (bits of) code in a shell or REPL Read-Eval-Print-Loop , which is part of the recommended workflow . Julia được gõ linh hoạt, cung cấp nhiều công văn vì các loại đối số chức năng được xác định tại thời gian chạy, trình biên dịch có thể chọn triển khai được tối ưu hóa cho các đối số được cung cấp và kiến trúc bộ xử lý. , và được thiết kế cho sự song song và tính toán phân tán. Because function argument types are determined at run-time, the compiler can choose the implementation that is optimized for the provided arguments and the processor architecture. , and is designed for parallelism and distributed computation. Julia có một người quản lý gói tích hợp. Julia có nhiều chức năng toán học tích hợp, bao gồm các chức năng đặc biệt (ví dụ: gamma) và hỗ trợ các số phức tạp ngay lập tức. Julia cho phép bạn tạo mã tự động nhờ các macro lấy cảm hứng từ Lisp. Julia được tạo ra vào năm 2012. Điều cơ bản
Người vận hành
Shell a.k.a.
Thư viện tiêu chuẩnĐể giúp Julia tải nhanh hơn, nhiều chức năng cốt lõi tồn tại trong các thư viện tiêu chuẩn đi kèm với Julia. Để làm cho các chức năng của họ có sẵn, hãy sử dụng 6. Dưới đây là một số thư viện tiêu chuẩn và các chức năng phổ biến.
Quản lý góiCác gói phải được đăng ký trước khi chúng được hiển thị cho Trình quản lý gói. Trong Julia 1.0, có hai cách để làm việc với Trình quản lý gói: với 3 trong bản phát hành để vào chế độ quản lý gói tương tác đặc biệt. . Lưu ý rằng các công cụ mới đến ở chế độ tương tác trước, sau đó cũng thường có sẵn trong các phiên Julia thông thường thông qua mô -đun x, y = y, x # swap x and y 5.Sử dụng PKG trong phiên Julia
Trong chế độ gói tương tác
Ký tự và chuỗi
Cẩn thận với mã hóa unicode đa byte trong UTF-8: 31 31Chuỗi là bất biến. Số
Julia không tự động kiểm tra tràn số. Sử dụng gói an toàn cho INT với kiểm tra tràn. Số ngẫu nhiênNhiều chức năng số ngẫu nhiên yêu cầu 52.
Mảng
Đại số tuyến tínhĐối với hầu hết các công cụ đại số tuyến tính, hãy sử dụng 89.
Julia đã hỗ trợ tích hợp cho các phân tách ma trận. Julia cố gắng suy luận liệu ma trận có thuộc loại đặc biệt (đối xứng, Hermiti, v.v.), nhưng đôi khi thất bại. Để hỗ trợ Julia trong việc gửi các thuật toán tối ưu, các ma trận đặc biệt có thể được tuyên bố là có cấu trúc với các chức năng như 14, 15, 16, 17, 18, v.v.Kiểm soát luồng và vòng lặp
Chức năngTất cả các đối số cho các chức năng được truyền qua tham chiếu. Các chức năng với 36 được thay đổi ít nhất một đối số, thường là lần đầu tiên: 83.Các đối số bắt buộc được phân tách bằng dấu phẩy và sử dụng ký hiệu vị trí. Các đối số tùy chọn cần một giá trị mặc định trong chữ ký, được xác định với 38.Các đối số từ khóa Sử dụng ký hiệu được đặt tên và được liệt kê trong chữ ký của chức năng sau dấu chấm phẩy:
Bán kết không bắt buộc trong cuộc gọi đến một hàm chấp nhận các đối số từ khóa. Tuyên bố 39 là tùy chọn nhưng rất được khuyến khích.Nhiều cấu trúc dữ liệu có thể được trả về dưới dạng Tuple trong một câu lệnh 39.Đối số dòng lệnh 41 có thể được xử lý từ hằng số toàn cầu 42:
Các hàm ẩn danh có thể được sử dụng tốt nhất trong các chức năng thu thập hoặc danh sách hiểu biết: 43.Các chức năng có thể chấp nhận một số lượng thay đổi các đối số:
Chức năng có thể được lồng:
Các chức năng có thể có các loại trả về rõ ràng
Các chức năng có thể được vector hóa bằng cách sử dụng cú pháp DOT
Julia tạo ra các phiên bản chuyên dụng Nhiều công bố một loại đa hình xác định động phiên bản nào của một hàm để gọi. Trong bối cảnh này, động có nghĩa là nó được giải quyết tại thời gian chạy, trong khi quá tải phương pháp được giải quyết tại thời điểm biên dịch. Julia quản lý nhiều công văn hoàn toàn trong nền. Tất nhiên, bạn có thể cung cấp quá tải chức năng tùy chỉnh với các chú thích loại. của các chức năng dựa trên các loại dữ liệu. Khi một hàm được gọi với cùng loại đối số, Julia có thể tra cứu mã máy gốc và bỏ qua quy trình biên dịch. Multiple dispatch a type of polymorphism that dynamically determines which version of a function to call. In this context, dynamic means that it is resolved at run-time, whereas method overloading is resolved at compile time. Julia manages multiple dispatch completely in the background. Of course, you can provide custom function overloadings with type annotations. of functions based on data types. When a function is called with the same argument types again, Julia can look up the native machine code and skip the compilation process. Vì Julia 0,5, sự tồn tại của sự mơ hồ tiềm năng vẫn được chấp nhận, nhưng thực sự gọi một phương pháp mơ hồ là một lỗi ngay lập tức.Julia 0.5 the existence of potential ambiguities is still acceptable, but actually calling an ambiguous method is an immediate error. Stack Overflow là có thể khi các chức năng đệ quy làm tổ sâu nhiều cấp độ. Trampolining có thể được sử dụng để tối ưu hóa cuộc gọi đuôi, vì Julia chưa tự động làm điều đó. Ngoài ra, bạn có thể viết lại đệ quy đuôi như một lần lặp. Từ điển
Từ điển có thể thay đổi; Khi các biểu tượng được sử dụng làm khóa, các phím là bất biến. Bộ
Kiểm tra xem một phần tử được chứa trong một tập hợp được thực hiện trong O (1). Chức năng thu thập
LoạiJulia không có lớp và do đó không có phương pháp dành riêng cho lớp. Các loại giống như các lớp không có phương pháp. Các loại trừu tượng có thể được phân nhóm nhưng không được khởi tạo. Các loại bê tông không thể được phân nhóm. Theo mặc định, 73 s là bất biến.Các loại bất biến tăng cường hiệu suất và là chủ đề an toàn, vì chúng có thể được chia sẻ giữa các luồng mà không cần đồng bộ hóa. Các đối tượng có thể là một trong một tập hợp các loại được gọi là các loại 74.
Khi một loại được xác định với hàm tạo bên trong, các hàm tạo bên ngoài mặc định không khả dụng và phải được xác định bằng tay nếu cần. Một hàm tạo bên trong được sử dụng tốt nhất để kiểm tra xem các tham số có phù hợp với các điều kiện (bất biến) nhất định hay không. Rõ ràng, những bất biến này có thể bị vi phạm bằng cách truy cập và sửa đổi trực tiếp các trường, trừ khi loại được xác định là bất biến. Từ khóa 02 có thể được sử dụng để tạo một đối tượng cùng loại.Các tham số loại là bất biến, có nghĩa là 03 là sai, mặc dù 04. Mặt khác, các loại Tuple là hiệp phương sai: 05.Có thể tìm thấy dạng hình thức nội bộ của Julia, có thể được tìm thấy với 06. Điều này rất hữu ích để xác định nơi 99 thay vì mã gốc cụ thể được tạo ra.Thiếu và không có gì
Ngoại lệ
Mô -đunCác mô -đun là các không gian làm việc biến đổi toàn cầu riêng biệt nhóm các chức năng tương tự.
Với 54, bạn cần phải nói 55 để mở rộng mô -đun ________ 356 Chức năng 57 với một phương thức mới, nhưng với 58, bạn chỉ cần nói 59 và nó tự động mở rộng mô -đun ________ 356.MacroMacro cho phép mã được tạo (nghĩa là các biểu thức) được đưa vào một chương trình.
Xuất khẩu
function outerfunction() # do some outer stuff function innerfunction() # do inner stuff # can access prior outer definitions end # do more outer stuff end 62function func(a...) println(a) end func(1, 2, [3:5]) # tuple: (1, 2, UnitRange{Int64}[3:5]) 32for arg in ARGS println(arg) end 7Cách sử dụng
98Chạy F với các đối số tranh luận trên tất cả các công nhân 99I/O
# take any Number subtype and return it as a String function stringifynumber(num::T)::String where T <: Number return "$num" end 14# take any Number subtype and return it as a String function stringifynumber(num::T)::String where T <: Number return "$num" end 17Lưu đối tượng Julia
# take any Number subtype and return it as a String function stringifynumber(num::T)::String where T <: Number return "$num" end 46 hoặc # take any Number subtype and return it as a String function stringifynumber(num::T)::String where T <: Number return "$num" end 47
function func(a...) println(a) end func(1, 2, [3:5]) # tuple: (1, 2, UnitRange{Int64}[3:5]) 98Liệt kê SuperType
Đặt tên quy ướcCông ước chính ở Julia là tránh những dấu gạch dưới trừ khi chúng được yêu cầu về mức độ dễ đọc. Tên biến nằm trong trường hợp thấp hơn (hoặc rắn): 76.Hằng số ở trong trường hợp trên: 77.Các chức năng nằm trong trường hợp thấp hơn (hoặc rắn): 78.Macro nằm trong trường hợp thấp hơn (hoặc rắn): 79.Tên loại nằm trong trường hợp lạc đà đầu tư ban đầu: 80.Các tệp Julia có phần mở rộng 81.Để biết thêm thông tin về phong cách Julia Code, hãy truy cập hướng dẫn: Hướng dẫn kiểu. Lời khuyên hiệu suất
Tài nguyên
Video
|