데이터 공부/Python

[나도코딩] 파이썬 기본편 1-5

민몽 2023. 1. 10. 22:49

🧷 영상 주소 : https://youtu.be/kWiCuklohdY

 

안녕하세요 민몽입니다:>
오늘은 유튜버 나도코딩 님의 파이썬 기본편 강의를 들으면서 공부했던 내용을 공유해보려고 합니다.
그냥 이론 강의만 듣는 것보다 퀴즈도 풀고 실습할 수 있는 자료도 많아서 더 좋았던 것 같아요.

특히 퀴즈를 푸는 파트가 재밌어서 긴 길이의 영상임에도 끝까지 들을 수 있었어요 :)
아래는 공부하면서 정리했던 내용들입니다.


< print문 '+' 로 연결하는 경우 >

-print(name+"는 "+str(age)+"살이며,"+hobby+"를 아주 좋아해요")
→ 문자형이 아닌 경우, str()로 문자형으로 변환이 필요함

< print문 ',' 로 연결하는 경우 >

print(name,"는",age,"살이며,",hobby,"를 아주 좋아해요")
→ 문자형 변환 없이 사용할 수 있음 , 변수 앞 뒤에 띄어쓰기가 들어감.

< 난수 추출 >
- random() : 0.0 이상 1.0 미만 난수 추출
-randrange(a,b) : [a,b) 정수 추출
-randint(a,b) : [a,b]

< 퀴즈 2 >

< 문자열 함수 >
- string.replace(A ,B) : string 변수 내 A라는 문자열을 B로 대체
- string.index("찾을 문자", 시작위치 ) : 시작위치 지정 x, 문자열에서 가장 앞에 있는 찾고자하는 문자의 인덱스를 반환 , 없을 경우에는 ValueError 발생 ( substring not found )
- string.find("찾을 문자", 시작위치 ) : index와 기능은 같지만 찾고자하는 문자가 존재하지 않는 경우 -1 반환
- string.count("찾을 문자", 시작위치 ) : 찾고자 하는 문자가 문자열 내 몇번 등장하는 지 반환

< 문자열 포맷 >

# 방법 1
print("나는 %s살이며, %s색을 좋아해요."%(20,"보라"))
# 방법 2
print("나는 {age}살이며, {color}색을 좋아해요.".format(age = 20, color = '보라'))
# 방법 3
age = 20
color = '노랑'
print(f"나는 {age}살이며, {color}색을 좋아해요.")


< 탈출 문자 >

#\n : 줄바꿈
#\r : 커서를 맨 앞으로 이동
print("Red Apple\rPine ")
#\b : 백스페이스 (앞 한 글자 삭제)
print("Redd\b Apple")
#\t : 탭
print("Red\tApple")


< 퀴즈 3 >


< 딕셔너리 값 가져오기 >
- dict[key] : 해당 key가 존재하지 않는 경우 Key Error 발생
- dict.get(key,string) : 해당 key가 존재하지 않는 경우 string에 해당하는 문자열 반환(default : None )
- dict.keys()
-dict.values()
-dict.items()


< 딕셔너리 값 삭제 >
- del dict[key]
- dict.clear()


< 튜플 >
- 내용 변경이나 추가 불가능 , 리스트보다 속도 ↑

< 퀴즈 4 >

# Quiz) 당신의 학교에서는 파이썬 코딩 대회를 주최합니다.
# 참석률을 높이기 위해 댓글 이벤트를 진행하기로 하였습니다.
# 댓글 작성자들 중에 추첨을 통해 1명은 치킨, 3명은 커피쿠폰을 받게 됩니다.
# 추첨 프로그램을 작성하시오.

# 조건1 : 편의상 댓글은 20명이 작성하였고 아이디는 1 ~ 20 이라고 가정
# 조건2 : 댓글 내용과 상관 없이 무작위로 추첨하되 중복 불가
# 조건3 : random 모듈의 shuffle 과 sample 을 활용

# (출력 예제)
# -- 당첨자 발표 --
# 치킨 당첨자 : 1
# 커피 당첨자 : [2,3,4]
# -- 축하합니다 --

from random import *
users = list(range(1,21))
def select_winner(lst):
win_list = sample(lst,4)
shuffle(win_list)
chicken = win_list[0]
coffee = win_list[1:]
print("-- 당첨자 발표 --")
print(" 치킨 당첨자 : " + str(chicken))
print(" 커피 당첨자 : " + str(coffee))
print("-- 축하합니다 --")

select_winner(users)


- 헷갈렸던 점 & 해결 방법
1. sample 로 뽑으면 무작위 추출이 되는데 shuffle 은 어디다 쓰지 .. ?
→ 조건에 중복 불가라고 해서 set을 써야하나 ? 싶었는데 sample을 두번 쓰면 중복 당첨자가 생길 수 있으니까 우선 당첨자 4명을 뽑아두고 거기서 shuffle로 섞어서 치킨과 커피로 나눠줌 !
2. lst = shuffle() 이런 형태로 쓰니까 자꾸 None 어쩌구 에러가 남 ..
→ 함수 설명을 보니 shuffle이 기존 리스트를 변경시킨 후, None을 리턴함.

내가 해결한 방법이랑 해설이랑 같을 때 뭔가 쾌감을 느낍니다 ^.^
난이도도 어렵지 않고 빠르고 재미있게 파이썬을 복습할 수 있어서 좋았어요.

뒤로 갈수록 어려워지겠지만.. 한번 해보자고.