Python 리스트(List)  공부 

 

리스트 자료형

데이터들의 목록으로 많은 데이터들을 다룰 때 편리하다.

기본적인 사용 방법은 '리스트명(변수) = [요소 1, 요소 2, 요소 3,... , 요소 n]' 같이 사용한다.

리스트는 [ ](대괄호)를 이용한다.

 

 

1. 리스트 만들기

 

a = [] # 요소가 없는 빈 리스트 
b = [1, 2, 3] # 요소가 정수 
c = ["A", "B", "C"] # 문자열 
d = ["A", "B", 1, 2] # 혼합 
e = [1, "A", [2, "B"]] # 혼합 + 리스트 안에 또 다른 리스트 

print(a) 
print(b) 
print(c) 
print(d) 
print(e)
#출력

[] 
[1, 2, 3] 
['A', 'B', 'C'] 
['A', 'B', 1, 2] 
[1, 'A', [2, 'B']]




 

2. 인덱싱, 슬라이싱

 

인덱싱과 슬라이싱은 여러 요소들이 하나로 합쳐진 형태인 경우에 모두 사용하다.

따라서, 문자열이란 하나하나 문자들이 순서대로 나열된 형태이고, 리스트란 하나하나 요소들이 순서대로 저장되는 형태이다.

my_list = ["이몽룡", "홍길동", "임꺽정"]

print(my_list) 
print(my_list[0] + "님") 
# 리스트의 첫 번째 요소가 '문자열'이기 때문에 
# 인덱싱해서 가져온 값은 그대로 '문자열'이다.
#출력

['이몽룡', '홍길동', '임꺽정'] 
이몽룡님

 

1) 인덱싱 사용 비교(문자열 vs 리스트)

문자열 : 모든 요소가 문자이기 때문에 인덱싱하면 '문자'

리스트 : 각 요소의 형태에 따라 인덱싱 결과가 다르다.

 

2) 이중 리스트 인덱싱 (리스트 안에 또 다른 리스트 요소를 가지는 경우)

my_list = ["김철수", "홍길동",["임꺽정", "이몽룡"]] 

print(my_list[2]) # 리스트 
print(my_list[2][1]) # my_list의 3번째 요소인 리스트에서 2번째 요소 '이몽룡' 인덱싱 
print(my_list[2][1][1]) 
# 인덱스 범위 초과, 음수 사용 이런 인덱싱 개념은 동일
#출력

['임꺽정', '이몽룡'] 
이몽룡 
몽

 

a = [2, "2"] 
print(a[0] * 2) 
print(a[1] * 2)
#출력

4 
22 #문자 '2'가 2개 나열된 형태

 

 

3) 슬라이싱

리스트의 요소가 하나 밖에 없어도 슬라이싱의 결과는 무조건 '리스트'이다.

 

a = [2, "2"] 

print(a[0:2]) 
print(a[0:1])
#결과

[2, '2'] 
[2]

 

4) 리스트 연산

a = [1, 2, 3] 
b = [4, 5, 6] 
print("리스트 덧셈 :", a + b) # 연결 
print("리스트 곱셈 :", a * 2) # 반복 

c = a + b 
print(c) #새로운 리스트가 만들어진다.
#결과

리스트 덧셈 : [1, 2, 3, 4, 5, 6] 
리스트 곱셈 : [1, 2, 3, 1, 2, 3] 
[1, 2, 3, 4, 5, 6]

 

 

 

5) 리스트 수정(변경, 삭제)

 

a = [1, 2, 3, 4, 5, 6] 
a[2] = -1 
print("변경 후 :", a)

#결과

변경 후 : [1, 2, -1, 4, 5, 6]

 

# 연속된 범위의 값을 수정 
a[0:2] = [0] 
print("변경 후 :", a) 
a[0:2] = [6, 7, 8] # 하나씩 들어간다. 
print("변경 후 :", a)

