[Python] 기초(1)

나도코딩 님의 파이썬 코딩 무료 강의 (기본 편)을 보면서 작성하였습니다.

환경설정

Python 설치

  • https://www.python.org/downloads/ 홈페이지 접속 후 다운로드 탭을 선택하고, 현재 버전(3.10.2) 다운로드를 합니다.
  • 다운로드 완료 후 설치를 시작한다. Customize installation 클릭하고, install location 란에 c:\Python310 입력 후 설치 버튼을 클릭합니다.

Visual Studio Code 설치

기본 시작

주석

1
2
3
4
5
6
7
print("주석")
#print("주석")

'''
여러문장
주석입니다.
'''

숫자처리함수

1
2
3
4
5
6
7
8
9
10
print(abs(-5)) #5
print(pow(4, 2)) # 4^2 = 4*4 = 16
print(max(5, 12)) # 12
print(min(5, 12)) # 5
print(round(3.14)) # 3

from math import *
print(floor(4.99)) # 내림. 4
print(ceil(3.14)) # 올림. 4
print(sqrt(16)) # 제곱근. 4

랜덤함수

1
2
3
4
5
6
7
8
9
from random import *

print(random()) # 0.0 ~ 1.0 미만의 임의의 값 생성
print(random(10)) # 0.0 ~ 10.0 미만의 임의의 값 생성
print(int(random() * 10)) # 0 ~ 10 미만의 임의의 값 생성
print(int(random() * 10) + 1) # 1 ~ 10 이하의 임의의 값 생성
print(int(random() * 45) + 1) # 1 ~ 45 이하의 임의의 값 생성
print(randrange(1, 46)) # 1 ~ 46 미만의 임의의 값 생성
print(randint(1, 45)) # 1 ~ 45 이하의 임의의 값 생성

문자열

1
2
3
4
5
6
7
8
9
sentence = '나는 소년입니다'
print(sentence)
sentence2 = "파이썬은 쉬워요"
print(sentence2)
sentence3 = """
나는 소년이고,
파이썬은 쉬워요
"""
print(sentence3)

슬라이싱

1
2
3
4
5
6
7
8
9
10
11
jumin = "990101-1234567"

print("성별 : " + jumin[7])
print("연 : " + jumin[0:2]) # 0 부터 2 직전까지 (0, 1)
print("월 : " + jumin[2:4])
print("일 : " + jumin[4:6])

print("생년월일 : " + jumin[:6]) # 처음부터 6 직전까지
print("뒤 7자리 : " + jumin[7:]) # 7 부터 끝까지
print("뒤 7자리 (뒤에부터) : " + jumin[-7:])
# 맨 뒤에서 7번째부터 끝까지

문자열 처리 함수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
python = "Python is Amazing"
print(python.lower()) # 소문자로
print(python.upper()) # 대문자로
print(python[0].isupper())
print(len(python)) # 길이
print(python.replace("Python", "Java")) # 문자열 바꿈

index = python.index("n") # 문자열 위치 찾기
index = python.index("n", index + 1) # 두번째 n의 위치 찾기

print(python.find("Java")) # 문자를 찾지 못할 경우 -1 출력
print(python.index("Java")) # 문자를 찾지 못할 경우 오류남

print(python.count("n")) # 문자열 n이 나오는 개수

문자열 포맷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 방법 1
print("나는 %d살입니다." % 35) # 정수만
print("나는 %s을 좋아해요" % "파이썬") # 문자열만
print("Apple 은 %c로 시작해요." % "A") # 한글자만 받겠다는 의미
# %s
print("나는 %s살입니다." % 35)
print("나는 %s색과 %s색을 좋아해요." % ("파란", "빨간"))

# 방법 2
print("나는 {}살입니다.".format(35))
print("나는 {}색과 {}색을 좋아해요.".format("파란", "빨간"))
print("나는 {0}색과 {1}색을 좋아해요.".format("파란", "빨간"))
print("나는 {1}색과 {0}색을 좋아해요.".format("파란", "빨간"))

# 방법 3
print("나는 {age}살이며, {color}색을 좋아해요.".format(age=35, color="빨간"))

# 방법 4 (v3.6 이상~)
age = 35
color = "빨간"
print(f"나는 {age}살이며, {color}색을 좋아해요.")

탈출 문자

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# \n : 줄바꿈
print("백문이 불여일견\n백견이 불여일타")

# \" \' : 문장 내에서 따옴표
# 저는 "고고고" 입니다.
print("저는 '고고고' 입니다.")
print('저는 "고고고" 입니다.')
print("저는 \"고고고\" 입니다.")

# \\ : 문장 내에서 \
print("C:\\Users\\hgko\\Desktop\\project\\Python\\PythonStudy")

