Мой вопрос имеет два аспекта:Область переменных и цифры функции
1) Насколько я понимаю, конструирует как для петли ввести области видимости блоков, однако у меня возникают некоторые проблемы с переменной, которое определяют вне указанной конструкции. Следующий код изображает попытку извлечь цифры из числа и поместить их в массив.
n = 654068
l = length(n)
a = Int64[]
for i in 1:(l-1)
temp = n/10^(l-i)
if temp < 1 # ith digit is 0
a = push!(a,0)
else # ith digit is != 0
push!(a,floor(temp))
# update n
n = n - a[i]*10^(l-i)
end
end
# last digit
push!(a,n)
Код выполняется нормально, но когда я смотрю на a
массив я получаю этот результат
julia> a
0-element Array{Int64,1}
Я думал, что все, что происходит внутри для цикла невидим снаружи, если не я 'm работает с переменными, определенными вне цикла for. Более того, я думал, что с использованием синтаксиса !
я бы работал непосредственно на a
, это, похоже, не так. Был бы признателен, если бы кто-нибудь мог объяснить мне, как это работает :)
2) Второй вопрос касается syntex, используемого при объяснении функций. Существует, по-видимому функция называется цифрами, которая извлекает цифру из числа и помещает их в массиве, используя функцию справки я получаю
julia> help(digits)
Base.digits(n[, base][, pad])
Returns an array of the digits of "n" in the given base,
optionally padded with zeros to a specified size. More significant
digits are at higher indexes, such that "n ==
sum([digits[k]*base^(k-1) for k=1:length(digits)])".
Может кто-нибудь объяснить мне, как интерпретировать информацию, предоставленную о функциях в Джулию. Как мне интерпретировать digits(n[, base][, pad])
? Как правильно вызвать функцию цифр? Я не могу быть таким: digits(40125[, 10])
?
Ничего себе, как неловко так много ошибок в так несколько строк кода: P Но спасибо большое за очистку, что для меня , ваш код работал как шарм :) – user2912781