반응형

모듈(modules)이란?

 

표준 라이브러리의 일부분임다

파이썬 프로그램에서 사용되기 위한 명령문을 포함하고 있는 파일 이것 때문에 파이썬이 사기라고 불리는 거 같아요 근데 사용해보니까 진짜 오지게 좋긴함ㅇ요...ㅍ...ㅏ..파이썬 짱!!

 

ex) random, math, string, turtle 등등

 

math  module

대표적인 2개를 소개해볼게요

우선 아래 함수들을 쓰기 위해서는 import math라는 코드를 써줘야 합니다. 

import math 는 math library를 사용한다는 뜻입니다. 

 

1. math.pow(x,y)

제곱을 구하는 함수로, x의 y승을 구하는 함수입니다.

2. math.sqrt(x)

제곱근을 구하는 함수로, x의 제곱근 즉, 루트 x의 값을 구하는 함수입니다. 

 

재귀함수 

재귀 : 함수가 함수 내용에서 자기자신을 호출하는 프로그래밍 

재귀함수는 재귀로 정의된 함수를 지칭하는 것이죠. 

재귀함수에는 종료조건을 꼭 명시해야합니다. 아니면, 무한루프에 빠져 머리 쥐어뜯을수도...

 

def pow(n1, n2):
	if n2 == 0:
    	return 1
    else
    	return (n1*pow(n1, n2-1))
        
print(pow(2,4))
# 출력결과 : 16

이렇게 사용할 수 있다는 거쥬. 

 

format()도 한 번 보도록 하겠슴다 

사용 방법 : '{인덱스 번호 0}'.format(값0), {인덱스 번호 0}, {인덱스 번호 1}'.format(값0, 값1)

age = 30
name = "JohnTheBaptist"
txt = "His name is {1}.  {1} is {0} years old.“

print(txt.format(age, name))

 여기서 {1} 은 format()안 1번째는 name를 의미하고, {0}은 format()안 0번째는 age를 의미합니다. 

 

활용하면

for x in range(1, 10):
    print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))

이렇게 됩니다. 

뒤에 2d, 3d, 4d는 정수의 자리를 표현하는 방법입니다. 02d라고 쓰면 남는부분이 자동으로 0으로 채워지고, 그냥 2d라고 치면, 공백이 채워집니다. 그냥 {2:2}라고 써도 2의 자리에 2자릿수로 된다라는 의미로 된대요. 저도 이거 안지 얼마 안되어서 아직 잘 모름...힛...공부 열심히 할게요 

 

그렇다면, 소수는 어떻게 표현할까요?

 

소수점 자리를 표현할 땐 '0.2f'이러식으로 표현합니다. 이것도 마찬가지로 남는 부분에 0이 채워집니다. 

 

우선 여기까지인데 또 알게 되면 호다닥 올릴게요~ 그럼 안녕~

반응형

'Python' 카테고리의 다른 글

02 파이썬 함수  (0) 2021.05.21
01 파이썬 리스트(list)  (0) 2021.05.20
00 파이썬 시작(기초 문법)  (0) 2021.05.19
반응형

저는 코딩할 때 함수를 자주 쓰는 편인듯함니다.. 왜냐하면 약간 나눠져 있어서 보기가 편함. 물론 지극히 개인적인 의견임 이건 

이번에도 역시 출처는 

우리 학교 교수님 ppt 

교수님 진심으로 사랑합니다 오늘이 시험인 거 빼고요 

 

함수를 사용하는 이유

: 코드가 길어질 때 모듈화하여 간결성을 높이기 때문

 

모듈화 하였을 때 장점

1. 고치기 쉬움.

2. 운영과 관리를 용이하게 함.

3. 프로그램 가독성을 높여줌.

 

뭐 등등 이러한 이유로 쓴다고 합니다. 참고하시길 

그럼 이제 함수를 어떻게 정의하고 사용하는지 등등에 대해 알아보겠음욧

 

함수는 크게 2가지로 나눌 수 있어요 

내장 함수 / 사용자 정의 함수 

 

오늘 설명 할 건 사용자 정의 함수.

 

