A quick and dirty syntax translation / conversion reference guide to ease the transition between Python and Julia. This is not meant as a reference to the language. For that you should read the manual.
- Arrays in Julia are indexed starting from 1.
- In Julia classes (i.e. types) don't own methods. Methods are implementations of generic functions and are invoked in a "static style", i.e. instead of Python's str1.rstrip(), we will have rstrip( str1 ), instead of file1.close(), close( file1 ).
| Python | Julia | Comments |
|---|---|---|
True |
true |
|
False |
false |
|
None |
nothing |
|
type( obj ) |
typeof( obj ) |
|
{} |
Dict{KeyType,ValueType}() |
|
elif |
elseif |
|
lambda x, y : y + x * 2 |
(x,y) -> y + x * 2 |
|
"string %s interpolation %d" % ( str1, i1) |
"string $str1 interpolation $i1 " |
You can interpolate arbitrary expressions by enclosing them in braces, as in "${x+y}" |
xrange(10,4,-2)` |
10:-2:4 |
|
range(10,4,-2) |
[10:-2:4] |
Do this only if you really have to, as it will consume memory proportional to the length of the range |
| Python | Julia |
|---|---|
| str1 + str2 | string( str1, str2 ) |
| len( str1 ) | length( str1 ) |
| str1.rstrip() | rstrip( str1 ) |
| str1.startswith( x ) | ??? write your own such as the one in pytojul.jl |
| Python | Julia |
|---|---|
| m = re.match( r"(\d+):(\d+)", mystr ) | m = match( r"(\d+):(\d+)", mystr ) |
m is not None |
m != nothing |
| arr = m.groups() | arr = m.captures |
| Python | Julia |
|---|---|
| f = open( "file.txt" ) | f = open( "file.txt") |
| for line in f | for line in eachline( f ) |
| f.close() | close( f ) |