*함수
반복되는 코드를 사용할 때가 있는데. 이를 좀 더 효율적으로 만들기 위해 사용된다.

def 함수_이름(매개변수):
    수행할_문장
    ...
    return 리턴값

*키워드 매개변수,kwargs
>>> print_kwargs(a=1)
{'a': 1}
>>> print_kwargs(name='foo', age=3)
{'age': 3, 'name': 'foo'}

*lambda
lambda는 함수를 생성할 때 사용하는 예약어로 def와 동일한 역할을 한다. 보통 함수를 간결하게 만들 때 사용된다.

lambda 매개변수1, 매개변수2.... : 매개변수를 이용한 표현식

add = lambda a,b : a + b
result = add(3, 4)
print(result)

*input()
사용자 입력 값

*print()
출력 값

'Language > Python' 카테고리의 다른 글

파이썬-제어문  (2) 2024.03.15
파이썬-자료형  (2) 2024.03.15

*제어문

프로그램을 만드는 것도 집 짓기와 매우 비슷한 면이 있다. 나무, 돌, 시멘트와 같은 재료는 자료형이 되고 집의 뼈대를 이루는 철근은 제어문에 해당한다. 

조건문 다음에 콜론(:)을 잊지 말자!

1.if(조건문)

#if -들여쓰기/조건문 :
money=True
if money:
    print("taxi")
else:
    print("walk")

비교연산자
x < y : x가 y보다 작다.
x > y : x가 y보다 크다.
x == y : x와 y가 같다.
x != y : x와 y가 같지 않다.
x >= y : x가 y보다 크거나 같다.
x <= y : x가 y보다 작거나 같다.

x or y : x와 y 둘 중 하나만 참이어도 참이다.
x and y : x와 y 모두 참이어야 참이다.
not x : x가 거짓이면 참이다.

in/not in
x in 리스트 /x not in 리스트
x in 튜플 /x not in 튜플
x in 문자열 /x not in 문자열

*pass 조건 넣지 않고 넘어가려면
pocket=['paper','money','cellphone']
if'money' in pocket:
    pass
else:
    print("walk")

*elif 다중 조건판단: 다양한 조건을 넣을 수 있다
pocket=['card','cellphone']
if'money' in pocket:
    print("taxi")
elif 'card':
    print("bus")
else:
    print("walk")

2.while(반복문)


#while
TreeHit=0
while TreeHit<10:
    TreeHit=TreeHit+1
    print("나무를 %d번 찍으셨습니다"%TreeHit)
    if TreeHit==10:
        print("나무가 넘어갑니다")

*break
while문 강제로 멈추게 하기
# coffee.py
coffee = 10
while True:
    money = int(input("돈을 넣어 주세요: "))
    if money == 300:
        print("커피를 줍니다.")
        coffee = coffee -1
    elif money > 300:
        print("거스름돈 %d를 주고 커피를 줍니다." % (money -300))
        coffee = coffee -1
    else:
        print("돈을 다시 돌려주고 커피를 주지 않습니다.")
        print("남은 커피의 양은 %d개 입니다." % coffee)
    if coffee == 0:
        print("커피가 다 떨어졌습니다. 판매를 중지 합니다.")
        break

*continue
while문 처음으로 돌아가기
a = 0
while a < 10:
    a = a + 1
    if a % 2 == 0: continue #a가 짝수라면 continue를 만나 while문의 맨 처음으로 돌아가게 된다.
    print(a) #홀수는 출력이 됨

3.for

for 변수 in 리스트(또는 튜플, 문자열):
    수행할_문장1
    수행할_문장2
    ...

# marks1.py
marks = [90, 25, 67, 45, 80]   # 학생들의 시험 점수 리스트

number = 0   # 학생에게 붙여 줄 번호
for mark in marks:   # 90, 25, 67, 45, 80을 순서대로 mark에 대입
    number = number +1 
    if mark >= 60: 
        print("%d번 학생은 합격입니다." % number)
    else: 
        print("%d번 학생은 불합격입니다." % number)

1번 학생은 합격입니다.
2번 학생은 불합격입니다.
3번 학생은 합격입니다.
4번 학생은 불합격입니다.
5번 학생은 합격입니다.

