Python
20210121_Python 와 Ruby 비교 01 - Ruby 위주로
환경설정
- Python 3버전, Ruby install
- vscode에서 작업 할거면 tasks.json 파일 있으면 엄청 편하다
언어별 tasks.json 파일 설정 관련 사이트
문서편집기(notepad)를 통한 코딩 실행
-
터미널로 작업하기에는 복잡한 구조를 못함-> 코드를 파일로 만들어서 작업하는게 좋음
-
notepad로 print("hello, world!")hellowworld.rb 파일 작성
-
notepad로 print("hello, world!")hellowworld.py 파일 작성
-
Ruby의 경우 터미널에서 동작 명령어는
ruby 파일이름
임 -
python의 경우 터미널에서 동작 명령어는
python 파일이름
임 -
(물론, 경로에 없으면 경로에 들어가거나 경로까지 모두 쳐줘야 함)
Ruby Syntax
print()
: 출력값이 한줄에 모두 나타남puts()
: python의 print 처럼 개행이 나타남BEGIN{code}
: 어디에 명령문이 있든 제일 먼저 실행END{code}
: 어디에 명령문이 있든 제일 마지막에 실행# 내용
,=begin 여러 줄 =end
: 주석기능 (vscode에서 단축키ctrl+ /
가능)class 클래스 이름 end
: 클래스 선언은 class 로 하고 클래스 이름은 항상 첫번째 문자가 대문자 그리고 마지막에 항상 end 붙여줄 것
- 사칙 연산 가능 :
+, -, /, *
,**
는 승수 - 문자 표현 :
""
,''
,''' '''
모두 가능하나 python 처럼 다른 따옴표의 짝을 이루면 syntax error - 문자열 제어 : 문자와 문자의
+
,*
개수 반복,indexing
가능 (python과 같음) - 문자관련 함수:
.capitalize()
- 대문자화는 동일.upper()
(python) -.upcase()
(ruby).__len__ () or len()
(python) -.length()
(ruby).replace()
(python) -sub()
(ruby)
- escape 문자 :
\
의 경우 붙이면 그대로 표현 가능, 그 외에 python ruby 둘다 같다- 단, pytnon은 개행시
\n
을 큰따옴 작은 따옴표던 상관 없이 개행이 가능한데, ruby는 큰 따옴표에서만 개행이 된다.
- 변수 정의 :
- python과 같이
=
으로 할당(왼쪽 문자 = 값)
- python과 같이
- 비교와 불리언 : ruby 같은 경우 True 와 False가 모두 소문자로 표기한다. true , false
- 조건문 : python과 다르게 콜론
:
을 사용하지 않으며 끝나는 지점에는 end를 넣어서 나와주어야 한다. - else는 똑같고 python의 elif -> ruby에서는 elsif 로 표기함
- python은 인덴트를 넣어야 하지만, ruby의 경우에는 인덴트를 안넣어도 문제는 없지만 가독성 때문에 하는게 좋다.
a = 10
b = 7
c = 10
if a == b
puts("code1")
puts("code2")
elsif a == c
puts("correct")
else
puts("code else")
end
puts("code3")
- 입력과 출력
- python의 경우에는
input(보이는 내용)
함수를 사용하지만 ruby의 경우gets.chomp()
를 사용한다. - 다른 점은 python의 경우 표시내용이 함수에 포함 되어 있지만, ruby의 경우
puts
를 통해 따로 보이는 내용을 출력 시켜주고 입력을 받아야 한다는 것
- python의 경우에는
puts("Please Enter your key!")
input = gets.chomp()
real_tom = "11"
real_jerry = "8"
if real_tom == input
puts("hello! Tom~")
elsif real_jerry == input
puts("hello! Jerry~")
else
puts("it's not correct!")
end
- 논리 연산자 : and , or, not 의 사용은 둘이 같다.
- 중첩 if 문
real_id = "tom"
real_pw = "1111"
puts("Please Enter your id!")
input_id = gets.chomp()
puts("Please Enter your password!")
input_pw = gets.chomp()
if input_id == real_id
if input_pw == real_pw
puts("hello! Tom~")
else
puts("Wrong password!")
end
else
puts("Wrong id!")
end
- if 중첩 + and 문
real_id = "tom"
real_pw = "1111"
puts("Please Enter your id!")
input_id = gets.chomp()
puts("Please Enter your password!")
input_pw = gets.chomp()
if input_id == real_id and input_pw == real_pw
puts("Hello! Tom!")
else
puts("Check your id or password!")
end
- 컨테이너
- 컨테이너는
[]
로서 python 에서는 list로 ruby에서는 Array로 불린다. - 특성은 똑같이 인덱스와 값을 가지며 순서가 존재한다.
- python의
type()
를 ruby에서는.class
를 붙여서 본다. - 또한 값 변경도 둘다 똑같이
변수명[index] = 값
을 사용하여 값을 변경 가능하다.
- 컨테이너는
- 반복문
- python 과 똑같이
while
을 사용하며 조건문과 같이 사용도 된다. 단, ruby에서는do
가 추가 된다. break
문도 똑같다. 단,continue
문 말고redo
를 사용한다.
- python 과 똑같이
i = 0
while i < 10 do
if i == 4
break
end
puts(i)
i += 1
end
puts("after while")
- 컨테이너 + while
members = ['tom', 'jerry', 'snoopy']
i = 0
while i < members.length do
puts(members[i])
i += 1
end
- for 문
- python의 경우 보통 range 함수와 같이쓴다.
- ruby에서 range를 설정은
(숫자..숫자)
-> (둘다 포함) 이상 이하 ,(숫자...숫자)
-> 이상 미만 - 단, for 문에서만 저렇게 쓰이고 밖에서 출력시
.to_a
를 붙여줘야 함
for item in (3..10) do
puts(item)
end
puts("Enter your id")
input_id = gets.chomp()
members = ['tom', 'jerry', 'snoopy']
for member in members do
if member == input_id
puts("hello! " +member)
exit
end
end
puts("who are you?")
- 여기서
exit
명령은 기본 내장 명령인것 같다.(해당 모듈에서 나가는 명령 인듯) 파이썬의 경우immport sys
가 필요하다.
Cheat-Sheets
설명서 보는 법 (Documentation)
- 검색 능력 + Reference 보는 법을 기르자
용어
Getting Started
: 입문서Tutorial
: 자습서Reference
: 참조language reference
: 문법책library reference
: 단어장 같은 느낌(여러 명령어 같은 거)
'Python' 카테고리의 다른 글
20210123_Python 와 Ruby 비교03, 객체지향, class, instance (0) | 2021.01.24 |
---|---|
20210122_Python 와 Ruby 비교02 - Ruby 함수, 블럭, 모듈 (0) | 2021.01.23 |
20210113_ Python 입문10(총 활용), 간단한 타이핑 게임 (0) | 2021.01.13 |
20210111_ Python 입문9, 데이터베이스 연동(SQLite) (0) | 2021.01.12 |
20210110_ Python 입문8,excel, csv 외부 파일 처리 (0) | 2021.01.11 |