Python 프로그래밍의 기초 ☝

거부기·2022년 5월 25일
1

🎿점프 투 파이썬

목록 보기
2/2
post-thumbnail

게시글의 내용은 '점프 투 파이썬- 2장'을 참고하여 정리한 글 입니다.


🔢 숫자형

  • 숫자형(Number) : 숫장 형태로 이루어진 자료형
    ex) 정수, 실수, 8진수, 16진수 등

🟠 정수형 (Integer) : 양/음의 정수, 0

  a = 1
  a = -1
  a = 0

🟡 실수형 (Floating-point) : 소수점이 포함된 숫자

	a = 1.2
    a = -2.1
    
    👉 컴퓨터식 지수 표현 방식은 e,E로 10의 배수를 표기함
	a = 1.2e-10   # 1.2 x 10의 -10승
    a = 1.2E10    # 1.2 x 10의 10승
   

🟣 8진수와 16진수

	# 8진수 : 숫자 0과 알파벳 o/O로 시작 + 숫자
    a = 0o166
    
    #16진수 : 숫자 0과 알파벳 소문자 x로 시작
    a = 0x8ff
    
    👉 잘 사용되지 않으니, 참고만 하자

🔢 숫자형 연산자

🟤 사칙연산 (➕,➖,➗, ✖)

	a = 1
    b = 2
    
    # 더하기
    a + b
    3
    
    # 빼기
    a - b
    -1
    
    # 나누기
    a / b
    1/2
    
    #곱하기
    a * b
    2

🔵 제곱, 몫, 나머지 연산자

	a = 2
    b = 3
    
    # 제곱
    a ** b
    8
    
    # 몫
    b // a
    1
    
    # 나머지
    b % a
    1
    

🔡 문자형

  • 문자형(String) : 문자, 단어 등으로 구성된 문자들의 집합

  • 문자열 만드는 방법
    1. 큰 따옴표/작은 따옴표로 양쪽 둘러싸기
    2. 큰따옴표/작은 따옴표 연속 3개를 써서 양쪽 둘러싸기

    👉 따옴표로 둘러싸이면 문자열이라고 보면 됨.

  "파이썬 공부"
  'Python'
  
  """ 파이썬 공부 정말 재밌다"""
  ''' 파이썬 공부 열심히 하자'''

  • 만일 문자열에 따옴표로 강조를 하고 싶다면❓
  1. 큰 따옴표로 양쪽을 둘러싸면 작은 따옴표로 강조를,
    작은 따옴표로 양쪽을 둘러싸면 큰 따옴표로 강조를 하면 된다.
	"'파이썬'은 정말 재밌다니깐"
    
    출력결과 : '파이썬'은 정말 재밌다니깐
    
    # 아니면 SyntaxError가 발생
  1. 백슬래시()를 강조하려는 따옴표 앞에 사용하면 된다.
	"/"파이썬은/"은 정말 재밌다니깐"
    
    출력결과 : "파이썬"은 정말 재밌다니깐

  • 여러 줄인 문자열을 변수로 대입하고 싶다면❔
  1. 이스케이프 코드 (\n) 삽입
	"나는 오늘도 파이썬 공부를 한다. /n 파이썬은 정말 재밌다."
    
    출력결과 : 나는 오늘도 파이썬 공부를 한다.
    		  파이썬은 정말 재밌다.
  1. 연속된 큰 따옴표/작은 따옴표 3개 양쪽으로 삽입
	"""
    나는 오늘도 파이썬 공부를 한다.
    파이썬은 정말 재밌다.
    """
    
    출력결과 : 나는 오늘도 파이썬 공부를 한다.
    		  파이썬은 정말 재밌다.

🔠 문자형 연산자

🟢 더하기 : 문자열과 문자열을 연결해줌.

	a = "파이썬은"
    b = " 정말 재밌다!"
    
    a+b
    "파이썬은 정말 재밌다!"

🟣 곱하기 : 곱하는 숫자만큼 문자열을 반복해줌.

	c = "여름"
    
    c * 3
    "여름여름여름"

🟠 길이 : len 함수

	👉 공백도 포함하는게 특징이다.
    d = 그로밋 최고
    
    len(d)
    6

🔤 문자열 인덱싱과 슬라이싱

⚫ 인덱싱(Indexing) : 가르키기, 공백도 문자열과 동일하게 취급

    a = "April May"
    
    # 원하는 부분만 인덱싱
    a[0]    👉 인덱싱은 1이 아니라 0부터 시작.
    A
    
    a[-1]   👉 인덱싱에서 맨 뒤에는 -1로 찾아내면 쉬움.
    y
    
    # 범위 설정 : [첫번째 부분 : 마지막 부분 +1], "-" 사용가능
    a[0:2]  👉 마지막 원하는 부분 + 1을 해야 원하는 부분이 나옴.
    Ap
    
    a[6:]   👉 앞/뒤 공간을 비우면 끝까지 자동으로 설정됨.
    May
    
    # 원하는 부분을 뽑아내 더할 수 있음
    a[0] + a[6]
    AM

⚫ 슬라이싱(Slicing) : 자르기

	a = 20220526
    year = a[0:4]
    month = a[4:6]
    day = a[6:]
    
    year
    month
    day
    
    2022
    05
    26

⚫ 문자열 바꾸기 : immutable한 자료형

	# 따로 인덱싱해서 그 부분을 원하는 문자로 못 바꿈
    a = may
    a[2] = i
    
    Error
    
    # 따로 바꾸고 싶은 부분을 제외해 인덱싱해서 + 하는 방법뿐
    a = may
    a[0:2] + "i"
    
    mai

