C'est une histoire qui donne l'impression d'être décoctée ... [Plus rapide] que Python (http://julialang.org/benchmarks/), l'écriture est proche de Python, et c'est le langage le plus visible en moi ces jours-ci.
Cette fois, je présenterai les différences de syntaxe dont Pythonista doit se souvenir lors de l'utilisation de Julia, en comparant Python et Julia.
Cliquez ici pour créer l'environnement de Julia (http://julialang.org/downloads/)
Le code est indenté pour plus de clarté, mais l'indentation n'est pas liée au comportement.
julia
for n = 1:10
println(n)
end
Si vous écrivez sur une seule ligne, vous avez besoin de ;
.
julia
for n = 1:10;println(n);end
De plus, l'index de la liste est de ** 1 **, pas de 0.
julia
julia> List = [0, 1, 2]
3-element Array{Int64,1}:
0
1
2
julia> println(List[1])
0
Hello World!
python
print "Hello World!"
julia
println("Hello World!")
for Loop statements
python
for i in range(10):
print i
julia
for n = 0:9
println(n)
end
If statements
python
hoge = "hoge"
if hoge[0] == 'h' and hoge[1:] == "oge":
print "hoge is hoge"
elif hoge == "huge" or hoge == "hige":
print "hoge is huge or hige"
else:
print "hoge is", hoge
Dans Juliaand
Est&&
、or
Est||
est.
julia
hoge = "hoge"
if hoge[1] == 'h' && hoge[2:4] == "oge"
println("hoge is hoge")
elseif hoge == "huge" || hoge == "hige"
println("hoge is huge or hige")
else
println("hoge is ", hoge)
end
Cela fonctionne avec hoge [2:]
, mais * AVERTISSEMENT: syntaxe obsolète "x [i:]". * Est affiché, donc j'ai écrit hoge [2: 4]
.
Exception Handling (Try-Except)
python
List = [0, 1, 2]
try:
print List[3]
except IndexError as e:
print e
julia
List = [0, 1, 2]
try
println(List[4])
catch e
if isa(e, BoundsError) # "BoundsError"Dit en Python"IndexError"est
println(e)
end
end
Functions
python
def huge(x, y):
z = x + y
return z
julia
function huge(x, y)
x + y
end
Ou
julia
function huge(x, y)
z = x + y
return z
end
Anonymous Functions
python
z = lambda x, y : x + y
z(1, 2)
julia
z = (x, y) -> x + y
z(1, 2)
Working with Files
Read
python
with open("output.txt") as f:
for line in f:
print line.rstrip() #Code de saut de ligne supprimé pour correspondre à la sortie de Julia
julia
open("output.txt") do f
lines = readlines(f)
for line in lines
print(line) #Imprimé Julia()Ne contient pas de code de saut de ligne
end
end
Ou
julia
open("output.txt") do f
for line in eachline(f)
print(line)
end
end
Write
python
with open("output.txt", "w") as f:
for i in range(10):
f.write(str(i) + "\n")
julia
open("output.txt", "w") do f
for n = 0:9
write(f, string(n)"\n")
end
end
List complemention
python
[[n**i for n in range(10)] for i in range(5)]
julia
[[n^i for n = 0:9] for i = 0:4]
Créez une liste de chaque élément plus 10
python
[n+10 for n in range(10)]
julia
10+[0:9]
printf
python
Integer = 2
String = "hoge"
print("Integer: %d String: %s" % (Integer, String))
julia
Integer = 2
String = "hoge"
@printf "Integer: %d String: %s" Integer String
strip()
python
>>> "hoge\n".rstrip()
'hoge'
julia
julia> rstrip("hoge\n", '\n')
"hoge"
infix form
julia
julia> +(10, 20, 30)
60
julia> *(10, 20, 30)
6000
Ou
julia
julia> f = +
+ (generic function with 117 methods)
julia> f(10, 20, 30)
60
julia> f = *
* (generic function with 115 methods)
julia> f(10, 20, 30)
6000
inverse divide
julia
julia> 1/3
0.3333333333333333
julia> 3\1
0.3333333333333333
Function chaining
julia
julia> [0:5] |> x -> x.^x |> sum
3414
Recommended Posts