만약, a[0:2] = 0 --> 오류, 슬라이싱의 결과는 '리스트' 이기 때문이다.

#결과

변경 후 : [0, -1, 4, 5, 6] 
변경 후 : [6, 7, 8, 4, 5, 6]

리스트 요소 삭제는 del(a[0]), del(a[0:2]) 같이 del()함수를 이용해 요소를 삭제한다.

 

 

6) 리스트 관련 함수

 

append(value) : 리스트 가장 뒤에 value(요소)를 추가

 

 

문자열은 수정이 불가능하기 때문에 새로운 문자열을 만들어내는 함수이다. 즉, 아래 예제에서 a라는 리스트 자체가 변경된다. append함수는 하나의 요소만 추가할 수 있다.

 

a = [1, 2, 3]

a.append(4)

print("변경 후 :", a)
#결과

[1, 2, 3, 4]

 

 

② sort() : 리스트 정렬하기 (숫자, 알파벳 등)

a = [2, 3, 1, 4] 
print("변경 후 :", a)


a.sort() # 기본 오름차순 
print("변경 후 :", a)


a.sort(reverse = True) # 내림차순 
print("변경 후 :", a)
#결과

변경 후 : [2, 3, 1, 4] 
변경 후 : [1, 2, 3, 4] 
변경 후 : [4, 3, 2, 1]

 

③ reverse() : 리스트 뒤집기 (정렬x, 현재 요소를 그대로 뒤집는다.)

a = [1, 3, 2, 4] 
a.reverse() 
print("변경 후 :", a)
#결과

변경 후 : [4, 2, 3, 1]

 

④ index(value) : 리스트에서 value를 찾고, 그 위치를 반환

만약 찾는 값이 없다면, 오류가 발생한다.

 

a = [1, 2, 3] 
print("a에서 2의 위치 :", a.index(2))
#결과

a에서 2의 위치 : 1

 

⑤ insert(index, value) : 지정한 위치(index)에 값(value) 삽입

append함수와 차이는 append함수는 맨 뒤에 값을 추가하고, insert함수는 지정한 위치에 값을 추가한다.

 

⑥ remove(value) : 리스트에서 '처음' 찾은 값(value) 제거

만약 없는 값을 제거하려고 하면 오류가 발생한다.

 

a = [1, 2, 3, 1] 
a.remove(1) 
print("변경 후 :", a)

#결과

변경 후 : [2, 3, 1]

 

또 다른 값을 제거하는 함수로 del() 이 있다. remove함수와 차이는 다음과 같다.

del(a[0]) --> 첫 번째 요소를 제거(0은 순서)
a.remove(0) --> 정수 0을 찾아서 제거 (0은 값)

 

⑦ count(value) : 리스트에 존재하는 value의 개수를 반환

a = [1, 2, 3, 1, 1, 1, 2, 3, 2, 1, 3, 1, 3, 2] 
print("a에서 2의 개수 :", a.count(2)) 
print()

#결과

a에서 2의 개수 : 4

 

⑧ pop(index) : 리스트에서 (index) 번째 값을 '뽑아낸다'

뽑아낸 값을 '반환'해주고 해당된 인덱스의 값은 제거된다.

 

a = [1, 2, 3, 1] 
print(a.pop(1)) 
print("변경 후 :", a) 
print(a.pop()) # index를 사용하지 않으면 기본 '맨 뒤' 값 선택
print("변경 후 :", a)
#결과

2 
변경 후 : [1, 3, 1] 
1 
변경 후 : [1, 3] 

 

⑨ len() : 요소의 개수를 구하는 함수

a = [1, 2, 3, 4] 
b = "1234" 
c = 1234 

print(len(a)) 
print(len(b))

print(len(c)) # 오류

 

#결과

4 
4
오류

 

