Post

[Python] 한 페이지에 싹 정리

[Python] 한 페이지에 싹 정리

분명 쌩 기초는 ‘코드잇’에서 다 땐 것 같은데;;
image

돌아서면 다 까묵어부러쓰…(금붕어 쉨)
그.래.서
다시 정리하기로 했다..

기본

출력

1
2
print("hello world")  
#출력값 : hello world  
C++ 이나 Javascript 와는 다르게 걍 이렇게 적으면 출력이 된다 (;) 세미클론 이딴거 필요없다
1
2
3
print('hello')  
print("world")  
#출력값 : hello world
심지어 (\n) 이딴거 없이도 줄바꿈 쌉가능이다 그리고 이 언어는 ” , ‘ 이거 다 인식을 한다..
1
2
3
print('hello',end=' ')  
print("world")  
#출력값 : hello world  
줄 바꿈을 포함 한다고 하는데, end 라는 매개변수 이용하면 이렇게 바꿀 수 있다. 이건 end=내용 넣겠다는 소리임
1
2
print('hello', 'python', 'world')
#출력값: hello python world
여러값을 , 로 구분하면 자동으로 공백 ( ) 이 추가됨
1
2
print('hello', 'python', 'world', sep='~')
#출력값 : hello~python~world
공백이 아닌 다르게 구분자를 쓴다면 sep 매개변수 사용함
1
2
3
4
5
print(5+5)
print(12-2)
print(5*2)
print(100//10)
#출력값 : 10
기본적인 사칙연산 이런식으로 쓰지만!! ‘/’ 이거는 나누기 하면 .0 소수점까지 표기됨, ‘//’이거는 몫만, ‘%’ 이거는 나머지
1
2
3
print("사과"*2)
print("사과"+"사과")
#출력값 : 사과사과
이 언어는 문자열에도 연산이 적용 가능한데 예시를 저러함

변수

1
2
3
4
5
6
name = 'Bin'
age = 31
print(name)
print(age)
#출력값 : Bin
         31
즈어어기 C++ 이나 Javascript 와는 다르게 변수 선언시 별도의 뭐가 필요없다 뭐 let 이라던지,*int 라던지 필요가 없다.

포맷

1
2
3
4
5
name = 'Bin'
age = 31
print(f" my name is {name} and {age} years)  #이런식으로 f"{변수} 이런식으로 출력하거나
print("my name is {} and {} years".format(name,age)) #이런식으로 .format(변수,변수) 이런게 함
print("my name is {1} and {0} years".format(age,name))  # 아니면 이렇게 인덱스 수를 정해줘서 하거나
이중에 편한걸로 하자.. 근데 나는 f”{변수} 형식이 편함.(밑에 자세히..)

함수

1
2
3
4
5
6
def sum(n1,n2):       #함수 정의  
    res = n1 + n2
    return res
num = sum(2,4)        #함수 호출  
print(num)            
#결과값 : 6
파라미터: 함수에 넘겨주는 값. return문: 함수의 반환값, 함수 종료 시킴. 이 언어는 함수 정의시 def 이걸 사용 Javascript 의 경우 function 그리고 함수 정의시 : 클론을 사용
1
2
3
4
5
6
def myself(name,nationality="한국"):
    print(name)
    print(nationality)
myself("Bin")
#출력값 : Bin
         한국
옵셔널 파라미터: 파라미터에 기본값을 설정해, 함수 호출 시 파라미터 값을 꼭 넘겨주지 않아오 됨. 단 마지막에 써야한다잉

자료형(Data Type)

숫자형 (Number)

정수 (Integer)

  • 예시: -1, -2, 0, 1, 2

소수 (Floating Point)

  • 예시: 3.14, -7.3, 2.0

숫자형 연산

연산예시결과
덧셈7 + 411
뺄셈7 - 43
곱셈7 * 428
나눗셈7 / 41.75
7 // 41
나머지7 % 43
거듭제곱7 ** 42401

축약 연산자

연산예시
+=x = x + 3x += 3
-=x = x - 3x -= 3
*=x = x * 3x *= 3
/=x = x / 3x /= 3

반올림 함수

1
2
3
round(숫자, n)  # 특정 숫자를 소수점 n번째까지 반올림
round(5.1479, 2)
# 출력값: 5.15

문자열 (String)

기본 형태

1
2
"Hello" 'Hello'
"I'm \"excited\" to learn Python!"  # 문자열 안에 따옴표를 포함하고 싶을 때

문자열 연결

1
2
3
"Hello" + "World"   # "HelloWorld"  
"2" + "5"           # "25"  
"Hello" * 3         # "HelloHelloHello"

문자열 포매팅

format() 메서드

1
2
3
4
5
6
7
8
"오늘은 {0}년 {1}월 {2}일입니다.".format(2024, 2, 23)  
# 오늘은 2024년 2월 24일입니다.

"저는 {1}, {0}, {2}를 좋아합니다.".format("아이브", "에스파", "르세라핌")
# 저는 에스파, 아이브, 르세라핌을 좋아합니다.

"{0} 나누기 {1}은 {:.3f}입니다.".format(17, 4, 17/4)  
# 17 나누기 4는 4.250입니다.

f-string 방식

1
2
3
4
5
name = "장원영"
age = 21

print(f"제 이름은 {name}이고 {age}살입니다.")
# 제 이름은 장원영이고 21살입니다.
편한 방식을 사용하자 걍..

문자열 조작 메서드

strip() 메서드

문자열 양 끝의 공백과 화이트스페이스(예: \t, \n) 제거**

1
2
"\t 오늘 날씨 되게 좋다! \n".strip()  
# "오늘 날씨 되게 좋다!"

split() 메서드

특정 문자를 기준으로 문자열을 나눠 리스트 생성**

1
2
3
4
5
"1.2.3.4.5.6".split(".")  
# ["1", "2", "3", "4", "5", "6"]

"밥을 먹고 다니냐".split()  
# ["밥을", "먹고", "다니냐"]

형 변환

정수로 변환 : int(3.8) ⟶ 3, int("2") ⟶ 2

소수로 변환 : float(3) ⟶ 3.0

문자열로 변환 : str(3) ⟶ "3"

불린형(Boolean)

True, False

논리 연산자

  • A and B ⟶ A, B 모두 True여야 True
  • A or B ⟶ A, B 중 하나만 True여도 True
  • not A ⟶ 반대의 불리값 반환

비교 연산자 : <, >, <=, >=, ==, !=

  • 예시: 7 != 7 or not (4 < 3 and 12 > 10) ⟶ True

리스트와 사전

리스트(List)

  • 변수에 리스트 저장하기
    1
    2
    3
    4
    
    numbers = [2, 3, 5, 7, 11, 13]
    names = ["카리나", "원터", "닝닝", "지젤"]
    #  인덱스   0    ,   1  ,   2   ,   3
    #마이너스   -4   ,   -3 ,   -2  ,   -1
    
  • 인덱싱(indexing) : 인덱스를 통해 리스트 요소를 받아온 것
    1
    2
    
    numbers[1]  # 3
    names[-3]   # "원터"
    
  • 슬라이싱(Slicing) : 리스트의 일부를 통째로 잘라서 받아온 것
    1
    2
    3
    4
    
    numbers[0:3]    # [2, 3, 5]             # 인덱스 0부터 인덱스 2까지
    numbers[3:]     # [7, 11, 13]           # 인덱스 3부터 끝까지
    numbers[:3]     # [2, 3, 5]             # 처음부터 인덱스 2까지
    numbers[:]      # [2, 3, 5, 7, 11, 13]  # 전체 리스트 복사
    
  • 리스트에 있는 요소 변경
    1
    
    numbers[0] = 15  # numbers의 인덱스 0의 요소가 15로 변경
    
  • 리스트 내장 함수
    1
    2
    3
    4
    5
    
    len(numbers)         # 리스트 요소 개수 6
    numbers.append(15)   # 리스트 마지막에 요소 추가                     -> [2,3,5,7,11,13,15]
    numbers.insert(2,9)  # 특정 인덱스(2번 인덱스)에 요소 삽입            -> [2,3,9,5,7,11,13]
    del numbers[2]       # 인덱스를 통해 요소 삭제 (2번 인덱스)           -> [2,3,7,11,13]
    numbers.remove(2)    # 값을 통해 리스트 요소 삭제  (2라는 값을 삭제)   -> [3,7,11,13]
    
  • 리스트 정렬
    1
    2
    
    sorted(numbers)                # 오름차순으로 정렬함   -> [2,3,5,7,11,13]
    sorted(numbers, reverse=True)  # 내림차순으로 정렬     -> [13,11,7,5,3,2]
    
  • 리스트 값 존재 확인하기
    1
    2
    3
    
    numbers = [2,4,6,8,10]
    4 in numbers      #True
    7 not in numbers  #True  
    
  • 리스트 복사
    1
    2
    
    x = [2,3,5,7,11]
    y = list(x)   # 변수 y에도 x 리스트가 저장됨
    
  • 리스트,문자열
    1
    2
    3
    4
    5
    
    alphabet_string = "ABDCEFG"
    alphabet_string[0]        # 문자열 인덱싱    -> "A"
    alphabet_string[0:5]      # 문자열 슬라이싱  -> "ABCDE"
    len(alphabet_string)      # 문자열 길이      -> 7
    alphabet_string[0] = "Z"  # 리스트랑 달리 수정 안됨 이건 실행 불가 안된거임
    

사전(Dictionary)

  • 키-값 쌍(key-value pair)의 형태
    1
    2
    3
    4
    5
    6
    
    my_dictionary = {5:29, 2:4, 3:9}
    my_family = {"":"Mom","":"Daddy","자식":"Child"}
    my_dictionary[2]          # 키를 통해 받아온 값   ->  4
    my_dictionary[9] = 81     # 새로운 키 값 추가     -> {5:25, 2:4, 3:9, 9:81}
    my_family.values()        # 값 목록 확인         -> dict_values(['mom','Daddy','Child'])
    my_family.keys()          # 키 목록 확인         -> dict_keys(['마', '빠', '자식'])
    

제어문

if조건문

  • if조건 부분 : 조건 부분이 True이면 실행
    1
    2
    3
    4
    5
    6
    7
    8
    
    if total >= 90:       -> total 90 이상 안되면 밑으로 넘어감  
     print("A")
    elif total >= 80:     -> 안되면 넘어가고  
     print("B")
    elif total >= 70:
     print("C")
    else:                -> 모든 조건 없을시  
     print("F")
    

while반복문

  • while조건 부분 : 조건 부분이 True일 동안 실행
    1
    2
    3
    4
    
    i = 1
    while i <= 3:
      print("파이썬 어렵다")   # 세번 출력함  
      i += 1                 #  i = 1 + 1 같은 의미
    

for반복문

  • for변수in리스트(or문자열) : 리스트 요소가 차례대로 변수에 대입되면 실행됨
    1
    2
    3
    
    my_list = [2,3,5]
    for number in my_list:
      print(number)        #my_list 요소 순서대로 출력
    
  • range 함수
  • range(stop) 0부터 stop-1까지의 범위 숫자
  • range(start, stop) start 부터 stop-1까지의 범위 숫자
  • range(start, stop, step) start 부터 stop-1까지 step 간격의 숫자
    1
    2
    
    for i in range(3,17,3):
     print(i)                 # 3,6,9,12,15 출력
    

break , continue**

  • break : 반복문 종료 탈출함
    1
    2
    3
    4
    5
    6
    
    i = 100
    while True:
      if i % 23 == 0:
          break              # i가 23의 배수면 종료  
      i += 1
    print(i)
    
  • continue : 다음 조건 부분으로 넘어감
    1
    2
    3
    4
    
    for i in range(1,11):
      if i % 2 ==1:
          continue           # i가 홀수면 다음 조건으로 넘김  
      print(i)
    

사용자 입력

input 함수

  • input(“문자열”) 해당 문자열은 사용자에게 입력을 받기 전 콘솔에 출력 됨
  • input 함수를 통해 입력받은 값을 변수에 저장해서 씀
  • input 함수를 통해 입력받은 값은 문자열 임!!
  • 숫자 데이터로 받아 쓸려면 형변환 필요함!!
    1
    2
    
    number = int(input("숫자를 입력하세요:"))
    print(number + 2)                # 어떤 숫자든 입력하면 거기에 + 2 해서 출력
    

파일 읽고 쓰기

파일 읽기

  • open(파일 경로,”r”) read
    1
    2
    3
    
    with open("text_file.txt","r") as f:      # 읽어들인 파일을 f라는 변수에 저장함  
      for line in f:
          print(line)                       # 파일 내용이 한 줄씩 출력됨  
    

파일쓰기

  • open(파일 경로, “w”) write
    1
    2
    3
    
    woth open("text_file.txt","w") as f:     # 내용을 적을 파일을 f라는 변수에 저장
      f.write("Hello World!\n")
      f.write("Nice to Meet You!")
    
    text_file.txt가 없으면, 생성후 내용 입력
    text_file.txt가 있으면, 파일에 내용 덮어씀
  • open(파일 경로, “a”) append
    1
    2
    3
    
    with open("text_file.txt","a") as f:     # 내용을 쓸 파일을 f라는 변수에 저장함
      f.write("Hello World!\n")
      f.write("Nice to Meet You!")
    
    text_file.txt가 없으면 역시나 생성후 내용 입력
    text_file.txt가 있으면, 해당 파일 마지막에 내용이 추가됨

일단 여기까지 정리를..하면 뭐 충분하지 않을까..??
남은건 연습…

This post is licensed under CC BY 4.0 by the author.