공백을 사용해야 할 때는 대문자를 사용하여 구분한다.이러한 방법을 카멜 케이스(Camel Case)라고 한다. 예) int productPrice = 10000;
데이터 타입
기본형(PrimitiveType)
정수형
byte(1 byte - 8 bits) : -2^7 ~ 2^7-1(-128 ~ 127)의 범위를 나타낼 수 있다.
short(2 bytes) : -2^15 ~ 2^15-1(-32,768 ~ 32,767)의 범위를 나타낼 수 있다.
int(4 bytes) : -2^31 ~ 2^31-1의 범위를 나타낼 수 있다.
long(8 bytes) : -2^63 ~ 2^63-1의 범위를 나타낼 수 있다.
일반적으로 많이 사용하는 정수형 데이터는 int 타입이며, 보통 long 타입은 웹서비스나 웹 애플리케이션을 만들 때 객체 각각의 고유한 값을 가지는 아이디를 만들 때 사용된다.
실수형
double(8 bytes) : 소수점 15자리까지의 정밀도
float(4 bytes) : 소수점 7자리까지의 정밀도
float 데이터를 다룰 때 뒤에 f를 붙여야하는 번거로움이 있기 때문에 일반적으로 실수형 데이터를 표현할 때에는 double 타입을 사용한다.
문자형
char(2 bytes) : 작은따옴표('')를 사용한다.
문자열은 말 그대로 문자를 나열한 것이고 문자형 데이터는 문자 한 개만 다룰 수 있는 데이터 타입이다. 정수를 입력하면 아스키(ascii)코드로 변환되어 나온다. 그 외에도 16진수 형태의 유니코드를 입력하여도 문자형으로 출력된다.
논리형
boolean(1 byte)
참거짓(True, False) 값. 불, 불린, 불리언 등으로 불린다. 참과 거짓 외에도 논리적으로 판단할 수 있는 표현식을 넣어도 된다.
참조형(Reference Type)
참조형 데이터의 값 => 힙 메모리
변수에 대입되는 값 => 힙 메모리 영역의 주소값
참조형 데이터 타입은 원칙적으로 new 연산자를 이용하여 객체를 구성하는 방식이다.
String = new String(original: "Hello!");
System.out.printIn(a);
참조형 데이터의 값을 나타내는 부분(Hello!)은 변수 a가 아닌 힙 메모리 영역에 생성된다. 변수(a)에 대입되는 실제 값는 힙 메모리 영역의 주소값이 대입된다. 즉, a는 힙 메모리의 어느 곳에 Hello!라는 문자열이 있는지 주소만 가지고 있을 뿐 값을 가지고 있는 것은 아니다.
그래서 String 같은 경우, new 연산자를 활용하지 않고 값 자체를 변수에 대입하여 사용한다. 이를 리터럴(Literal) 방식이라고 한다.
String b = "Hello!";
그럼 a와 b의 값은 같은 주소 값을 가지고 있을까?
if (a == b) {
System.out.printin("a == b");
}
결과는 아니다. 같은 Hello!라는 값이어도 a라는 변수, b라는 또다른 변수를 선언했기 때문이다.
같은 값으로 또다른 변수를 선언하여 비교해보자.
String c = "Hello!";
if (b == c) {
System.out.printin("a == b");
}
그런데 이번에는 b와 c가 힙 메모리에 같은 데이터를 가르키고 있다고 나온다.
리터럴 방식으로 문자열을 대입하면 기존에 힙 메모리에 동일한 값이 있는지 먼저 확인한다. 그리고 동일한 값이 있으면 새롭게 그 객체를 힙 메모리에 만들지 않고 기존의 주소를 가져간다. new 연산자 방식은 new 연산자를 새로 만드는 작업만 한다. 그렇기 때문에 기존에 같은 문자열 데이터가 있든 없든 무조건 새로 생성한다.
상수(Constants, final variables)
변수와 상반되는 개념
상수의 특징
한 번 값이 할당되면 이후에 재할당이 불가능하다.
전체를 대문자로 표시하고 단어간 구분은 _로 한다.
프로그램 내에서 한 번이라도 변경이 필요한 값들은 상수로 선언하면 안된다. 공통적으로 값을 곱해주어야한다던지, 공식 같은 로직에서만 사용해야한다.
The novel contains too much dialogue and not enough narrative.
그 소설은 대화가 너무 많이 포함되어 있고 서술이 충분하지 않다.
dialect
방언, 사투리
예문
"Drilling" is one term among many in drill's original slang dialect, along with the omnipresent "opps" (opposition, competitors), "bando" (abandoned house, used to sell drugs) and "L" (referring to the defeat or loss of a rival).
"Drilling"은 "oops"(상대측, 경쟁자), "bando"(마약 거래로 사용되는 폐허), "L"(상대를 패배시키거나 처부수는 것)과 함께 드릴의 원조 속어 방언 중 하나이다.
It was difficult to understand the local dialect.
그 지역 사투리는 알아듣기 어려웠다.
register
1. 등록하다, 기제하다, 신고하다
2. (견해를) 표명하다
3. 기록부, 명부
4. 음역
예문
We learned how to create and register a new web page.
우리는 새로운 웹페이지를 만들고 등록하는 법을 배웠다.
They could find no register of her death.
그들은 명부에서 그녀의 죽음을 발견 할 수 없었다.
She has a good high register when she sings.
그녀는 노래할 때 고음을 잘 낸다.
provide
1. 제공하다, 주다
2. 규정하다
예문
We are here toprovidea service for the public.
우리는 대중에게 서비스를 제공하기 위해 여기 있는 것이다.
Corey Johnson says producers and engineers added these sounds to compensate for rappers not providing enough lyrics to fill bars.
코리 존슨은 프로듀서와 엔지니어가 래퍼들에게 박자를 채울 만큼의 충분한 가사를 주지 않은 것을 보상하기 위해 이러한 소리를 추가했다고 말했다.
rally
1. 집회
2. 결집[단결]하다[시키다]
3. 회복되다, 활기를 되찾다
예문
Georgia congresswoman Marjorie Taylor Greene plans to hold a pro-Trump rally near the court on Tuesday.
조지아주 국회의원 마조리 테일러 그린은 화요일 법원 근처에서 친트럼프 집회를 열 계획이다.
## 전역 변수 선언 부분 ##
i, k, guguLine = 0, 0, ""
## 메인 코드 부분 ##
for i in range(9, 1, -1) :
guguLine = guguLine + ("# %d단 #" % i)
print(guguLine)
for i in range(9, 0, -1) :
guguLine = ""
for k in range(9, 1, -1) :
guguLine = guguLine + str("%2dX %2d= %2d" % (k, i, k * i))
print(guguLine)
hap = 0
a, b = 0, 0
while True :
a = input("더할 첫 번째 수를 입력하세요 : ")
if a == "$" :
break
a = int(a)
b = int(input("더할 두 번째 수를 입력하세요 : "))
hap = a + b
print("%d + %d = %d" % (a, b, hap))
print("$을 입력해 반복문을 탈출했습니다.")
## 전역 변수 선언 부분 ##
i, k = 0, 0
## 메인 코드 부분 ##
i = 0
for i in range(0, 9) :
if i < 5 :
k = 0
for k in range(0, 4 - i) :
print(' ', end = '')
k += 1
k = 0
for k in range(0, i * 2 + 1) :
print('\u2665', end = '')
k += 1
else :
k = 0
for k in range(0, i - 4) :
print(' ', end = '')
k += 1
k = 0
for k in range(0, (9 - i) * 2 -1) :
print('\u2665', end = '')
k += 1
print()
i += 1
## 변수 선언 부분 ##
i, k, starNum = 0, 0, 0
numStr, ch, starStr = "", "", ""
## 메인 코드 부분 ##
if __name__ == "__main__" :
numStr = input("숫자를 여러 개 입력하세요 : ")
print("")
i = 0
ch = numStr[i]
while True :
starNum = int(ch)
starStr = ""
for k in range(0, starNum * 2) :
starStr += "\u2605"
k += 1
print(starStr)
i += 1
if (i > len(numStr) -1) :
break
ch = numStr[i]
11. 3부터 100까지의 숫자 중에서 소수(Prime Number)를 출력하는 코드를 작성하세요. 소수란 1과 자기자신만으로 나누어 떨어지는 정수를 말합니다. 즉, 2부터 자기자신 -1까지 나눠봐서 한 번도 나누어 떨어지지 않으면 소수입니다. 예로 5는 2, 3, 4로 각각 나누어서 한 번도 나누어 떨어지지 않으므로 소수입니다. 13도 2, 3, ..., 12까지 한 번도 나누어 떨어지지 않으므로 소수입니다.
맨처음 시작 할 때 거북이가 변 하나를 그리는데 왜인지 원인을 찾지 못했습니다. 참조만 해주세요!
import turtle
import random
## 전역 변수 선언 부분 ##
swidth, sheight = 500, 500
## 메인 코드 부분 ##
turtle.title('거북이가 랜덤한 별 그리기')
turtle.shape('turtle')
turtle.setup(width = swidth + 50, height = sheight + 50)
turtle.screensize(swidth, sheight)
turtle.pensize(3)
while True :
angle = random.randrange(0, 360)
dist = random.randrange(1, 100)
turtle.left(angle)
turtle.forward(dist)
side = random.randint(10, 200)
r = random.random()
g = random.random()
b = random.random()
turtle.pencolor((r, g, b))
turtle.pendown()
for i in range(0, 5):
turtle.forward(side)
turtle.left(144)
turtle.penup()
*주의사항 : 제가 직접 푼 것이므로 틀린 부분이 있을 수 있습니다. 오타나 틀린 부분 지적 환영!