사용자 정의 함수가 뭐냐 말 그대로 사용자가 정의하는 함수, 즉 프로그래머가 만드는 함수에요 

그러니까 함수 이름과 내용을 마음대로 만들 수 있다는 소리 개꿀이죠?

 

사용자 정의 함수는 만드는 방법 

1. 함수의 기능을 정하고, 이름을 만든다. 

- 주로 함수의 이름은 기능과 관련한 이름으로 짓는 편이에요 그래야 나중에 코드를 볼 때 이해하기가 쉽기 때문...☆

2 함수의 입력과 결과가 무엇인지 정한다. 

3. 입력으로 사용하는 파라미터와 리턴 값의 데이터형을 정한다.

 

방금 읽은 걸 이해하셨나요? 못 이해하셔도 됩니다. 그게 아마 대부분이 그럴 거에요 (통계적인 수치는 모르구요 그냥 느낌상..ㅎ )

 

이제 진짜로 함수를 어떻게 사용하는지 볼게요 

def plus(a, b):
	sum = a + b
    return sum
num1 = int(input("첫번째 정수를 입력하세요 : "))
num2 = int(input("두번째 정수를 입력하세요 : "))

print(num1, "+", num2, "=", plus(num1, num2))

먼저 def라는 걸로 정의한다고 알려줍니다. 그리고 나서 함수 명을 plus라고 달아주었어요. 

저기 보시면 a와 b가 있죠? 이게 파라미터라고 하는 겁니다. 이건 마음대로 정할 수 있어요 뭐 1개, 2개 상관없고 자료형을 무엇을 하던 상관이 없습니다. 다만 위에 print문에서 함수를 호출 할 때 위에 파라미터와 같은 자료형으로 넣어야 한다는 거죠. 만약 자료형을 다르게 넣는다면 실행이 안됨. 그리고 계산한 값을 리턴해줍니다. 그러니까 쉽게 봐서 plus(num1, num2) 은 sum과 같다는 소리죠.

 

우선... 설명은 여기까지인데 앞으로 보시는 대부분의 코드에 함수가 있을 겁니다. 그걸 참고 하시면 좋을듯요 

사실, 파이썬을 올리는 거 자체가 처음배우는 사람들에게 알려주는게 아니라 온전히 그냥 기록용이라서 ☆참고☆만 하시면 됩니다. 

 

그럼 봐주셔서 감사해요 20000 뿡~

진심

반응형

'Python' 카테고리의 다른 글

03 파이썬 모듈  (0) 2021.05.21
01 파이썬 리스트(list)  (0) 2021.05.20
00 파이썬 시작(기초 문법)  (0) 2021.05.19
반응형

우선, 리스트에 대해 소개해야 겠음. 근데 이런 거 잘 안읽지 않나요? 그래도 우선 써볼게요

출처 : 우리학교 교수님 ppt

교수님 사랑해요

 

List(목록 또는 배열)

:값들의 나열이다

-  리스트 안 구성 요소를 원소 또는 항목이라고 부른다. 

특징 (잘 알아둬야 함요 나중에 튜플이랑 헷갈릴 수도 있어요 누가 그러냐고요? 제가 그랬음ㅋ)

1. 다양한 종류의 데이터 타입으로 구성 가능 

2. 내용 변경이 가능 

 

리스트 함수들

1. 추가  

1) .append()

- 리스트 내에 새로운 아이템 한개를 추가하여, 마지막에 위치한다.

사용방법 : 리스트이름.append() ex) list.append(), array.append()

list = []
for i in range(10):
	list.append(i)
print(list)
#출력결과 :  [0,1,2,3,4,5,6,7,8,9]]

저는 이 함수를 제일 많이 썼음요. 하나의 객체로 추가된다는 점 유의하시길...☆

 

※ '+' 연산자로도 추가할 수 있다는 거 (후...진짜 꿀팁인데 제가 알려드릴게요 진짜 운 좋은 줄 아세요^^)

a = [1,2,3]
b = [4,5]
c = a+b
print(c)
#출력결과 : [1,2,3,4,5]

 

2) .insert()