위의 예에서 a, b는 각각 리스트, 문자열로 어떤 단일 값이 여러 개 존재하는 경우이다. 하지만 c는 단 하나의 숫자이기 때문에 개수를 구할 수 없다. len함수는 값이 여러개 존재하는 자료형만 사용할 수 있다.

 

⑩ copy() : 모든 값들을 '복제'하여 새로운 리스트 생성

a = [1, 2, 3, 4] 
b = a.copy() 
c = a 

print("기존 a :", a) 
print("복제 b :", b) 
print("대입 c :", c)
#결과

기존 a : [1, 2, 3, 4] 
복제 b : [1, 2, 3, 4] 
대입 c : [1, 2, 3, 4]

 

⑪ clear() : 리스트의 모든 요소 제거

a.clear() 
print(a) # 요소만 제거, 빈 리스트가 된다.

#결과

[]

 

⑫ join() : 리스트의 요소들이 모두 '문자열'인 경우에 '하나의 문자열'로 만들 수 있다.

my_list = ["대", "한", "민", "국"] 
print("".join(my_list))

#결과

대한민국
반응형

1.

upper() : 문자열의 영문을 모두 대문자로 변환하여 새로운 문자열을 만든다.
lower() : 문자열의 영문을 모두 소문자로 변환하여 새로운 문자열을 만든다. 

str1 = "I'm a Boy" 
print(str1.upper()) 
print(str1) # 문자열은 수정 불가능해서 원본 그대로
#결과

I'M A BOY 
I'm a Boy

 

2.

title() : 문자열에 존재하는 '영단어'의 첫 글자를 대문자로 변경

str2 = "python python python" 
print(str2.title()) 
print(str2)
#결과

Python Python Python 
python python python

 

3.

strip() : 문자열 좌우측에 존재하는 '공백'을 제거

str3 = "       공 백 제 거       " 
print(str3.strip()) 
# 공백이 아닌 문자를 만날때까지만 공백을 제거
#결과

공 백 제 거 

 

4.

join() : 특정 문자열을 대상 문자열에 삽입

 

# "A".join("BBB") --> "BABAB"

print(".".join("문자열 삽입함수 join()"))
#결과

문.자.열. .삽.입.함.수. .j.o.i.n.(.)

 

5.

count("A") : 문자열에서 "A"의 개수를 반환 (함수의 결과 값이 A의 개수)

 

str3 = "python python python" 
print("str3에서 p의 개수 :", str3.count("p")) 
print("str3에서 py의 개수 :", str3.count("py"))

# 결과 값이 '개수'이기 때문에 숫자 (정수) 
print("str3에서 x의 개수 :", str3.count("x"))
#결과

str3에서 p의 개수 : 3 
str3에서 py의 개수 : 3 
str3에서 x의 개수 : 0

 

6.

replace("A", "B") : 문자열에서 모든 "A"를 찾아서 "B"로 변경

 

str4 = "replace : python python python" 
print(str4.replace("py", "Py")) 
str3 = "       공 백 제 거       " 
print(str3.replace(" ", ""))
#결과

replace : Python Python Python 
공백제거

 

7. 

index("A") : 문자열에서 "A"를 찾고, 그 위치(index) 반환 (찾지 못하면 오류)

--> 찾은 단어의 첫 위치를 반환하고, index함수 안에 넣은 문자를 찾지 못하면 오류가 난다.

 

str5 = "문자열 위치 찾기 (index)" 
print("str5에서 '열'의 위치 :", str5.index('열')) # count처럼 정수 반환 
print("str5에서 '열'의 위치 :", str5.index("index"))
#결과

str5에서 '열'의 위치 : 2 
str5에서 '열'의 위치 : 11

 

print("문자열문자열".index("열")) # 처음 찾은 위치 
print("문자열문자열".rindex("열")) # reverse : 뒤집다 --> 뒤에서부터 찾음

print("문자열문자열문자열".index("열", 3)) # 3번 인덱스부터 찾기 시작
#결과

