JULIA基础教程
文章平均质量分 94
JULIA基础教程
wooyang2018
这个作者很懒,什么都没留下…
展开
-
第 11 章 流程控制
{{TOC}}第 11 章 流程控制从本章开始,我们就要讲怎样把 Julia 代码组织为真正的程序了。经过良好组织的代码可以在不同的具体情况下执行不同的分支或流程、应对各种异常情况以保持足够的稳定,以及形成通用的函数、模块、程序包等以便自己重复使用甚至供他人使用,等等。我们在前面编写的大部分程序都只能算是脚本程序。我们之前给出过脚本程序的简单定义,即:以普通文本的形式保存的、实现了一定的处理逻辑的计算机指令片段。这样的指令片段往往会被保存在一个或少数几个文件之中,并可以通过配套的工具(如bash、py原创 2021-01-28 17:13:01 · 275 阅读 · 0 评论 -
第 10 章 容器:数组(下)
{{TOC}}第 10 章 容器:数组(下)我们在上一章讨论了数组的表示法、构造方法,以及存取其中元素值的各种方式。对于一般的应用场景来说,我觉得这些内容应该是足够的。但是,我们还应该了解更多,尤其是那些可以提高我们的编码效率的知识。下面,我们就来介绍几个比较重要的专题。我会先接续上一章的内容,从修改数组的方式讲起。10.1 广播式的修改视图为我们改动数组中的元素值提供了一个很好的途径。不过,在真正改动的时候,我们仍然需要通过索引去定位元素值,并且需要分别修改每一个元素值或者告知每一个元素的新值。原创 2021-01-28 17:12:22 · 280 阅读 · 0 评论 -
第 9 章 容器:数组(上)
{{TOC}}第 9 章 容器:数组(上)数组(array)也是一种容器。与元组相比,它最显著的特点有这么几个:数组是可变的对象。关于这一点,我们在前面已经见识过了。同一个数组中的所有元素值都必须有着相同的类型。虽然这个元素类型也可以是抽象类型,从而让元素值的具体类型多样化,但这样做在很多时候都会给基于它的计算带来不必要的负担。数组可以是多维(度)的。也就是说,它不只可以代表一列车队,还可以代表一个停车场、一座停车楼,以及拥有更多维度的结构。而且,数组的维数(即维度的数量)与元素类型一样,也会被原创 2021-01-28 17:11:33 · 542 阅读 · 0 评论 -
第 12 章 函数与方法
{{TOC}}第 12 章 函数与方法12.1 什么是函数在数学中,函数指的是两个非空集合之间的一种对应关系。例如,有这样一个函数:f(x) = x + x对此,我们输入1就一定会得到2,输入2就一定会得到4,输入3就一定会得到6,等等。只要我们给予一个函数的输入值是确定的,那么它的输出值就一定也是确定的。即使我们还不知道那个输出值是什么,也是如此。所以,在使用者看来,函数就像一个黑箱。只要我们给予它一个或一组参数,它就会为我们返回一个结果。如果我们想要知道一个函数具体都做了些什么,就只能去查原创 2021-01-28 17:10:45 · 496 阅读 · 0 评论 -
第 8 章 容器:字典与集合
{{TOC}}第 8 章 容器:字典与集合在 Julia 的世界里,容器是最典型的参数化类型。类型的参数化也让容器变得更加强大和高效。作为程序开发者,我们最直观的感受就是,它可以让我们用更少的代码完成更多的事情。我们在上一章已经讨论了最简单且常用的容器——元组。在本章,我们就接着讲一讲另外两个容器——字典和集合。不论是功能、操作方式还是适用场景,它们都与元组有着明显的不同。8.1 索引与迭代在接着讲容器之前,我们先来说说索引和迭代。它们都属于比较基础的知识,起码对于容器来说是如此。8.1.1 索原创 2021-01-27 09:51:45 · 377 阅读 · 0 评论 -
第 7 章 参数化类型
{{TOC}}第 7 章 参数化类型在第 4 章,我们介绍了 Julia 的类型系统,探讨了类型与类型以及类型与值之间的关系,还讲解了两个特殊的类型和三种主要的类型。接下来,我们会讲述更多的类型和相关知识。你将学习到那些定义更加复杂、功能更加强大的类型,以及操纵这些类型及其值的方法。7.1 类型的参数化参数化(parametric)是 Julia 类型系统中的一个非常重要且强大的特性。它允许类型自身包含参数,并使得一个这样的类型就可以代表整个类型族群。像Ref{T}这样的参数化类型,可以代表的类型的原创 2021-01-26 18:27:48 · 1180 阅读 · 0 评论 -
第 6 章 字符和字符串
{{TOC}}第 6 章 字符和字符串6.1 Unicode 字符在讲 Unicode 字符之前,我们先来简要介绍一下 ASCII 编码。ASCII 是 American Standard Code for Information Interchange 的缩写,可以翻译为美国信息交换标准代码。它是由美国国家标准学会(American National Standard Institute, 简称 ANSI)制定的标准的单字节字符编码方案,主要用途是基于文本的数据交换。这个方案起始于上个世纪 50原创 2021-01-26 18:26:26 · 341 阅读 · 0 评论 -
第 5 章 数值与运算
{{TOC}}第 5 章 数值与运算我们在上一章介绍了 Julia 中的主要类型,其中包括了属于具体类型的原语类型和复合类型。我们用数值类型举了一些例子,还展示了一幅数值类型的层次结构图。这个结构图中的很多类型都是可以被实例化的具体类型。接下来,我们就从那些具体的数值类型开始,介绍 Julia 编程中最常用的对象。5.1 数值的类型Julia 中具体的数值类型一共有 19 个。罗列如下。常用的数值类型:布尔类型:Bool有符号整数类型:BigInt、Int8、Int16、Int32、Int原创 2021-01-26 18:25:17 · 793 阅读 · 0 评论 -
第 4 章 类型系统
{{TOC}}第 4 章 类型系统在 Julia 中,任何值都是有类型的。可见,与值一样,类型也散布在 Julia 程序的每一个角落。我们都知道,计算机编程语言大体上可以分为两类。一类是以 C、Java、Golang 为代表的静态类型语言,另一个类是以 Python、Ruby、PHP 为代表的动态类型语言。所谓的静态类型语言是指,在通常情况下,程序中的每一个变量或表达式的类型在编写时就要有所说明,最迟到编译时也要被确定下来。另外,变量的类型是不可以被改变的。或者说,一个变量只能被赋予某一种类型的值。原创 2021-01-26 18:24:40 · 199 阅读 · 0 评论 -
第 3 章 变量与常量
第 3 章 变量与常量Julia 是一种可选类型化的编程语言。Julia 代码中的任何值都是有类型的。而一个区别在于,一个值的类型是由我们显式指定的,还是由 Julia 在自行推断之后附加上的。例如:julia> typeof(2020)Int64julia> 我调用了一个名为typeof的函数,并把2020作为参数值传给了它。2020本身是一个代表了整数值的字面量(literal)。虽然我没有明确指定这个值是什么类型的,但是 Julia 却可以推断出来。经过推断,Julia 认为原创 2021-01-26 18:24:10 · 300 阅读 · 0 评论 -
第 2 章 编程环境
{{TOC}}第 2 章 编程环境2.1 REPL 环境及其用法命令julia为我们提供了一个简易但足够强大的编程环境。这就是 REPL 环境。不过,REPL 环境并不是 Julia 语言独有的。像 Python、Ruby 这类现代的动态编程语言大都具备 REPL 环境。Julia 的 REPL 环境非常有用,尤其是在我们进行试验性编程的时候。我们可以在其中试着执行一些代码片段,并在确认无误之后把这些片段在源码文件中组装起来,形成真正的程序。因此,REPL 环境绝对算得上一个优秀的编程学习助手。我原创 2021-01-26 18:23:32 · 535 阅读 · 0 评论 -
第 1 章 起步
{{TOC}}第 1 章 起步1.1 初识 Julia1.1.1 为什么要有 Julia首先,我们要知道的是,Julia 是一门计算机编程语言。也就是说,我们可以使用符合 Julia 语言规范的代码来编写程序。这些程序可以用于纯粹的数学和科学计算、存取本地文件、通过网络收发数据,等等。虽然 Julia 针对各种科学计算任务做了特别的设计和优化,但它也适用于通用目的的编程。科学计算往往对代码的表现力和性能都有着较高的要求。然而,一些善于科学计算的编程语言(如 Python 和 R)却都在这两个方面有原创 2021-01-26 18:22:55 · 163 阅读 · 0 评论