- 리스트 내에 index 번호와 아이템 내용을 추가한다.

사용방법 : 리스트이름.insert(index, [추가할 내용])

이 함수는 자료형이 같아도 객체로 저장됨.

요롷게↓

arrays = [1,2,3]
arrays.insert(1, [4,5])
print(arrays)
#출력결과 : [1, [4,5], 2, 3] 

3) .extend()

 

- 다른 이름의 리스트, 아이템을 모두 추가한다. 

사용방법 : 리스트이름.extend([추가할 내용])

 

여기서 주의!! .insert()와 다르게 추가할 내용이 리스트 내에 있는 원소들의 자료형과 같아야함.

그러니까 정수형이라면 정수형으로 추가해야한다는 소리임.

arrays = [1,2,3]
arrays.extend([4,5])
print(arrays)
#출력결과 : [1, 2, 3, 4, 5] 

2. 정렬 

 .sort(), .reverse()

  (1) .sort()

사용방법 : 리스트이름.sort()

기본적으로 오름차순으로 정렬해준다. 순서의 기준은 ascii code순(그냥 우리가 흔히 아는 숫자 순서라고 생각하심 됩니다.)

arrays = [1,3,5,2,7]
arrays.sort()
print(arrays)
#출력결과 : [1, 2, 3, 5, 7] 

내림차순으로 정렬하고 싶으면 reverse = True을 쓰면 됨.

사용방법 : 리스트이름.sort(reverse = True)

짜란☆

arrays = [1,3,5,2,7]
arrays.sort(reverse = True)
print(arrays)
#출력결과 : [7, 5, 3, 2, 1] 

  (2) .reverse()

리스트를 거꾸로 뒤집어 준다. 

사용방법 : 리스트이름.reverse()

arrays = [1,3,5,2,7]
arrays.resverse()
print(arrays)
#출력결과 : [7, 2, 5, 3, 1] 

3. 삭제 

1) .pop()

리스트 내에 존재하는 아이템의 index 번호를 입력받아 삭제한다.

사용방법 : 리스트이름.pop(지우고 싶은 원소의 인덱스 값)

만약 arrays = [1,2,3,4,5]라는 아이템이 있을 때 3를 삭제하고 싶다면

원소 3의 인덱스 번호인 2를 넣어야 한다. -> arrays.pop(2) 

arrays = [1,2,3,4,5]
arrays.pop(2)
print(arrays)
#출력결과 : [1,2,4,5]

2) .remove()

사용방법 : 리스트이름.remove(지우고 싶은 원소)

리스트 내에 존재하는 아이템을 삭제, 동일한 아이템이 있으면 처음 아이템만 삭제 

여기서는 인덱스 번호가 아닌 원소를 넣어야한다.

arrays = [1,2,3,4,5,2,3,4]
arrays.remove(2)
print(arrays)
#출력결과 : [1,3,4,5,2,3,4]

 

자 여기까지 리스트 기본 함수....? 암튼 자주 사용하는거랍니다. 근데 저는 이마저도 다 사용안하구요...그냥 몇개 골라 씀..가끔 생각안나면 함수 안쓰고 풀기도 함(찡긋)

 

활용편

이걸 자주 쓰나? 싶은 의문이 들 수 있어요. 왜냐면 지금 제가 그렇거든요. 아직 시험 칠 때 빼고 한번도 쓴 적이 없어요....아무래도 백준에 입성해야 될듯...ㅠㅠ 헝헝 아직 파이썬으로 백준 문제 안풀어봤음요....내일 시험 끝나고 도전해볼것임

1) .split()

문자열을 단어 단위로 잘라서, 리스트로 생성

사용방법(집중하세요. 좀 많음;;)

 (1) 문자열.split()

word = "Hi, my name is hungry"
word = word.split()
print(word)
#출력결과 : ['Hi,', 'my', 'name', 'is', 'hungry']

 (2) 문자열.split('구분할 문자')

word = "Hi, my/ na/me is h/ungry"
word = word.split('/')
print(word)
#출력결과 :  ['Hi, my', ' na', 'me is h', 'ungry']

 (3) 문자열.split('구분할 문자', '분활할 횟수')