# \r : 커서를 맨 앞으로 이동
print("Red Apple\rPine")

# \b : 백스페이스 (한 글자 삭제)
print("Redd\bApple")

# \t : 탭
print("Red\tApple")

리스트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 리스트 []

# 지하철 칸별로 10명, 20명, 30명
subway1 = 10
subway2 = 20
subway3 = 30

subway = [10, 20, 30]
print(subway)

subway = ["유재석", "조세호", "박명수"]

# 조세호 씨가 몇 번째 칸에 타고 있는지?
print(subway.index("조세호"))

# 하하 씨가 다음 정류장에서 다음 칸에 탐
subway.append("하하")

# 정형돈 씨를 유재석 / 조세호 사이에 태워봄
subway.insert(1, "정형돈")

# 지하철에 있는 사람을 한 명 씩 뒤에서 꺼냄
print(subway.pop())

# 같은 이름의 사람이 몇 명 있는지 확인
subway.append("유재석")
print(subway.count("유재석"))

# 정렬
num_list = [5,2,4,3,1]
num_list.sort()

# 순서 뒤집기
num_list.reverse()

# 모두 지우기
num_list.clear()

# 다양한 자료형 함께 사용
num_list = [5,2,4,3,1]
mix_list = ["유재석", 20, True]

# 리스트 확장
num_list.extend(mix_list)

사전

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
cabinet = {3:"유재석", 100:"김태호"}
print(cabinet[3])
print(cabinet[100])

print(cabinet.get(3))
print(cabinet.get(5, "사용 가능"))

print(3 in cabinet) # True
print(5 in cabinet) # False

cabinet = {"A-3":"유재석", "B-100":"김태호"}
print(cabinet["A-3"])
print(cabinet["B-100"])

# 새 손님
cabinet["A-3"] = "김종국" # 업데이트
cabinet["C-20"] = "조세호" # 추가

# 간 손님
del cabinet["A-3"]

# key 들만 출력
print(cabinet.keys())

# value 들만 출력
print(cabinet.values())

# key, value 쌍으로 출력
print(cabinet.items())

# 전체 삭제
cabinet.clear()

튜플

1
2
3
4
menu = ("돈까스", "치즈까스")

(name, age, hobby) = ("김종국", 20, "코딩")
print(name, age, hobby)

세트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 집합 (set)
# 중복 안됨, 순서 없음
my_set = {1,2,3,3,3}
print(my_set)

java = {"유재석", "김태호", "양세형"}
python = set(["유재석", "박명수"])

# 교집합 (java 와 python 을 모두 할 수 있는 개발자)
print(java & python)
print(java.intersection(python))

# 합집합 (java 할 수 있거나 python 도 할 수 있는 개발자)
print(java | python)
print(java.union(python))

# 차집합 (java 할 수 있지만 python 은 할 줄 모르는 개발자)
print(java - python)
print(java.difference(python))

# python 할 줄 아는 사람이 늘어남
python.add("김태호")

# java 를 잊어버림
java.remove("김태호")

자료구조의 변경

1
2
3
4
5
6
7
8
9
10
11
12
# 커피숍
menu = {"커피", "우유", "주소"}
print(menu, type(menu)) # {'커피', '주소', '우유'} <class 'set'>

menu = list(menu)
print(menu, type(menu)) # ['커피', '주소', '우유'] <class 'list'>

menu = tuple(menu)
print(menu, type(menu)) # ['커피', '주소', '우유'] <class 'tuple'>

menu = set(menu)
print(menu, type(menu)) # ['커피', '주소', '우유'] <class 'set'>

if

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
weather = input("오늘 날씨는 어때요?")
if weather == "비" or weather == "눈":
print("우산을 챙기세요")
elif weather == "미세먼지":
print("마스크를 챙기세요")
else:
print("준비물 필요 없어요")

temp = int(input("기운은 어때요?"))
if 30 <= temp:
print("너무 더워요. 나가지 마세요")
elif 10 <= temp and temp < 30:
print("괜찮은 날씨에요")
elif 0 <= temp < 10:
print("외투를 챙기세요")
else:
print("너무 추워요. 나가지 마세요")

for

1
2
3
# randrange()
for waiting_no in range(1, 6): # 1, 2, 3, 4, 5
print("대기번호 : {0}".format(waiting_no))

while

1
2
3
4
5
customer = "토르"
person = "Unknown"
while person != customer:
print("{0}, 커피가 준비 되었습니다.".format(customer))
person = input("이름이 어떻게 되세요?")

한 줄 for

1
2
3
4
5
6
students = [1,2,3,4,5]
students = [i+100 for i in students]

# 학생 이름을 길이도 반환
students = ["Iron man", "Thor", "I am groot"]
students = [len(i) for i in students]
Share