⚫ 문자열 포매팅(Formatting) : 문자열 안의 특정한 값을 바꿔야 할 경우

	# 형식을 우선 앞에 넣어놓고, 뒤에 따로 형식에 맞는 값을 넣는 방식
      숫자는 %d, 문자는 %s
      
      "%d pencils" % 3
      3 pencils
      
      "%s pencils" % "three"   👉 문자는 꼭 따옴표 안에 넣어줘야 함.
      three pencils
      
    # 변수에 따로 넣어서 뒤에 형식에 맞는 값 대신 변수를 넣어도 됨.
    
    # 2개 이상의 값 같이 넣기
    "%d pencils, %s erasers" %(3,"two")
  • 문자열 포맷 코드
    1. %s : 문자열
    2. %c : 문자 1개
    3. %d : 정수
    4. %f : 부동소수
    5. %o : 8진수
    6. %x : 16진수
    7. %% : literal (문자 % 자체)

👉 여기서 %s의 경우 어떤 형태의 값이든 변환해 넣을 수 있음 (ex 숫자)

  • 포맷코드와 숫자 함께 사용
  1. 정렬과 공백
	# 오른쪽 정렬, 나머지 공백
    "%10s" % "Python"
    "     python"
    👉 문자열 길이가 10개인데, 거기서 오른쪽 정렬하고 나머지 공백으로 표시됨.
    
    
    # 왼쪽 정렬, 나머지 공백 ( 반대로 - 붙이면 된다.)
     "%-10s" % "Python"
    "python     "
    
    # 이런 경우는 Python이 왼쪽 정렬, 나머지 공백
    ""%-10sgood" % "Python"
    "python good"
  1. 소수점 표현
    # %0.소수점 뒤에 나올 숫자의 개수 f
    "%0.2f" % 3.1453
    3.14

    # 응용, 위에 정렬과 공백과 함께 사용할 수 있다.
    "%10.2f" % 3.1453
    "      3.14"
  
  1. format 함수를 사용 : 변수 삽입도 가능
	# 좀 더 쉽게 포매팅할 수 있는 방법
    "{0} pencils".format(3)
    3 pencils
    
    # 2개 이상의 값일 경우, 인덱스 항목처럼 숫자로
    "{0} pencils, {1} erasers".format(3,"two")
    
    # 인덱스 형식 대신 변수로 넣어도 가능
    "{number} pencils".format(number = 3)
    "3 pencils"
    
    # 위에 요소들 혼용해서 사용 가능
    
    # 왼쪽 정렬 :<, 오른쪽 정렬 :>, 가운데 정렬 :^
    "{0:<10}".format("Python")
    "python     "
    
    "{0:>10}".format("Python")
    "     Python"
    
    "{0:^11}".format("Python")
    "   Python   "
  1. 소수점 표현
	# 소수점 {0:0.소수점 뒤에 나올 숫자의 개수 f
    "{0:0.2f}".format(3.1453)
    "3.14"
    
    👉 이것도 마찬가지로 :0 뒤에 0 대신 10과 같은 숫자를 넣으면 정렬 가능
  1. 공백 채우기
	# 공백 채우기 : {0: 반복하고 싶은 문자   정렬하고 싶은 것의 기호  문자열 길이}
	"{0:=^11}".format("Python")
    "===Python==="

💡 f 문자열 포매팅

  • 문자열 앞에 f 접두사를 붙이면 됨
	# 변수 값 참조 가능, 수식 함께 사용도 가능
    name = "그로밋"
    age = 8
    f'나의 이름은 {name}입니다. 나이는 {age+1}입니다.'
	"나의 이름은 그로밋입니다. 나이는 9입니다."
    
    
    # 딕셔너리도 참조도 가능
    d = {'name':'그로밋', 'age':8}
	f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.'
	"나의 이름은 그로밋입니다. 나이는 9입니다."
    
    # 정렬 가능 f'{반복을 원하는 값 : 원하는 정렬 표시  문자열 길이}
    f'{"Python":<10}'
    "Python     "
    
    # 공백 채우기
    f'{"Python":!<10}'
    "Python!!!!!"
    
    # 소수점 표현 + t 정렬도 같이 가능
    a = 3.1453
    f'{a:0.2f}'
    3.14

🔣 문자열 관련 함수

🔸 count : 문자 개수

	a = Python
    a.count("o")
    1

🔹 find / index : 위치

	a = Pythono
    a.find("o")
    5       👉 문자 제일 먼저 나온 위치를 반환, 찾는 문자 / 문자열이 존재하지 않으면 -1 반환
    
    a = Python
    a.index("a")
    Error   👉 찾는 문자 / 문자열이 존재하지 않으면 오류 (find 함수와 다른 점)

🔸 upper, lower : 대문자 ↔ 소문자

	a = Python
    a. upper()
    "PYTHON"
    
    a = Python
    a. lower()
    "python"

🔹 strip : 공백 지우기

	a = " Python "
    a.lstrip()
    "Python "
    
    a = " Python "
    a.rstrip()
    " Python"

🔸 replace : 문자열 바꾸기

	a = "Welcome to Python"
    a.replace("Python","the blog")
    "Welcome to the blog"

🔹 split : 문자열 나누기

	a = "Welcome to Python"
    a.replace()      👉 ()안에는 기준으로 나누고 싶은 값을 넣어주면 됨.
    ["Welcome","to","Python"]
profile
느리지만 확실하게

0개의 댓글