分享

Julia机器学习核心编程.4

 云深无际 2021-11-03

在win上加e参数,执行这个代码.不可以.类unix可以试试,我有空操作

我超级喜欢这种循环写法

我这个传参写法没有错,不知道这么久没有出来

与其他编程语言一样,Julia可以更改存储在变量中的值或改变其状态。

交换两个变量,python 见怪不怪

代码01行定义了_ab变量,这个名称可以使用。代码03行定义了@ab,04行报错,虽然提示的是“=”错误,但可以推测出其实是变量名称错误。代码05行直接输入了值1000,06行得到了一个输出结果。请注意,“!”(感叹号)不应该在变量名称中使用,因为以感叹号结尾的函数用于修改其参数。

我们可以使用UTF-8中任何大于00A0的符号集(尽管还有很多符号不能使用)。

命名约定

虽然Julia在命名上没有什么限制,几乎所有的组合都是被允许的,但还是有必要遵循一些命名规则。

· 变量名称为小写形式。

· 下画线用于分隔变量名称中的不同单词,但不建议使用带下画线的名称。

· 函数和宏名称小写,不使用下画线。

· 类型和模块的名称的第一个字符大写,最好使用驼峰命名法。

· 修改或写入任何参数的函数以“!”符号结尾。

Julia是一种强类型语言,因此有必要对变量的类型进行定义。如果没有明确定义变量的类型,那么Julia将尝试通过分配给变量的值来进行推断。当然,我们也可以使用Julia提供的typeof()函数来计算出变量的类型。

代码01行将_ab作为参数传入typeof()中,它返回了Int64,也就是说,_ab的类型是Int64。这里的Int64和String指的是类型。Int有不同的大小,通常其默认值与操作系统的字长有关。

在Julia中,我们可以使用下画线来分隔数字。

应用嘛,比较多.比如0太多的时候

可看最大的存放量,可看平台位数

在处理无法用32位整数(Int32)表示的大数字的情况下,即使在32位计算机上,Julia也会创建64位整数(Int64),而不是32位。

01  julia> large_integer = 99999999999

02  julia> typeof(large_integer)

03  Int64

数据溢出

在下面的范例中,定义了一个具有Int16类型的x变量的函数,并将它赋值为10000.

01  julia> x = Int16(10000)

02  10000

03  julia> x*x

04  -7936

代码01行将x赋值为Int16类型的值,代码03行执行x*x时超过了Int16类型的范围,导致数据溢出。

01  #16位Int类型的最大值为32767

02  julia> x = typemax(Int16)

03  32767

04  #Julia将保持变量类型,即使超过最大值

05  julia> x + Int16(1)

06  -32768

代码01行将x赋值为Int16类型的最大值32767,并在代码05行将x增加1,这使得x超过了该类型的最大值,导致数据溢出。

布尔数据类型

Bool是一种广泛使用的逻辑数据类型,它有真和假两种状态。

与其他编程语言不同,在Julia中不会将0、NULL或空字符串视为false。比如下面的代码:

01  julia> if 0

02  println("hello")

03  end

代码01行中的if 0将报错,错误信息如下:

01  TypeError:上下文中使用非布尔值(Int64)

02  Stacktrace:[1] include_string(:: String,:: String)

03  at ./loading.jl:515

意思就是代码01行中的0不是布尔值,而是Int64类型的值。

其实我觉得把0放在一个大的数集中,很正确!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多