딥스탯 2018. 9. 12. 23:09
2_Strings(한글)

Strings

출처

https://github.com/JuliaComputing/JuliaBoxTutorials/tree/master/intro-to-julia (github : JuliaComputing/JuliaBoxTutorials/intro-to-julia)

Topics:

  1. string을 어떻게 만드는가?
  2. String interpolation
  3. String concatenation
  4. 연습문제

함께 보기

http://deepstat.tistory.com/45 (01. Getting started)(in English)
http://deepstat.tistory.com/46 (01. Getting started(한글))
http://deepstat.tistory.com/47 (02. Strings)(in English)

string을 어떻게 만드는가?

글자를 " " 나 """ """ 안에 넣으면 된다!

In [1]:
문장1 = "나는 string이다."
Out[1]:
"나는 string이다."
In [2]:
문장2 = """나도 string인데?"""
Out[2]:
"나도 string인데?"

큰 따옴표 하나 쓰는 것과 큰 따옴표 세 개 쓰는 것은 기능적으로 조금 차이가 있다.

차이 중 하나는, 안에 따옴표를 넣을 수 있냐 없냐다.

In [3]:
"이거는 "에러"난다. 왜냐면, 어디서 끝나는지 모호하기 때문이다."
syntax: cannot juxtapose string literal
In [4]:
"""이거는 "에러" 안 나지롱!!! """
Out[4]:
"이거는 \"에러\" 안 나지롱!!! "

' ' 이거는 character 지만, string이 아니다.

In [5]:
typeof('가')
Out[5]:
Char
In [6]:
typeof("가")
Out[6]:
String
In [7]:
'가나' # error
syntax: invalid character literal

String interpolation

$ 이 기호를 이용해서, string 안에서 계산이나 변수불러오기를 할 수 있다.

밑에 예시는 어떤 사람의 개인정보다.

In [8]:
이름 = "영희"
손가락_수 = 10
발가락_수 = 10
Out[8]:
10
In [9]:
println("안녕, 내 이름은 $이름 야.")
println("나는 손가락 $손가락_수 개, 발가락 $발가락_수 개야.")
안녕, 내 이름은 영희 야.
나는 손가락 10 개, 발가락 10 개야.
In [10]:
println("다 더하면 $(손가락_수 + 발가락_수) 이야!")
다 더하면 20 이야!

String concatenation

밑에 예제는 문자를 합치는 3가지 방법에 관한 것이다.

첫 번째 방법은 string() 함수를 쓰는 거다.

string()은 string 아닌 것을 string으로 바꿔준다.

In [11]:
문장3 = "얼마나 고양이가 많길래 "
문장4 = "고양이가 많다고 하는 거지?"
🐱 = 10
Out[11]:
10
In [12]:
string(문장3, 문장4)
Out[12]:
"얼마나 고양이가 많길래 고양이가 많다고 하는 거지?"
In [13]:
string("잘 모르겠는데 ", 🐱, " 마리로는 많다고 안 하지 않을까?")
Out[13]:
"잘 모르겠는데 10 마리로는 많다고 안 하지 않을까?"

기호 * 를 써서도 합칠 수 있다.

In [14]:
문장3*문장4
Out[14]:
"얼마나 고양이가 많길래 고양이가 많다고 하는 거지?"

연습문제

2.1

지수표현을 써서 "안녕"을 1000번 반복하는 string을 만들자.

In [15]:
"안녕"^1000
Out[15]:
"안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕"

2.2

변수 두 개를 선언하자.

ㄱ = 3
ㄴ = 4

그리고 그것을 이용해서 밑에 있는 것들을 만들어보자.

"3 + 4"
"7"
In [16]:
 = 3
 = 4
Out[16]:
4
In [17]:
string(, " + ", )
Out[17]:
"3 + 4"
In [18]:
string( + )
Out[18]:
"7"
In [19]:
"$ㄱ + $ㄴ"
Out[19]:
"3 + 4"
In [20]:
"$( + )"
Out[20]:
"7"
In [21]:
*" + "*
MethodError: no method matching *(::Int64, ::String)
Closest candidates are:
  *(::Any, ::Any, !Matched::Any, !Matched::Any...) at operators.jl:502
  *(!Matched::Missing, ::AbstractString) at missing.jl:139
  *(::T<:Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8}, !Matched::T<:Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8}) where T<:Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8} at int.jl:54
  ...

Stacktrace:
 [1] *(::Int64, ::String, ::Int64) at ./operators.jl:502
 [2] top-level scope at In[21]:1
In [22]:
"$ㄱ"*" + "*"$ㄴ"
Out[22]:
"3 + 4"