2 
5 
5 

 

8.

find("A") : index()와 같다. (단, 찾지 못하면 -1이 반환) , index()와 마찬가지로 rfind() 함수가 있다.

 

print("abcdefg".find("a")) 
print("abcdefg".find("z"))
#결과

0 
-1

 

9.

split("A") : 문자열을 기준 문자("A")로 나눈다.

split()에 기준문자를 따로 정해주지 않으면, 기본이 공백, 여백, 개행 등으로 나누어 준다. split함수 결과는 list자료형이다.

 

str6 = "문자열 나누기 (split)" 
print(str6.split())

print(str6.split("기"))
#결과

['문자열', '나누기', '(split)'] 
['문자열 나누', ' (split)']

 

10. 

eval(expression) : 문자열로 표현된 파이썬 식을 인수로 받아 결과값은 내주는 파이썬 내장함수로 문자열로 된 수식을 계산할때 유용하게 사용될 수 있다.

>>> eval('1+2')
3
>>> eval("'hi' + 'a'")
'hia'
>>> eval('divmod(4, 3)')
(1, 1)
반응형

 

 파이썬 문자열 - 연산, 인덱싱, 슬라이싱, 포매팅 공부

1. 문자열 만들기

문자열을 만드는 방법으로 4가지가 있다.

  • 1. 큰 따옴표 1개

  • 2. 작은 따옴표 1개

  • 3. 큰 따옴표 3개

  • 4. 작은 따옴표 3개

print("[문자열 만드는 4가지 방법]") 
print("1. happy day") 
print('2. happy day') 
print("""3. happy day""") 
print('''4. happy day''')

 

2. 이스케이프 문자

문자열 안에서 특수한 기능을 가지는 문자들이다. 역슬래시 기호(\)로 시작한다.

\n : 개행(줄바꿈) 
\t : tab키를 누른 만큼 간격 띄우기 
\\ : \ 하나를 문자로 사용 
\' : ' 하나를 문자로 사용 
\" : " 하나를 문자로 사용

 

3. 문자열 연산

 

  • + : 문자열을 연결한다.

  • * : 문자열을 반복한다.

print("안녕" + "하세요")

print("안녕" * 5)

 

4. 문자열 인덱싱

문자열에서 특정 순서(인덱스)의 글자를 뽑아낼 때 [ ](대괄호)를 사용한다.

exStr = "안녕하세요."

print(esStr[0], esStr[-1])

 

5. 문자열 슬라이싱

문자열의 인덱스로 특정 범위의 문자를 조각내서 사용할 때 이용한다.

a[0:3] --> 콜론(:)으로 범위 지정 
a[시작인덱스:끝인덱스] --> 끝인덱스는 포함 X 
a[시작인덱스:] --> '시작인덱스'부터 '끝'까지 
a[:끝인덱스] --> '처음'부터 '끝인덱스'까지 (끝인덱스는 포함 X) 
a[:] --> 시작부터 끝 --> 전체

문자열 슬라이싱에서 인덱스를 범위를 초과해도 오류가 나지 않는다. 그리고 만약 문자열 중 첫 글자를 바꾸고 싶다면 이미 만들어진 문자열은 수정이 불가능해서 mystr[0] = 'w' 같이 사용할 수 없다. 따라서 이미 만들어진 문자열은 변경이 불가능해 새로 만들어야 한다.

참고로 인덱싱과 슬라이싱은 문자열뿐 아니라, 하나의 자료가 여러 개의 값으로 이루어진 경우 모두 사용 가능하다.

여기서 문자열이란, 문자 하나하나가 나열된 자료이기에 인덱싱과 슬라이싱이 가능하다.

 

 

6. 문자열 포매팅

 

6-1. 포매팅 서식 문자를 이용한 방법

문자열 안에 값을 삽입하는 방법이다. 포매팅은 아래와 같은 서식 문자들을 사용한다.

