Python 2.

AIginner·2023년 9월 28일
0

Python

목록 보기
2/2

Python 2. 파이썬 기초부터 함수까지!

  • 목 차 *
  1. 변수
  2. 연산자
  3. 반복문
  4. 조건문
  5. 함수

1. 변수

1) 변수명 = 변수에 저장할 값

 name = 'hyunwoo'
 name
>> 'hyunwoo'

2) 변수명의 작성 규칙

List01 = [1,3,5] # 영문자(대, 소문자 구분), 숫자, 언더바o()만 사용 가능
list_01 = [2,4,6] # 소문자 예시 (다른 변수)
List_01

[1,3,5]

  • 첫 자리는 숫자를 사용할 수 없습니다
  00dic = {num : 11, num2 : 22}
  00dic
>> SyntaxError: invalid syntax : 구문(문법) 에러 발생
* 예약어는 변수로 사용할 수 없습니다
> True = set("hyunwoo")
  True
>> IndentationError: unexpected indent : 에러 발생 (보통 들여쓰기, 띄어쓰기 에러)

2. 연산자

1) 비교 연산자

연산자설명
a ==ba와 b가 같다
a != ba와 b는 같지 않다
a < ba가 b보다 작다
a <= ba는 b보다 작거나 같다
  • a = b : a에다가 b를 대입 한다는 대입 연산자 이다.

2) 논리 연산자

연산자설명
a and ba,b 조건이 모두 참일 때, True로 리턴
a or ba,b 조건 중 하나라도 참일 때, True로 리턴
a not b조건을 반대로 뒤집는다
예시)
not 3 > 5 # 원래 False 지만 출력 시 True로 리턴

3) 기타 연산자

  • 파이썬은 다른 언어에서는 쉽게 볼 수 없는 흥미로운 연산자를 제공합니다
innot in설명
x in listx not in list리스트 안에 x가 있는지, 없는지 확인
x in tuplex not in tuple튜플 안에 x가 있는지, 없는지 확인
x in 문자열x not in 문자열문자열 안에 x가 있는지, 없는지 확인
예시)
'h' in 'hyunwoo'
>> True

> (1+2<4) and (' ' in 'hello aiffel')
>> True

3. 반복문

1) while 문

  • 기본 구조
while 조건:
	수행할 문장
> 예시)
	num = 0
    while num <= 5:
    	print(num)
        num += 1
>> 0~5 까지 하나씩 행마다 순차적으로 출력

  • while 문 알고리즘 (num <= 10 일때)

  • while 문 강제로 빠져나오기 (명령어 break)

  • 코드 예시)

    korean_pretzel = 10
    while korean_pretzel:
        print('꽈배기 ', korean_pretzel, '개 있습니다.')
        order = int(input('주문 개수 : '))
        korean_pretzel -= order
        print('남은 꽈배기는 ', korean_pretzel, '개 입니다.')
        print('*'*25)
        if korean_pretzel <= 0:
            print('꽈배기 품절입니다.')
            break

  • while 문과 continue : 루프를 건너뛰고 나머지를 계속 수행하는 명령어

** break

a = 0              # a는 0
while a < 10:      # a가 10보다 작을 동안
    a += 1         # a에 a+1의 값을 할당하고
    if a % 2 == 0: # 만약 a를 2로 나눈 나머지가 0과 동일하면 (짝수 산술식)
        break      # 루프를 깨버리고 나온다.
    print(a)       # (if문 블럭 밖이므로) 아니라면 a를 출력한다.

** continue

a = 0              # a는 0
while a < 10:      # a가 10보다 작을 동안
    a += 1         # a에 a+1의 값을 할당하고
    if a % 2 == 0: # 만약 a를 2로 나눈 나머지가 0과 동일하면
        continue   # 넘어가고 루프 선두로 돌아가서 계속 루프를 탄다.
    print(a)       # (if문 블럭 밖이므로) 아니라면 a를 출력한다.

2) for 문과 range 함수

  • for 문은 컬렉션의 요소를 순서대로 반복하면서 수행할 문장을 실행하는 반복문 입니다.

** for 문의 기본 구조

	for 변수 in 컬렉션:		# 변수는 보통 i 를 자주 씁니다.(iterator의 약자)
    	수행할 문장

** 리스트로 반복문 만들기

	a = [1,2,3]
    for i in a:
    	print(i, '번 출력')
    >> 1번 출력, 2번 출력, 3번 출력

** 2개 변수를 가진 리스트로 반복문 활용

	a =[('apple','사과'), ('banana', '바나나'), ('melon', '멜론')]
	for (en, ko) in a:
    	print(en, '는 한국어로', ko, '입니다.')
       
    >> apple 는 한국어로 사과 입니다.
    >> banana 는 한국어로 바나나 입니다.
    >> melon 는 한국어로 멜론 입니다.

2-1) for 문과 range 함수 활용

  • 숫자들의 컬렉션을 만들 수 있기 때문에 정말 많이 쓰입니다.

** range 함수의 구조

	range(시작, 끝+1, 증가)	  # 시작값과 증가값은 생략할 수 있고, 그 값는 각각 0,1로 자동 설정
    						  # 중요한 부분은 '끝값', [끝값은 끝+1]로 표현 됩니다.
	for i in range(0,6,2):	# 0부터 5까지 2씩 증가해라
    	print(i)
    >> 0
    >> 2
    >> 4
활용 문제(구구단 만들기) 앞 화살표 펼치기!
	n = int(input("원하는 단수를 입력하세요:"))
	for x in range(1, 10):
  		print(n,"*",x,"=",n*x)

4. 조건문