보시면 코드에 word = word.split('/',2) 가 있죠? 말 그대로 2번 나누니까 3개가 되겠죠? (, 갯수가 2개)

word = "Hi, my/ na/me is h/ungry"
word = word.split('/',2)
print(word)
#출력결과 : ['Hi, my', ' na', 'me is h/ungry']

 (4) 문자열.split(sep = '구분할 문자', maxsplit = '분활할 횟수')

이게 가장 정확한 함수래요 제가 정말 귀찮아서 위에 걸 주로 쓸 거 같죠? 근데 저 은근 쫄보라서 이거 썼어요

word = "Hi, my/ na/me is h/ungry"
word = word.split(sep = '/',maxsplit = 1)
print(word)
#출력결과 : ['Hi, my', ' na/me is h/ungry']

 

2) .join()

리스트를 문자열로 생성해줌. (.split()와 반대 기능)

사용방법 : '구분할 문자'.join(리스트이름)

list_word = ["Hi,","my", "name"," is", "hungry"]
word1= ' '.join(list_word)
word2= '/'.join(list_word)
print(word1)
print(word2)

'''
출력 결과 
Hi, my name  is hungry
Hi,/my/name/ is/hungry
'''

 

함수를 사용한 코드 

1. 소수 찾기 

num = int(input("양의 정수를 입력하세요 : "))
bol = True

prime = [1]

for i in range(2, num):
    if num % i == 0:
        prime.append(i)
        bol = False

prime.append(num)

if bol == True:
    print(num, '은 소수입니다.')
else:
    print(num, '은' , prime, '이라는 약수를 가지고 있으므로, 소수가 아니다.')

'''
출력 결과 :
양의 정수를 입력하세요 : 15
15 은 [1, 3, 5, 15] 이라는 약수를 가지고 있으므로, 소수가 아니다.
'''

2. 리스트에서 가장 큰 수 찾기 (물론 if문과 for을 써서 풀어도 되지만 저는 sort함수 사용을 위해 한 것이니 용서 부탁드려요^^)

array = [1, 3, 6, 2, 8, 4, 10 ,24, 31, 22, 19, 49, 22, 10]
temp = len(array)

array.sort()

print("리스트 내에서 가장 큰 수는 ", array[temp-1])
# 출력결과 : 리스트 내에서 가장 큰 수는  49

 

짝짜짜ㅏㅏㅏ자ㅉㄲㄱ짞짝

수고 하셧슴니다 모두모두 읽어주서셔 감사해용 그럼 뿡~

저의 마음입니다

반응형

'Python' 카테고리의 다른 글

03 파이썬 모듈  (0) 2021.05.21
02 파이썬 함수  (0) 2021.05.21
00 파이썬 시작(기초 문법)  (0) 2021.05.19
반응형

이걸 보는 사람이 있을까? 싶지만 우선 써볼게요. 근데 이거 초보자를 위한 그런 거 아니고 제가 처음 배운 언어가 C였어서 C랑 다른 점이랑 기초 문법이 어떻게 되는지 기록하는 용도로 쓸거라 도움 안될 수 도 있음요...ㅈㅅ합니다. 그래도 보실 분이 있다면 ㄱㅅ합니다..

 

틀린게 있다면 말해주세열~ 후다닥 달려와서 고치겠슴다 근데 저 기죽으니까 착하게 말해주세요 부탁드립니다^^

 

1. 세미콜론 안붙임, 괄호 안씀

이거...진짜 저 고치느라 식은땀 자주 흘림... 하나 썰 풀자면 제가 처음으로 퀴즈를 치게 되었죠..저는 아직 기초니까 자신만만하게 들어가서 미친듯이 코딩하고 거의 영화에 나오는 해커 수준으로 타자침 훗.. 이게 나다ㅏ...☆ 하고 컴파일 하려는데 오류나는 거임요... 분명이 맞는데;; 보니까 중괄호 쓰고 세미콜론 붙이고 난리남;;; 암튼 그래서 당황했어요 

 

예를 들면 이런

c언어