%s -->문자열 (String) 
%c -->문자 1개 
%d -->정수 
%f -->실수 
%% -->% 하나를 문자로 삽입

 

다음과 같이 포매팅을 사용하면 된다.

 

1) 문자열 뒤에 바로 % 기호를 붙여서 값을 입력한다.

포맷 코드의 사용은 뒤에 오는 값을 어떤 형태로 삽입할지 결정한다.

print("정수 : %d" % 20) 
my_str = "정수 : %d" % 30 
print(my_str)

print("실수 : %f" % 10.1) 
print("문자열 : %s" % "나는 문자열")

print("정수 : %d" % 10.123) # 실수 값을 정수로 삽입(소수점은 없어짐) 
print("실수 : %f" % 30) # 정수 값을 실수로 삽입(없던 소수점 생김)

#print("정수 : %d" % "1") # 오류! 문자열을 숫자형태로 삽입 불가 
print("문자열 : %s" % 10) # %s는 전부 문자 취급 
print("문자열 : %s" % 10.123)

여러 개 포매팅을 할 경우, 소괄호로 묶어 순서대로 값을 삽입해주면 된다.

print("%d개 이상의 %s 넣기" % (2, "값"))

 

2) 포매팅으로 소수점 표현하기

실수는 기본 소수점 6자리까지 표현하고 그 이상은 자동으로 반올림한다.

print("소수 : %f" % 10.1) # 기본 6자리 
print("소수 : %f" % 10.666666666) # 자동 반올림

print("소수점 지정 : %.3f" % 10.66666666666666)

3) 포맷 코드를 이용한 정렬과 공백

print("[%s] [%s]" % ("파이썬", "재밌다")) 
print("[%10s] [%10s]" % ("파이썬", "재밌다")) # 삽입시 10칸 확보 후 값을 넣겠다. (우측정렬) 
print("[%-10s] [%-10s]" % ("파이썬", "재밌다")) # 삽입시 10칸 확보 후 값을 넣겠다. (좌측정렬)

 

6-2. 포매팅 함수를 이용한 방법(많이 사용하는 방법) - format()

format() 함수는 '문자열'로 사용할 수 있는 '문자열의 함수'이다.

1) 만든 문자열을 변수에 대입

my_str = "제 이름은 {}입니다.".format("홍길동") 
print(my_str)

 

2) 만든 문자열을 바로 출력

print("제 나이는 {}살 입니다.".format(20))

포맷 코드 대신 {} 중괄호를 사용한다. 마치 %s와 같다.

 

3) 여러 값 사용

print("1. 제 이름은 {}이고, {}살 입니다.".format("홍길동", 20)) # 기본은 순서대로 
print("2. 제 이름은 {1}이고, {0}살 입니다.".format("홍길동", 20)) # {}안에 인덱스 사용 
#출력
1. 제 이름은 홍길동이고, 20살 입니다. 
2. 제 이름은 20이고, 홍길동살 입니다.

 

4) 키워드 사용

print("제 이름은 {name}이고, {age}살 입니다.".format(name = "홍길동", age = 20))

 

5) 소수점 표현

print("소수점 3자리 : {:.3f}".format(10.777777))

#출력 
소수점 3자리 : 10.778 

format() 함수 사용 시 중괄호{} 안에 특수한 기능을 추가하는 기호로 콜론(:)을 사용한다.

콜론을 사용할 때는 인덱스 뒤에 위치한다. 여기서 인덱스는 생략이 가능하다.

 

6) 정렬

print("[{}] [{}]".format("파이썬", "재밌다")) 
print("[{:10}] [{:10}]".format("파이썬", "재밌다")) # 10칸 확보, 기본 좌측정렬 
print("[{:>10}] [{:>10}]".format("파이썬", "재밌다")) # 우측정렬 > 
print("[{:<10}] [{:<10}]".format("파이썬", "재밌다")) # 좌측정렬 < 
print("[{:^11}] [{:^11}]".format("파이썬", "재밌다")) # 가운데 정렬 ^ 

