Python

Python 설정 및 기초(변수, 문자열, IF) - AWS 풀스택 과정 (예습) 1일차

awspspgh 2024. 7. 2. 01:14

이미지 출처: 이젠 아카데미 학원

 

 수강생이 된 저는 2024년 7월 15일 ~ 2024년 1월 16일까지 총 6개월 동안 풀스택 과정을 수강을 하게 되었습니다.

6개월 동안 많은 내용을 배우기에 시간이 지날수록 학원에서 배웠던 내용을 잊어버리게 되는 것이 당연하다고 생각합니다.

그렇기에 6개월 동안 배우는 내용을 정리하기 위해서 즉, 제가 복습하기 위해서 적어 놓은 것입니다.(일개 수강생이 적는 것이기에 틀린 내용이 있을 수 있습니다. 참고로만 봐주세요!!)

 

 제가 수강을 시작하기로 한 학원에서는 7월1일 ~ 7월 5일 동안 예습 과정을 거친 후 7월 15일부터 정식 과정을 거치기로 했습니다. 그러하여 7월 1일날 강의를 수강했기에 이 날 배웠던 Python의 기초에 대해서 정리하도록 하겠습니다.

 

목차
1 Python 준비
2 Python 변수
3 Python 문자열
4 예제 문제 풀이
5 느낀점

 

1. Python 준비

 처음에는 Python을 이용할 수 있는 프로그램이 무엇이 있는 지 알아야 어떤 프로그램을 써야 좋을 지 정할 수 있습니다.

제가 알게 된 Python 프로그램은 3가지였습니다. 첫 번째, 주피터 노트북입니다. 두 번째는 코랩입니다. 마지막으로 VS Code가 있습니다. 이 3가지의 프로그램에 자세하게 알기 전에 어떤 언어든지 컴퓨터의 환경 변수를 설정을 해줘야 합니다. (참고로 제가 학원에서 많이 사용했던 것은 3번째 VS Code였습니다. 물론 나머지 프로그램을 준비하는 과정도 알아두시면 도움이 될 수 있습니다..)

1) Window에서 "시스템 환경 변수 편집" 검색

2) "환경 변수" 클릭

 

3) 시스템 변수에서 "Path"를 클릭

4) "편집"을 클릭

5) C드라이브에 있는 "사용자" 파일 클릭

6) 컴퓨터 사용자의 이름인 파일 클릭

7) "AppData" 파일 클릭 (파일이 숨김일 경우 해제해야 함)

8) "Local" 파일 클릭

9) "Programs" 파일 클릭

10) "Python" 파일 클릭

11) "Python 숫자" 파일 클릭(숫자는 컴퓨터마다 다름)

12) "Script" 파일을 (4)에서 했던 편집창에 삽입

준비 작업부터 벌써 복잡한 거 같습니다;;

 

 자! 이제 Python 프로그램 준비 과정들에 대해서 설명하겠습니다. 첫 번째로 언급한 주피터 노트북에 대해서 설명하겠습니다. 주피터 노트북은 Window에 있는 명령 프롬포트(cmd)를 실행하고 "pip install jupyter"를 입력한 후 실행합니다. 그러면 주피터 노트북이 다운로드가 됩니다 그 후 C드라이브에  새 파일을 만들고 그 파일의 경로(주소)를 복사합니다. 마지막으로 cmd에 "jupyter notebook--notebook-dir=복사한 주소"를 삽입 후 실행하면 주피터 웹사이트를 생성할 수 있습니다! 주피터 노트북의 경우에는 cmd와 연결이 되어있어서 cmd를 닫을 시, 주피터도 닫히게 됩니다! 주의해주셔야 합니다.

 

 두 번째로 언급한 코랩은 주피터 노트북보다 상대적으로 쉽습니다. 먼저 웹 사이트에서 "코랩"을 검색한 후 "Open Colab" 클릭, 로그인 클릭, 로그인 후 새 노트를 클릭하면 끝입니다.

코랩은 앞에서 했던 주피터 노트북보다 확실히 쉽고 빠릅니다. 하지만 그만큼 단점도 확실합니다. 바로 주피터 노트북보다 실행 속도가 현저히 느리다는 것입니다. 그래서 이 프로그램을 이용하기에는 답답한 느껴집니다. 그럼에도 이 프로그램에 대해서 왜 설명하였냐면 구글 드라이브에 연동이 된다는 장점이 있기 때문입니다. 상황에 맞추어 잘 사용하면 될 것 같습니다.

 

