Premiers pas avec Julia pour Pythonista

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/)

Notions de base

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 JuliaandEst&&orEst||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]

Histoire détaillée

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"

Autres bons points de Julia

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

référence

Julia Documentation

Recommended Posts

Premiers pas avec Julia pour Pythonista
Premiers pas avec Lisp pour Pythonista: Supplément
Premiers pas avec Python pour les classes PHPer
Premiers pas avec Python pour les fonctions PHPer
Premiers pas avec Python pour PHPer-Super Basics
1.1 Premiers pas avec Python
Premiers pas avec apache2
Premiers pas avec Python
Premiers pas avec Django 1
Introduction à l'optimisation
Premiers pas avec Numpy
Premiers pas avec Spark
Premiers pas avec Python
Premiers pas avec Pydantic
Premiers pas avec Jython
Premiers pas avec Django 2
Paramètres pour démarrer avec MongoDB avec python
Traduire Premiers pas avec TensorFlow
Introduction aux fonctions Python
Introduction à Tkinter 2: Button
Premiers pas avec Go Assembly
Premiers pas avec Python Django (4)
Premiers pas avec Python Django (3)
Introduction à Python Django (6)
Premiers pas avec Django avec PyCharm
Premiers pas avec Python Django (5)
Premiers pas avec Google App Engine pour Python et PHP
Premiers pas avec Python responder v2
Introduction à Git (1) Stockage d'historique
Premiers pas avec Sphinx. Générer docstring avec Sphinx
Premiers pas avec les applications Web Python
Premiers pas avec Sparse Matrix avec scipy.sparse
Premiers pas avec Python Bases de Python
Premiers pas avec Cisco Spark REST-API
Commençant par USD sur Windows
Premiers pas avec les algorithmes génétiques Python
Premiers pas avec Python 3.8 sous Windows
Premiers pas avec CPU Steal Time
Premiers pas avec python3 # 1 Apprenez les connaissances de base
Premiers pas avec Python Web Scraping Practice
Premiers pas avec Python Web Scraping Practice
Premiers pas avec Dynamo de Python boto
Premiers pas avec Heroku, déploiement de l'application Flask
Premiers pas avec TDD avec Cyber-dojo chez MobPro
Grails pour commencer
Démarrer avec Python avec 100 coups sur le traitement du langage
Principes de base de MongoDB: Premiers pas avec CRUD avec JAVA
Premiers pas avec le dessin avec matplotlib: écrire des fonctions simples
Premiers pas avec la traduction japonaise du modèle séquentiel Keras
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ① ~
Django Getting Started Part 2 avec eclipse Plugin (PyDev)
Premiers pas avec AWS IoT facilement en Python
Premiers pas avec le module ast de Python (à l'aide de NodeVisitor)
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ② ~
Matériel à lire lors de la mise en route de Python
Premiers pas avec Processing et p5.js (pour ceux qui ont fait d'autres langues) 02