print("[{:*^11}] [{:=^11}]".format("파이썬", "재밌다")) # 정렬 후 빈 공간에 값 채우기(단, 1개의 문자로만 채울 수 있다.)
#출력

[파이썬] [재밌다] 
[파이썬       ] [재밌다       ] 
[       파이썬] [       재밌다] 
[파이썬       ] [재밌다       ] 
[    파이썬    ] [    재밌다    ] 
[****파이썬****] [====재밌다====]
# 출력 방법 비교 
print("제 이름은 " + name + "이고,", age, "살 입니다.", sep='')# (1) 포매팅 X 경우 
print("제 이름은 %s이고, %d살 입니다." % (name, age)) # (2) 기본 포매팅 
print("제 이름은 {}이고, {}살 입니다.".format(name, age)) # (3) 포매팅함수

 

 

반응형

 MySQL 관리자 비밀번호 재수정 

 

1. MySQL 관련 프로그램 종료

시작 > 실행 > services.msc 입력
서비스에서 mysql 관련 프로그램을 중시시킨다.

 

아래처럼 사용하는 MySQL을 중지시키면 실행 중이 사라질 것이다.

 

2. cmd 창을 하나 연다.

MySQL 설치 디렉토리의 bin폴더까지 경로를 cmd창으로 이동한다.
(예:  cd C:\Program Files\MySQL\bin)

 

 

3.mysplid.exe --skip-grant 입력 후 실행

실행하면 따로 비밀번호 입력 같은 승인절차 없이 mysql프로세스를 실행시킨다.
이 cmd창은 그대로 두고 새로 하나 창을 열어 똑같이 위의 경로까지 다시 이동한다. 새로운 cmd창에 mysql.exe를 입력하고 비밀번호를 모르므로 그냥 엔터 해서 넘어간다. 그러면 cmd가 mysql로 들어간다.

 

순서대로 입력해준다. 위에서 new password 부분에 자신이 원하는 비밀번호를 입력하면 된다.

열려진 cmd창들을 종료하고 service.msc의 MySQL 관련 프로그램을 시작한다.

이제 재수정한 비밀번호를 입력하고 MySQL에 접근하면 된다.

 

반응형

 css 배경 이미지, background-image 

 

 

배경이미지 속성

 

배경이미지를 불러오는 방식 2가지이다.

background-image:url(img/cat.png);

▷ 부모속성보다 이미지가 작을 경우 반복되는 성격을 가진다.

 

background-image:url(img/cat.png),url(img/dog.png); 

▷ 배경이미지를 반복해 불러올 때 쉼표로 표현한다. 그러나 앞쪽에 불러온 이미지가 위쪽으로 표현된다.

 

 

 

다음으로 배경이미지를 사용할 때 사용하는 여러 가지 속성들이다.

 

background-repeat:no-repeat;

▷ 반복하지 않겠다는 의미이다.

 

background-repeat:repeat-x;
background-repeat:repeat-y;

▷ 각각 x방향, y방향으로 반복을 설정한다.

 

 

background-size:100%;
background-size:auto;
background-size:cover;

위에서 부터 차례대로,

▷ 고정비로 100%를 나타낸다.

▷ 원래 이미지 크기를 유지한다.

▷ 비율을 유지하며 요소가 꽉 차도록 한다.

 

 

background-attachment:scroll;
background-attachment:fixed;

▷ 배경이미지가 스크롤에  영향을 받는다.

▷ 배경이미지가 화면에 고정된다.

 

 

background-position: x위치, y위치;

▷x위치(left, right, center), y 위치(top, center, bottom)를 또는 % 값을 이용해 배경의 위치를 설정해준다.

 

반응형

css/ overflow속성 

 

 overflow

 