#range함수의 예시
add = 0 
for i in range(1, 11): 
    add = add + i 
    print(add)
#1부터 10까지 i에 차례로 대입한 뒤 add에 총합이 구해진다.

*리스트 컴프리헨션
리스트 안에 for 문을 포함하는 리스트 컴프리헨션(list comprehension)을 사용하면 좀 더 편리하고 직관적인 프로그램을 만들 수 있다.
>>> a = [1,2,3,4]
>>> result = [num * 3 for num in a]
>>> print(result)
[3, 6, 9, 12]

'Language > Python' 카테고리의 다른 글

파이썬-함수  (1) 2024.03.15
파이썬-자료형  (2) 2024.03.15

*자료형

자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등과 같이 자료 형태로 사용하는 모든 것을 뜻한다. 프로그램의 기본이자 핵심 단위가 바로 자료형이다.

1.숫자형
*정수
*실수(4.27e10=4.27*10의10승)
*8진수(0o177=1*8의2승+7*8+7=127)
816진수(0xABC10*16의2승+11*16+12=2748)(A:10, B:11, C:12)


*숫자형 연산자
+-/*
**-제곱
%-나머지
//-몫
(a+=1)=(a=a+1)-복합연산자

2.문자열
*사용법: ""로'' 둘러 쌈
*문자열도 더하고 곱할 수 있다.
head="seo"
body="chan"
print((head+body)*2)
->seochanseochan

*문자 길이 사용: len()
*문자열 인덱싱: a[3]-"life"-->4번째인 e이다 /a[-2]는 뒤에서 2번째인 f가 나옴
*문자열 슬라이싱: a[0:3]은life가아닌 lif ([0],[1],[2])만 나와 [3]은 제외 됨=(0 <= a < 3)
*** 
a = "Pithon"
>>> a[1]
'i'
>>> a[1] = 'y'->>>오류
문자열의 요솟값은 바꿀 수 있는 값이 아니기 때문이다(그래서 문자열을 ‘변경 불 가능한(immutable) 자료형’이라고도 부른다).

*문자열 포매팅: %d=%1 / %s=%"문자"
"%10s" % "hi"
->'        hi'
*format함수 사용한 포매팅
#format으로 숫자 대입하기
print("I eat {0} apples".format(3))
나머지는 덜 중요하다 생각하여 그때 그때 다시 공부하기

3.리스트 

*사용법: 리스트를 만들 때는 위에서 보는 것과 같이 대괄호([])로 감싸 주고 각 요솟값은 쉼표(,)로 구분해 준다

*리스트 인덱싱
>>> a = [1, 2, ['a', 'b', ['Life', 'is']]]
>>> a[2][2][0]
'Life'

*리스트 슬라이싱
>>> a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
>>> a[2:5]
[3, ['a', 'b', 'c'], 4]
>>> a[3][:2]
['a', 'b']

*리스트 연산=문자열 연산이랑 비슷함
*리스트 요소 수정
del
>>> a = [1, 2, 3, 4, 5]
>>> del a[2:]
>>> a
[1, 2]
리스트 관련 함수-apppend/sort/reverse/insert/remove/pop/count/extend....이 함수도 차차 알아가기로

4.튜플
*리스트는 []/튜플은()
t1 = ()
t2 = (1,) # 1개의 요소를 가질때는 반드시 뒤에 콤마,를 붙여줘야한다.
t2= (1, 2, 3)
t4 = 1, 2, 3 # 괄호를 생략해도 사용할 수 있다

*리스트는 요솟값의 생성, 삭제, 수정이 가능하지만, 튜플은 요솟값을 바꿀 수 없다.
*튜플도 인덱싱, 슬라이싱, 더하기(요솟값이 바뀌는 게 아니다), 곱하기, 길이 구하기 다 가능(함수는 안됨)

5.딕셔너리(key:value)
*딕셔너리는 리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻는다.
*딕셔너리 추가 삭제

#딕셔너리 쌍 추가
a = {1: 'a'}
a[2] = {'b'} #a = {1:'a', 2:'b'} 값을 가지게 된다.
a['e'] = {'d'} #a = {1:'a', 2:'b', 'e':'d'} 를 추가하게 된다.
#앞서배운 인덱스가 딕셔너리에선 항상 정수만이 아닌 문자로도 들어 갈 수 있게 된다.


#딕셔너리 삭제하기
a = {1:'a', 2:'b', 'e':'d'}
del a[1] #1:'a'가 삭제되어 a = {2:'b', 'e':'d'}가 된다.
#del과 함께 a[key]값을 넣어주면 삭제가 이루어진다.

*딕셔너리 함수
key,value,item,clear,get, name in a(true or false)
a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
a.keys()
dict_keys(['name', 'phone', 'birth'])

6.집합 자료형
*set()의 괄호 안에 리스트를 입력하여 만들거나 다음과 같이 문자열을 입력하여 만들 수도 있다.
*특징:중복x 순서x
s2 = set("Hello")
s2
->{'e', 'H', 'l', 'o'}
*if. 집합에서 인덱싱을 사용하고 싶다면 list(), tuple()를 이용해서 변환 후 사용 해야한다.

s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
*교집합 구하기
s1 & s2 #{4,5,6}을 반환
s1.intersection(s2) #이런식으로도 {4,5,6} 교집합을 구할 수 있음

*합집합
s1 | s2 #{1,2,3,4,5,6,7,8,9}를 반환한다.
s1.union(s2) #{1,2,3,4,5,6,7,8,9}를 반환 할 수 있다.

*차집합
s1 - s2 #{1,2,3}을 반환
s1.difference(s2)# s1 - s2를 difference 함수로 표현할수있음
s2 - s1 #{7,8,9}를 반환 
s2.difference(s1)# s2 - s1를 difference 함수로 표현할수있음

*집합함수
#1개 값만 추가(.add)
s1 = set([1,2,3])
s1.add(4) #s1 = {1,2,3,4}로 4가 추가된다.

#여러 개 추가하기(.update)
s1 = set([1,2,3])
s1.update([4,5,6]) #s1 = {1,2,3,4,5,6}으로 추가됨

#특정 값 제거(remove)
s1 = set([1,2,3])
s1.remove(2) #s1 = {1,3}으로 2가 제거됨

-리스트, 튜플, 딕셔너리, 집합 특징 비교요약


7. 불 자료형
*불(bool) 자료형이란 참(True)과 거짓(False)을 나타내는 자료형이다.
*문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어 있으면("", [], (), {}) 거짓이 되고 비어 있지 않으면 참이 된다.
>>> bool([1, 2, 3])
True
>>> bool([])
False
>>> bool(0)
False
>>> bool(3)
True

8.변수란?
변수=변수에 저장할 값
*다른 프로그래밍 언어인 C나 JAVA에서는 변수를 만들 때 자료형의 타입을 직접 지정해야 한다. 하지만 파이썬은 변수에 저장된 값을 스스로 판단하여 자료형의 타입을 지정하기 때문에 더 편리하다.
 
 
리스트/튜플/딕셔너리/세트 구분

- List

1. [ ]를 사용한다.

2. 추가,수정,삭제가 가능하다.(mutable하다.)

3. 순서가 있어서 인덱싱, 슬라이싱을 사용 할 수 있다.



- Tuple

1. ( )를 사용한다.

2. 추가,수정,삭제가 불가능하다.(immutable하다.)

3. 순서가 있어서 인덱싱, 슬라이싱을 사용 할 수 있다.



- Dictionary

1. { }를 사용하고, ':'를 통해 key와 value값을 정해준다.

2. 추가,수정,삭제가 가능하다

3. 순서가 중요하지 않다. 튜플 리스트와 달리 인덱싱으로 접근하지 않고 key로 접근을 해서 value의 값을 얻어낸다.



- Set

1. .set([ ])를 사용해서 집합을 만든다.

2. 함수로 추가, 제거가 가능하다.

3. 중복을 허용하지 않는다

4. 순서가 없기 때문에 인덱싱을 통해 값을 얻을 수 없다.

'Language > Python' 카테고리의 다른 글

파이썬-함수  (1) 2024.03.15
파이썬-제어문  (2) 2024.03.15

+ Recent posts