julia学习日记 day2 | julia基础以及和python的比较
今天的内容主要是复习整理JL的编程基础,以及部分的与py之间的对比。有不足之处,欢迎交流和讨论👏。
·
JL学习日记 day2啦
今天的内容主要是复习整理JL的编程基础,以及部分的与py之间的对比。有不足之处,欢迎交流和讨论👏
新手入门
- 1)打印 查看变量类型 查看变量地址
println("hello word") #打印
number = 42
typeof(number) #查看变量的类型
objectid(number) #查看变量的地址
- 2)string和char
使用" "
或""" """
包围起来得到字符串,使用' '
包围起来得到char。不同与py,py没有专门的char
类型。此外,JL的索引从1开始
。
使用$
得到格式化字符串,以将已有的变量插入一个字符串,也可以在字符串中代入表达式的值。
println("his age is $number.")
- 3)数据结构
元组 用()
括起来得到一个元组,元组是不可不类型,不能改变。
myfavoriteanimals = ("penguins", "cats", "sugargliders")
字典 通过 Dict()
函数初始化字典,可以为空或者有键值对。
myphonebook = Dict("Jenny" => "867-5309", "Ghostbusters" => "555-2368")
数组 使用方括号 [ ]
括起元素集合来创建数组。数组是可变类型。
fibonacci = [1, 1, 2, 3, 5, 8, 13]
- 4)循环
while 循环语法:
while <condition>
<loop body>
end
for 循环语法:
for <var> in <loop iterable>
<loop body>
end
与py类似,jl的for循环可以处理可迭代对象。
#嵌套循环的简写
for i in 1:m, j in 1:n
B[i, j] = i + j
end
B
- 5)条件判断
if
关键字语法:
if <condition 1>
<option 1>
elseif <condition 2>
<option 2>
else
<option 3>
end
三元运算符
a ? b : c
它等价于
if a
b
else
c
end
短路运算
a && b
当 a
和 b
都为真的时候返回真。
当然了,如果 a
是假的话,Julia 不需要判断 b
的真假就可以判断整体为假;
这就“短路”了,直接返回 false
。
- 6)函数
声明函数的方法:
1.使用function
和end
关键字
function f(x)
x^2
end
- 直接使用
=
f2(x) = x^2
3.匿名函数
f3 = x -> x^2
f3(10)
4.julia的鸭子类型:在未指定函数参数的类型时,不管输入参数是什么类型,只要函数体可以正常执行,那么 Julia 函数就可以应用在这种类型的参数上。
5.原地修改和非原地修改(Mutating vs. non-mutating functions):约定:函数名以 !
结束的原地修改传入的变量,函数名非以 !
结束的则不会改变传入的变量。
v = [3, 5, 2]
sort(v) #会返回一个新的,排序好的数组 v本身不会改变
sort!(v) #v会被原地修改
- 6)包
Julia 有超过 2000 个登记在案的包。我们还可以很容易地通过PyCall
或Rcall
调用 Python 或 R。这意味着不必等到 Julia 的生态完全成熟就能迁移现有项目到 Julia,而且迁移到 Julia 并不意味着放弃你在其他语言中惯用的包或者库!查看全部可获得的包,请看
https://pkg.julialang.org/
添加包的方法
using Pkg
Pkg.add("Example")
更多推荐
已为社区贡献1条内容
所有评论(0)