안쪽의 내용을 어떻게 잡을지, 어떻게 보여줄지에 대한 속성이다. 자식 요소가 부모 요소의 범위를 초과할 때어떻게 처리할 것인지를 지정해주는 속성이다. 아래에는 overflow 사용 시 이용되는 값들이다.

 

  • visible : 박스를 넘어가도 보여준다.(default 값)

  • hidden : 박스를 넘어간 부분은 보이지 않는다.

  • scroll : 박스를 넘어가든 넘어가지 않든 스크롤바가 나온다.

  • auto : 박스를 넘어가지 않으면 스크롤바가 나오지 않고, 박스를 넘어갈 때에는 스크롤바가 나온다.

  • initial : 기본값으로 설정한다.

  • inherit : 부모 요소의 속성 값을 상속 받는다.

 

 overflow:hidden

 

hidden으로 값을 설정하면 내용이 박스를 넘어갔을 때, 넘어간 부분이 보이지 않게 된다. 

height 값이 없는 상태일 때 높이값을 대신하고, 내용물에 따라 높이가 유동적으로 달라진다.(즉, 내용이 유동적일 때 높이 대신으로 사용)
반대로 height가 있는 상태일 때 적용하면, 높이만큼 흘러넘치는 내용물이 잘려서 보이게 된다.

 

<!DOCTYPE html>
<html>
<head>
<style>
div {
  background-color: #eee;
  width: 200px;
  height: 50px;
  border: 1px dotted black;
  overflow: hidden;
}
</style>
</head>
<body>

<h2>CSS Overflow</h2>
<div>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Laboriosam, 
dicta? Nam exercitationem numquam ab eos fugiat sit voluptates</div>

</body>
</html>

 

결과

 

 

 overflow:scroll

 

내용물이 박스보다 클 때, 넘치는 것을 잘리지 않고 볼 수 있도록 스크롤이 생긴다.

  • overflow-x:scroll; --> x축 스크롤만 생김

  • overflow-y:scroll; --> y축 스크롤만 생김

  • overflow-y:hidden; --> y축 스크롤을 숨김

  • overflow-x:hidden; --> x축 스크롤을 숨김

<!DOCTYPE html>
<html>
<head>
<style>
div {
  background-color: #eee;
  width: 200px;
  height: 100px;
  border: 1px dotted black;
  overflow: scroll;
}
</style>
</head>
<body>

<h2>CSS Overflow</h2>
<div>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Laboriosam, dicta? Nam exercitationem numquam ab eos fugiat sit voluptates, mollitia esse, praesentium id delectus repudiandae nulla quisquam nisi ut, eius ratione!</div>

</body>
</html>
 

결과

 

 

반응형

'HTML & CSS' 카테고리의 다른 글

[CSS] Position 속성  (0) 2020.06.18
[CSS] 배경 이미지  (0) 2020.04.26
[HTML5 / CSS3] 블럭 구조 vs 인라인 구조 vs 인라인블럭 구조  (0) 2020.04.25

 HTML / CSS 기초 공부 

 

블록 구조(block)

 

블록 요소는 일단 기본적으로 줄 바꿈이 일어나는 형태로 영역의 너비가 상위 영역의 전체 너비만큼 만들어지는 형태다. 블록 요소에는 일부를 제외한 블록 요소를 포함하고, 인라인 요소까지 포함 가능하다. 기본 설정이 블럭인 자주 사용하는 태그들은 다음과 같다.

div, p, h1~h6, ul, li, ol, table, form, section, footer...

div{
	display:block;
}

 

인라인 구조(inline)

 

인라인 요소는 글자와 같이 옆으로 나열되는 형태로 줄 바꿈이 일어나지 않는 요소들이다. 인라인은 안의 글자와 같은 내용 길이에 맞게 크기를 차지하는 성질이 있다. 아래에  대표적인 몇가지 inline 태그들이 있다.