마지막으로 VS Code입니다. VS Code에 경우에도 코랩처럼 웹 사이트에 들어간 후 Download를 해주면 됩니다. 제가 수강한 강의에서는 VS Code를 이용하여 강의를 진행하셨습니다. 그 이유는 바로 VS Code가 통합 코딩 프로그램이기 때문입니다. 통합 코딩 프로그램이란 말 그대로 Python만 연동하여 사용할 수 있는 것이 아닌 다른 언어도 연동하여 이용할 수 있는 것을 말합니다. 그렇기에 강의에서 이 프로그램을 이용하여 수업을 나갔습니다. 그리하여 VS Code를 중심으로 하여 내용을 이어나가겠습니다. VS Code를 실행한 후 왼쪽에 있는 "Extensions"에 들어가 Python Extension Pack을 검색하여 다운로드하면 됩니다. 그 후 프로그램에서 폴더를 생성합니다. 이 떄 폴더 이름은 "자신이 쓸 제목.py"로 합니다. 그러면 폴더 이름 앞에 Python 모양이 생깁니다. (안 생길시, 조건이 부합하지 않았다라는 뜻) 이제 준비 과정이 다 끝났습니다. 그러면 Python 변수에 관해서 설명하겠습니다.

 

2. Python 변수

 

 변수는 변하는 값을 나타내는 문자라고 하지만, 프로그래밍적으로 접근해보면 값을 담는 메모리 공간을 의미합니다.

즉, 변수로 사용할 메모리 공간의 이름을 붙여 사용하는 것을 변수라고 부릅니다. 그리고 이러한 변수를 담은 데이터를

의미하는 것이 Constant(상수)라고 합니다.(리터럴 값이라고도 함)

 

◉ 상수의 종류 (자료형)

상수의 종류는 아직 자세하게는 다루지 않으니 이런게 있구나 하고 생각하시면 됩니다.

 

◉ 연산자

 

◉ 변수 명명 규칙

- 영문 문자와 숫자를 사용할 수 있습니다.

- 대소문자를 구분해야 합니다.

- 문자부터 시작해야 하고 숫자부터 시작하면 안 됩니다.

- 언더바(_)로 시작할 수 있습니다.

- 특수문자(+,-,* 등)는 사용할 수 없습니다.

- 파이썬의 키워드(if, for.. 등)는 사용할 수 없습니다.

 

◉세미콜론(;)

파이썬에서는 기본적으로 ;을 사용하지 않습니다.

주석

- 한 줄: #으로 시작해야 합니다.