int sum = 10;
printf("%d", sum);

파이썬 

sum = 10
print(sum)

 

 

2. 데이터 형, string

1) 문자열(String)은 인덱스화됨

word = "apple"
str = word[0] + word[3]
#str에는 "al"가 저장

컴퓨터는 0부터 시작하는 거 다들...알고 계시죠? 알고 계신다고 하고 넘어갈게요. 

아 그리고 음수 인덱싱 이게 생각보다 많이 쓰이더라구요 

음수 인덱싱은 반대로 생각하시면 됩니다. 그러니까 0이면 a겠죠. 여기서 거꾸로 가니까  e가 -1, l이 -2.. 이렇게 진행됩니다. 

word = "apple"
str = word[-1] + word[-3]
#str 에는 "ep" 저장

 

2) 부분 문자열 추출 가능

슬라이싱이라고 합니다. 이거 개꿀임요 진짜

i love you 라는 문자열에서 love라는 문자열만 추출해서 사용하고 싶다면 어떻게 해야할까요. 당연히 아까 한대로 

i가 0이니까...(지금 손가락으로 세는 중)

이렇게 쓸 수 있겠죠? 

str = "i love you"
word = str[2] + str[3] + str[4] + str[5]

사실 저렇게 해도 되는데 저렇게 하면 코드도 쓸데없이 길어지고 저 같이 숫자 잘 못세는 사람들은 실수한다구욧...그리고 귀찮음 ㅎ 하나하나 입력하기 

그래서 아주 친절하고 효율적인 파이썬님께서 : 라는 걸 이용해서 문자를 추출하도록 해주심...진짜 무한 ㄱㅅ

그럼 이제 위에 있는 문장을 :를 이용해서 줄여볼게요

str = "i love you"
word = str[2:6]

근데 여기서 주의 해야할 게 

[앞에 오는 수 : 뒤에 오는 수] 

앞에 오는 수부터 시작하지만 뒤에오는 수 하나 보다 작은 곳에서 끝난다는 거 겁나 중요 별 표시 5개...4.5개? 그정도

그러니까 만약에 인덱스 번호 5까지 추출하고 싶으면 6을 쓰고 3까지 추출하고 싶으면 4를 써야한다는 거죠 

str = "i love you"
str[0:2] # "i" 추출(인덱스 번호 0부터 1까지 추출)
str[7:10] # "you" 추출(인덱스 번호 7부터 9까지 추출)

여기서 더 응용하자면 

[:뒤에 수]

이렇게만 하면 처음부터 뒤에 수 -1 번 문자까지 추출됩니다.

str = "i love you"
str[:5] # "i lov" 추출 (인덱스 번호 0부터 4까지) 

공백도 문자에 포함입니다. 그거 아무것도 없는거 아니고 공백이라는 공간이 존재하는 거임요(이렇게 설명해도 될까....후...ㅈㅅ해요 만약 여기까지 보셨다면 감사의 말씀과 함께 존경을 표하구요..욕하진 마세요 다른 코딩잘하시는 존잘분들 글을 참고하시길 바랍니다...)

 

반대로 [앞에 수 : ]
이렇게 하면 앞에 있는 수부터 끝까지 추출됩니다.

str = "i love you"
str[7:] # "you" 추출 (인덱스 번호 7부터 9까지 추출)

 

3. 연산자 우선 순위 (아 이거는 제가 코딩 배울 초반에 자꾸 헷갈려서 올려놓는 거)

1순위 : 산술 연산자 +, -, *, **(제곱), /(나누기),//(몫), %, +=, -=, *=, /=

2순위 : 관계 연산자 <,>,<=, >=, =, !=

3순위 : 논리 연산자 and, or , not, in

 

그럼 20000 

담에....또 오실거에요?.....왜??....아니에요....보세요...

 

 

to. 끝까지 봐주신 천사님께 

저의 마음이에요

 

반응형

'Python' 카테고리의 다른 글

03 파이썬 모듈  (0) 2021.05.21
02 파이썬 함수  (0) 2021.05.21
01 파이썬 리스트(list)  (0) 2021.05.20

+ Recent posts