*자료형

자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등과 같이 자료 형태로 사용하는 모든 것을 뜻한다. 프로그램의 기본이자 핵심 단위가 바로 자료형이다.

1.숫자형
*정수
*실수(4.27e10=4.27*10의10승)
*8진수(0o177=1*8의2승+7*8+7=127)
816진수(0xABC10*16의2승+11*16+12=2748)(A:10, B:11, C:12)


*숫자형 연산자
+-/*
**-제곱
%-나머지
//-몫
(a+=1)=(a=a+1)-복합연산자

2.문자열
*사용법: ""로'' 둘러 쌈
*문자열도 더하고 곱할 수 있다.
head="seo"
body="chan"
print((head+body)*2)
->seochanseochan

*문자 길이 사용: len()
*문자열 인덱싱: a[3]-"life"-->4번째인 e이다 /a[-2]는 뒤에서 2번째인 f가 나옴
*문자열 슬라이싱: a[0:3]은life가아닌 lif ([0],[1],[2])만 나와 [3]은 제외 됨=(0 <= a < 3)
*** 
a = "Pithon"
>>> a[1]
'i'
>>> a[1] = 'y'->>>오류
문자열의 요솟값은 바꿀 수 있는 값이 아니기 때문이다(그래서 문자열을 ‘변경 불 가능한(immutable) 자료형’이라고도 부른다).

*문자열 포매팅: %d=%1 / %s=%"문자"
"%10s" % "hi"
->'        hi'
*format함수 사용한 포매팅
#format으로 숫자 대입하기
print("I eat {0} apples".format(3))
나머지는 덜 중요하다 생각하여 그때 그때 다시 공부하기

3.리스트 

*사용법: 리스트를 만들 때는 위에서 보는 것과 같이 대괄호([])로 감싸 주고 각 요솟값은 쉼표(,)로 구분해 준다

*리스트 인덱싱
>>> a = [1, 2, ['a', 'b', ['Life', 'is']]]
>>> a[2][2][0]
'Life'

*리스트 슬라이싱
>>> a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
>>> a[2:5]
[3, ['a', 'b', 'c'], 4]
>>> a[3][:2]
['a', 'b']

*리스트 연산=문자열 연산이랑 비슷함
*리스트 요소 수정
del
>>> a = [1, 2, 3, 4, 5]
>>> del a[2:]
>>> a
[1, 2]
리스트 관련 함수-apppend/sort/reverse/insert/remove/pop/count/extend....이 함수도 차차 알아가기로

4.튜플
*리스트는 []/튜플은()
t1 = ()
t2 = (1,) # 1개의 요소를 가질때는 반드시 뒤에 콤마,를 붙여줘야한다.
t2= (1, 2, 3)
t4 = 1, 2, 3 # 괄호를 생략해도 사용할 수 있다

*리스트는 요솟값의 생성, 삭제, 수정이 가능하지만, 튜플은 요솟값을 바꿀 수 없다.
*튜플도 인덱싱, 슬라이싱, 더하기(요솟값이 바뀌는 게 아니다), 곱하기, 길이 구하기 다 가능(함수는 안됨)

5.딕셔너리(key:value)
*딕셔너리는 리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻는다.
*딕셔너리 추가 삭제

#딕셔너리 쌍 추가
a = {1: 'a'}
a[2] = {'b'} #a = {1:'a', 2:'b'} 값을 가지게 된다.
a['e'] = {'d'} #a = {1:'a', 2:'b', 'e':'d'} 를 추가하게 된다.
#앞서배운 인덱스가 딕셔너리에선 항상 정수만이 아닌 문자로도 들어 갈 수 있게 된다.


#딕셔너리 삭제하기
a = {1:'a', 2:'b', 'e':'d'}
del a[1] #1:'a'가 삭제되어 a = {2:'b', 'e':'d'}가 된다.
#del과 함께 a[key]값을 넣어주면 삭제가 이루어진다.

*딕셔너리 함수
key,value,item,clear,get, name in a(true or false)
a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
a.keys()
dict_keys(['name', 'phone', 'birth'])

6.집합 자료형
*set()의 괄호 안에 리스트를 입력하여 만들거나 다음과 같이 문자열을 입력하여 만들 수도 있다.
*특징:중복x 순서x
s2 = set("Hello")
s2
->{'e', 'H', 'l', 'o'}
*if. 집합에서 인덱싱을 사용하고 싶다면 list(), tuple()를 이용해서 변환 후 사용 해야한다.

s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
*교집합 구하기
s1 & s2 #{4,5,6}을 반환
s1.intersection(s2) #이런식으로도 {4,5,6} 교집합을 구할 수 있음

*합집합
s1 | s2 #{1,2,3,4,5,6,7,8,9}를 반환한다.
s1.union(s2) #{1,2,3,4,5,6,7,8,9}를 반환 할 수 있다.

*차집합
s1 - s2 #{1,2,3}을 반환
s1.difference(s2)# s1 - s2를 difference 함수로 표현할수있음
s2 - s1 #{7,8,9}를 반환 
s2.difference(s1)# s2 - s1를 difference 함수로 표현할수있음

*집합함수
#1개 값만 추가(.add)
s1 = set([1,2,3])
s1.add(4) #s1 = {1,2,3,4}로 4가 추가된다.

#여러 개 추가하기(.update)
s1 = set([1,2,3])
s1.update([4,5,6]) #s1 = {1,2,3,4,5,6}으로 추가됨

#특정 값 제거(remove)
s1 = set([1,2,3])
s1.remove(2) #s1 = {1,3}으로 2가 제거됨

-리스트, 튜플, 딕셔너리, 집합 특징 비교요약


7. 불 자료형
*불(bool) 자료형이란 참(True)과 거짓(False)을 나타내는 자료형이다.
*문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면("", [], (), {}) 거짓이 되고 비어 있지 않으면 참이 된다.
>>> bool([1, 2, 3])
True
>>> bool([])
False
>>> bool(0)
False
>>> bool(3)
True

8.변수란?
변수=변수에 저장할 값
*다른 프로그래밍 언어인 C나 JAVA에서는 변수를 만들 때 자료형의 타입을 직접 지정해야 한다. 하지만 파이썬은 변수에 저장된 값을 스스로 판단하여 자료형의 타입을 지정하기 때문에 더 편리하다.
 
 
리스트/튜플/딕셔너리/세트 구분

- List

1. [ ]를 사용한다.

2. 추가,수정,삭제가 가능하다.(mutable하다.)

3. 순서가 있어서 인덱싱, 슬라이싱을 사용 할 수 있다.



- Tuple

1. ( )를 사용한다.

2. 추가,수정,삭제가 불가능하다.(immutable하다.)

3. 순서가 있어서 인덱싱, 슬라이싱을 사용 할 수 있다.



- Dictionary

1. { }를 사용하고, ':'를 통해 key와 value값을 정해준다.

2. 추가,수정,삭제가 가능하다

3. 순서가 중요하지 않다. 튜플 리스트와 달리 인덱싱으로 접근하지 않고 key로 접근을 해서 value의 값을 얻어낸다.



- Set

1. .set([ ])를 사용해서 집합을 만든다.

2. 함수로 추가, 제거가 가능하다.

3. 중복을 허용하지 않는다

4. 순서가 없기 때문에 인덱싱을 통해 값을 얻을 수 없다.

'Language > Python' 카테고리의 다른 글

연산자  (2) 2024.10.24
변수와 데이터형  (0) 2024.10.21
미리 만드는 쓸 만한 프로그램  (0) 2024.10.18
파이썬-함수  (1) 2024.03.15
파이썬-제어문  (2) 2024.03.15

1주차 과제

기술과제

  1. 웹브라우저가 무엇인지?
  2. 서버가 무엇인지?
  3. 클라이언트가 무엇인지?
  4. IP, DNS, Domain, PORT가 무엇인지?
  5. 네트워크가 무엇인지?
  6. 공유기가 무엇인지?
  7. HTTPS가 무엇인지?
  8. DOM이란 무엇인가?
  9. 브라우저 렌더링 과정

코드과제
-파이참 깔기
 
 
 
*웹 브라우저
웹사이트를 볼 때 사용하는 다양한 소프트웨어
(ex:크롬,사파리,익스플로어)

개발툴ide
html:웹사이트의 정적인 데이터를 만듬(ex: 나무위키)
java script: html의 한계를 넘어 좀 더 다이나믹 한 동작이 가능하게 만듬(ex:레이아웃이 나타나거나 사라짐/ 메세지 창이 뜨거나)
css:html을 꾸며지기 위해 만들어짐(ex:사이즈, 색깔, 둥글게)

*서버
서비스를 제공하는 서버
(ex:네이버)

http:클라이언트와 서버가 html을 주고 받는 '통신'을 넘어 '다양한' 데이터를 주고 받는 과정


*클라이언트
서버에게 제공 받는 클라이언트
(ex:크롬)

*ip: 컴퓨터의 집 주소

*domain: ip의 별명(우리가 보기에는 도메인이 보기 더 편하다)

*dns: 사용자에게 도메인을 ip주소로 바꿔 알려주는 서버


*port:서비스 번호

 


*네트워크
통신이 가능한 범위가 점점 커지게 된 형태가 인터넷
해저케이블, 땅에 묻혀있는 선...등등 덕분에 우리가 통신이 가능하다

*공유기
인터넷 밖에서(사설) 하나의 네트워크 망을 만든다

ipv4-가능한 ip 숫자=43억<70억 전세계 인구
해결방법
1.ipv6
2.공유기
public공인-인터넷 안
private사설-인터넷 밖에서 사용->공유기-하나의 네트워크 망을 만든다


*https
네트워크 내 해킹이 있을 수 있기에 s를 추가해 암호화 하여 받아 전달

(s가 있는 경우 데이터 정보를 암호화 하여 받아 전달, 없는 경우 또는 해킹은 직접 서버로 가지 않고 해커로 전달되어 데이터가 공개 되고 서버로 이동 하기 때문에 보안에 문제 있음)

*dom(document object model)
웹브라우저가 Html을을 object(객체)로 바꿔 컨트롤 하기 쉽게 만드는 과정
(보안에서 중요하다->웹60%/)

object-데이터의 형태
{
"name" : "짱구
"age":5
}

document=-크롬이 html을 object로 바꿈->컨트롤하기 쉽게

파이썬 딕셔너리=dom 비슷하다

 

*랜더링

 HTML이랑 CSS랑 Javascript를 이용해서 열심히 내가 막 만든 페이지를 사용되는 각각의 브라우저(크롬,익스플로러,파이어폭스 등등)에 보여지게 하는 것

 

*파싱

랜더링에서 HTML, CSS를 파싱해서 DOM트리, CSSOM트리로 만든다는건 내가 만든 HTML이랑 CSS, JS파일을 컴퓨터가 분해하고 분석해서 컴퓨터 자신이 알아먹을수 있는 형태로 조립하는 것

 

'CS > Basic keyword' 카테고리의 다른 글

호스팅, ssh란?  (0) 2024.03.21

+ Recent posts