span, a, em, i, strong, b, del, ins, sub, sup, textarea...

 

같은 인라인요소를 포함하지만, 블록 요소는 포함 불가능하다. 그리고 인라인요소는 box관련 속성이 적용이 안된다. ex) width, height, margin(top, bottom)(margin은 좌, 우만 적용이 된다) 등 적용 안된다. 참고로 padding 값은 적용이 된다.

 

li{
	display:inline;
}

 

 

인라인-블록 구조(inline-block)

 

옆으로 나열되는 성격을 가진 inline 속성과 폭을 가지는 스타일이 모두 적용되는 block속성 두 가지 모두의 성질을 가진 구조이다. 대표적으로 <img> 태그가 있다. 이미지 태그는 width, height, margin(상하좌우) 속성 적용이 가능하다!.

img{
	display:inline-block;
}

보통 이미지를 사용할 땐 block(박스화)으로 처리해주고 사용하는 게 좋다.

img{
	display:block; /*박스화!*/
}
 

 

반응형

'HTML & CSS' 카테고리의 다른 글

[CSS] Position 속성  (0) 2020.06.18
[CSS] 배경 이미지  (0) 2020.04.26
[HTML5 / CSS3] overflow속성  (0) 2020.04.25

 Javascript 기초 문법 - 변수 , 연산자, 타입 

 

1. 변수

 

변수는 var, let, const로 선언할 수 있다.
어떤 것을 사용하는가에 의해서 scope, 즉 변수의 유효 범위가 달라진다. 변수에 무조건 하나의 값만 넣을 수 있다. 

 

var a = 1;
var b = '안녕';
var a = "aaa";
var a = 'aaa';
var a = true;
var a = [];
var a = {};
var a = undefined;

 

 

 

2. 연산자

 

기본적으로 모든 언어에서 사용되는 연산자랑 동일하게 사용된다. 연산자 우선순위를 표현하기 위해서는 ()를 사용하면 된다. 수학연산자는 +,-,*,/,%(나머지) 등이 있다. 그리고 논리 연산자, 관계 연산자, 삼항 연산자도 있다. 

 

// OR 연산자
const name = "kim";
const result = name || "exam";
console.log(result);
// "kim" 출력

 

var name = "";
var result = name || "exam";
console.log(result);
// "exam" 출력

 

삼항 연산자

간단한 비교나 조건이 있을 때 값 할당에 사용한다. ?앞의 조건식의 결과가 참이면 콜론(:) 앞의 값을 선택하고, 거짓이면 콜론 뒤의 값을 선택한다.

const data = 11;
const result = (data > 10) ? "True" : "fail";
console.log(result);
// "True" 출력

 

비교 연산자

좌항과 우항의 값을 비교할 때 사용하며, 비교에서는 == 보다는 ===는 사용하는 것이 좋다. ==을 자바스크립트에서 사용할 경우 여러 가지 오류가 발생하는 경우가 많기 때문에 주의가 필요하다.

==는 타입은 달라도 값이 같으면 참으로 간주하고, ===는 값과 타입 모두 같아야만 참으로 간주하는 것이 큰 차이다.

0 == "0"; // 참
0 === "0" // 거짓
"0" === "0" // 참
"0" == 0 // 참

 

 

3. 타입

 

자바스크립트에서 타입은 여러 가지가 존재한다. undefined, null, boolean, number, string, object, function, array, Date, RegExp 와 같이 많은 타입이 존재한다. 타입은 선언할 때가 아니고, 실행타임에 결정된다. 함수 안에서의 파라미터나 변수는 실행될 때 그 타입이 결정된다.

타입을 확인하는 방법은 여러 가지가 있다. 문자, 숫자와 같은 자바스크립트 기본 타입은 'typeof' 키워드를 사용해서 체크할 수 있다. 배열은 타입을 체크하는 isArray함수가 표준으로 생겼다.

 

반응형

+ Recent posts