1) if 문

  • if 문은 if, elif, else 를 사용합니다. 실행 순서는 if 문의 조건 1을 만족하지 않을 때, elif 문의 세부 조건 2를 점검하고 모두 만족하지 않은 경우 else 문의 조건을 수행합니다.

** if 문 기본 구조

	if 조건 1:
    	수행할 문장1
    	수행할 문장2
	elif 조건 2:
    	수행할 문장3
    	수행할 문장4    
	else:
    	수행할 문장5
    	수행할 문장6
예시 코드
# 코드 실행 후 나오는 흰 박스에 `20000`, `15000`, `6000`, `3000`을 넣은 후 
엔터를 눌러보세요. 조건(돈)에 따라 출력이 달라집니다.

money = int(input('현재 수중에 있는 돈은 얼마인가요?'))
if money >= 16000:
  print('택시도 타고, 커피도 마신다.')
elif money >= 12000:
  print('커피는 포기하고 택시를 탄다.')
elif money >= 5300:
  print('커피를 마시고 버스에 탄다.')
else:
  print('목이 마르지만 참고 버스를 탄다.')

5. 함수 (너무너무 중요합니다!!)

1) 함수의 기본 구조 (매개변수는 parameter 라고 부릅니다)

	def 함수 이름(매개변수):
    	수행할 문장1
    	수행할 문장2
    	...
  • 예시 코드
	# 간단한 함수를 통해 매개변수와 인수의 차이를 느껴 보세요.
	def add(a, b):    # a, b는 매개변수
    	return a + b  # a + b 로 반환(리턴)

	add(1, 2)  		  # 함수 호출. 1, 2는 인수
    
    >> 3

** 매개변수(parameter) : 함수에 입력되어 전달된 값을 받는 변수

** 인수(argument, arg) : 함수를 호출할 때 전달하는 입력 값

2) 인수(arg)의 형식

2-1) 위치 인수 (positional argument)

  • 함수에 넣는 인수의 위치가 정해져 있는 방식
# 위치 인수의 예
def print_nums(a, b, c):
    print(c)
    print(b)
    print(a)

a = [10, 20, 30]		# 리스트
print_nums(*a)

>> 30
>> 20
>> 10

** print(a) 리스트 앞에 ' * '를 붙이면 언패킹 되어서 print(10, 20, 30)과 같아진다

** 언패킹(unpaking)은 말 그대로 리스트나 튜플의 포장을 푼다는 뜻입니다.
단, 매개 변수의 개수와 리스트의 요소 개수가 같아야 합니다. 개수가 같지 않으면 에러가 발생합니다.

2-2) 가변 인수 (vairable argument)

  • 가변 인수(인자)는 임의 개수의 인수를 받을 수 있습니다. 방법은 매개변수 앞에 ' * ' 를 붙이면 됩니다. 보통 인수를 뜻하는 args를 매개변수 명으로 사용 합니다.

** 가변 인수 기본 구조

	def 함수명(*매개변수):
    	코드

** 예시 코드

# 가변 인수의 예
def sum_nums(*args):  
    sum = 0
    for arg in args:
        sum += arg
    return sum

sum_nums(1, 2, 3)

>> 6		# 1+2+3, args1 + args2 + args3 

3) 키워드 인수

  • 지금까지 함수에 인수를 넣을 때는 값이나 변수를 그대로 넣었습니다. 그러다 보니 각각의 인수가 무슨 용도인지 알기가 어려웠습니다. 이런 점을 보완하기 위해 키워드 인수(또는 키워드 인자) 를 사용할 수 있습니다. 키워드와 함께 인수를 넣으면, 순서와 상관없이 키워드에 맞게 인수가 입력됩니다.

** 예시 코드

# 키워드 인수의 예
def dog_info(name, age, breed):
    print('이름 :', name)
    print('나이 :', age)
    print('품종 :', breed)
    
# 순서가 달라도 키워드가 순서에 맞게 들어갑니다.
dog_info(age=10, breed='진돗개', name='규봉이')

>> 이름 : 규봉이
>> 나이 : 10
>> 품종 : 진돗개    

4) 키워드 가변 인수 (함수 만들 때나 호출할 때 많이 사용합니다! 구조 빠삭하게 숙련!)

  • 키워드 인수를 사용하면서 동시에 가변 인수 함수를 만드는 것 입니다. 만드는 방법은 가변 인수 함수와 동일 합니다. 다만 매개변수명은 보통 kwargs를 사용합니다. (keyword arguments 약자)

** 키워드 가변 인수 기본 구조

	def 함수명(**매개변수):
    	코드

주의할 점은 인수를 함수에 넣을 때, 꼭 키워드와 함께 넣어야 합니다** 중요중요!

활용문제 프로필 함수 만들기! 펼쳐주세요
# 누군가의 프로필 함수   
def someone_profile(name, age, MBTI):
    print('나를 소개합니다.')
    print('이름:', name)
    print('나이:', age)
    print('MBTI :', MBTI) 

# Q. MBTI가 ESFJ, 나이가 20살인 모두연의 프로필을 만들어 보세요. 

a = {'gw', 20, 'ESFJ'}  # a라는 딕셔너리 선언 
someone_profile(*a)		# 언패킹 사용! a 딕셔너리를 *a 자리에 넣어도 됩니다.

>> 나를 소개합니다.
>> 이름 : gw
>> 나이 : 20
profile
비전공자지만 밑바닥부터 공격적으로 공부중입니다! 공부 해온 것들 정리해보고 있습니다. 잘못 된 부분 있으면 알려주세요~ 서로 공유 하고 싶습니다

0개의 댓글