- 여러 줄: ''' or """으로 시작하고 종료해야 합니다.(통일해야 함)

들여쓰기(Indent)

-파이썬은 공백을 사용하여 블럭을 구분합니다.(자바는 세미콜론)

 

3. Python 문자열

 

◉ 문자열 연산하기

- 문자열을 연산할 때 자료형이 다른 경우 에러가 발생합니다.

◉ 인덱싱과 슬라이싱

- 인덱싱: 문자열은 한 글자마다 위치를 가지고 있고 문자열의 위치를 가리키는 용어입니다.

- 슬라이싱: 문자열의 특정 위치를 추출합니다.

- 인덱싱 설정: [ ] 인덱스가 양수일 경우에는 처음부터 시작되고 음수일 경우에는 맨 두에서부터 시작됩니다.

(인덱스가 범위를 초과하면 에러가 발생됨)

◉ 슬라이싱 대괄호[ strart : end ]

◉ 문자열 format

◉ 문자열 관련 함수

- count() : 문자열의 특정 문자 혹은 특정 문자열이 포함되어 있는 개수

- find() : 특정 문자의 위치를 리턴 함수(찾는 문자가 없을 경우 -1를 리턴)

- index() : 특정 문자의 위치를 리턴 함수(찾는 문자가 없을 경우 에러가 발생)

- join() : 정의된 문자로 문자열(반복자)을 연결

- upper() : 소문자를 대문자로 변환

- lower() :대문자를 소문자로 변환

- strip() : 양쪽 공백을 제거

- lstrip() : 왼쪽 공백을 제거

- rstrip() : 오른쪽 공백을 제거

- replace() : 문자열 변경

- split () : 문자열을 나누기

◉ if문의 기본 구조

- 조건문을 테스트해서 참이면 if문 바로 다음 문장(if 블록)들을 수행하고 조건문이 거짓이면 else문 다음 문장(else 블록)들을 수행하게 됩니다. 따라서 else문은 if문 없이 독립적으로 사용할 수 없습니다.

◉ 비교 연산자

 

4. 예제 문제

 

◉ 문제 1번

: 당신의 이메일 주소에서 id만 분리하여 저장하고, 슬라이싱과 find 또는 index 함수를 이용하여 출력을 하시오.

◉ 문제 2번

name = "Hong Gil Dong"
kor = 98
math = 45
eng = 90

: "Hong Gil Dong의 평균 점수는 몇 점 입니다."라는 문장을 출력을 하시오.

◉ 문제 3번

today = "2024-07-01 sunny"

: "오늘은 2024-07-01이고 오늘의 날씨는 sunny입니다." 라는 문장을 출력을 하시오.

◉ 문제 4번

: money가 만원 이상 있으면 택시, 천원 이상 있으면 버스, 그 이하면 걸어가도록 출력하시오.

◉ 문제 5번

: 홍길동의 평균 점수가 90점 이상이면 A, 80점 이상이면 B, 70점 이상이면 C, 나머지는 D가 나오도록 출력하시오.

◉ 문제 6번

: 국어, 영어, 수학 점수를 입력받아 합계, 평균(소수 2자리까지), 평가를 출력하고 평가는 평균 점수가 90점 이상이면 A, 80점 이상이면 B, 70점 이상이면 C, 나머지는 D가 나오도록 한다. 또한 입력된 국어, 영어, 수학 점수가 100보다 크거나,

0보다 작으면 "잘못 입력된 점수입니다."라는 문장이 나오도록 출력하시오.

◉ 문제 1번 정답

email = "abcdefg@gmail.com"
n = email.find("@")
print(n)
id = email[:n]
print(id)

◉ 문제 2번 정답

x = (kor + math + eng)/3
print("%s의 평균 점수는 %.2f점 입니다." % (name, x))

◉ 문제 3번 정답

# 1. split
date = today.split()
print(date)
print("오늘은 %s이고 오늘의 날씨는 %s입니다." %(date[0], date[1]))

# 2. find
d = today.find(" ")
d1 = today[:d]
d2 = today[d+1:]
print("오늘은 %s이고 오늘의 날씨는 %s입니다." %(d1, d2))

- 문제 3번의 경우에는 정답을 구할 수 있는 방법이 크게 2가지로 나뉩니다.

◉ 문제 4번 정답

money = input("소지 금액을 입력해주세요")
money = int(money)
if money >= 10000:
    result = "택시 타고 가야지"
elif money >= 1000:
    result = "버스 타고 가야지"
else:
    result = "걸어가야지"
print(result)

◉ 문제 5번 정답

name = "Hong Gil Dong"
kor = 90
math = 90
eng = 90
x = (kor + math + eng)/3
if x >=90 :
    result = "A"
elif x >= 80 :
    result = "B"
elif x >= 70 :
    result = "C"
else:
    result = "D"
print("%s의 등급은 %s입니다." % (name, result))

◉ 문제 6번 정답

# 점수 입력 & 형변환
kor = input("국어 점수를 입력해주세요")
math = input("수학 점수를 입력해주세요")
eng = input("영어 점수를 입력해주세요")
kor = int(kor)
math = int(math)
eng = int(eng)

# 평균 점수 계산
avg = (kor + math + eng)/3

# 평가 등급
if avg >= 90 :
    result = "A"
elif avg >= 80 :
    result = "B"
elif avg >= 70 :
    result = "C"
else:
    result = "D"

# 입력 오류
if kor > 100 or kor < 0 :
    print("잘못 입력된 국어 점수입니다.")
if math > 100 or math < 0:
    print("잘못 입력된 수학 점수입니다.")
if eng > 100 or eng < 0 :
    print("잘못 입력된 영어 점수입니다.")

# 출력값
print("당신의 평균 점수는 %.2f점 입니다." % (avg))
print("당신의 평가 등급은 %s입니다." % (result))

5. 느낀점

이 날 배웠던 내용이 아직 기초임에도 불구하고 헷갈리는 개념들이 많았었다. 그렇기에 복습을 꼭 해야겠다는 생각이 자주 들었었다. 마지막 6번 문제를 풀면서 입력 오류에 대한 출력값과 점수에 대한 출력값이 항상 값이 나오는 점이 불편하여 고치고 싶었지만 이 날 배웠던 내용으로는 쉽게 고칠 수 없었기에 다음 강의 시간에 명령어를 더 배워보고 싶어졌다.