Python은 Perl, Ruby, Scheme 또는 Java와 비교할 만한 명확하고 강력한
객체 지향 프로그래밍 언어입니다.
파이썬 특징
작성한 프로그램을 읽고 사용하기 쉬운 언어입니다.
웹 서버 연결, 정규 표현식으로 텍스트 검색, 파일 읽기 및 수정과 같은 프로그래밍 작업을 지원하는 표준 라이브러리를 제공합니다.
Python의 대화형 모드를 사용하면 간단한 코드를 쉽게 테스트할 수 있습니다. IDLE이라는 번들 개발 환경도 제공합니다.
C 또는 C++와 같은 컴파일된 언어로 구현된 모듈을 추가하여 쉽게 확장할 수 있습니다.
프로그래밍 가능한 인터페이스를 제공하기 위해 애플리케이션에 내장될 수도 있습니다.
Mac OS X, Windows, Linux 및 Unix를 포함한 모든 곳에서 실행되며 Android 및 iOS용 빌드도 사용할 수 있습니다.
파이썬은 무료 소프트웨어입니다. Python을 사용하거나 애플리케이션에 포함하는 데 비용이 들지 않습니다. Python은 언어에 저작권이 있지만 오픈 소스 라이선스에 따라 자유롭게 수정 및 재배포할 수 있습니다.
Python의 프로그래밍 언어 기능은 다음과 같습니다.
숫자(부동 소수점, 복소수, 길이에 제한이 없는 긴 정수), 문자열(ASCII 및 유니코드), 목록 및 사전과 같은 다양한 기본 데이터 유형을 사용할 수 있습니다.
Python은 클래스 및 다중 상속을 통해 객체 지향 프로그래밍을 지원합니다.
코드는 모듈과 패키지로 그룹화할 수 있습니다.
예외 발생 처리를 지원하므로 보다 깔끔한 오류 처리가 가능합니다.
데이터 타입은 동적으로 지정됩니다. 호환되지 않는 타입을 결합하면(예: 문자열과 숫자 결합 시도) 예외가 발생하므로 오류를 빨리 확인할 수 있습니다.
Python에는 generators and list comprehensions와 같은 고급 프로그래밍 기능이 포함되어 있습니다.
Python의 자동 메모리 관리를 사용하면 코드에서 수동으로 메모리를 할당하고 해제할 필요가 없습니다.
시작하기
설치
파이썬 홈페이지에서 자신의 OS 환경에 맞는 프로그램을 다운로드 한 후 설치합니다.
본 문서의 모든 예제는 VS Code에서 실행했습니다. VS Code IDE 환경에서 개발하는 것을 권장합니다.
자료형
- number(int, float, complex(복소수))
- string
- boolean : True, False
- list : 자료 배열
- tuple : 값을 변경할 수 없다.
- dictionary : key : value 로 되어 있다.
- set : unique하고 순서가 없다.
- class
type(variable)로 자료형을 확인할 수 있다. Boolean형은 'True, False'인데 첫 문자가 반드시 대문자이어야 합니다.
# 자료형 확인 예제
s='abcd'
print(type(s))
## 수행결과
<class 'str'>
b=False
type(b)
## 수행결과
<class 'bool'>
d = {'key1': 'value', 'key2': ['list', 'can', 'be', 'a', 'value']}
print(d)
## 수행결과
<class 'dict'>
st = set([1, 2, 2, 3, 4, 4, 4, 4])
type(st)
## 수행결과
<class 'set'>
자료형에 대한 상세 설명 추가 예정
LIST
input 설명
조건문
if 조건문
if 조건문은 if에 조건식을 지정하고 반드시 무장 끝에 :(콜론)을 붙이며 elif, else에도 문장 끝에 :(콜론)을 붙여야 합니다.
다음 줄에 실행할 코드를 기술하는데 반드시 들여쓰기를 해야 합니다. 들여쓰기의 길이는 한칸, 두칸, 네칸 등 칸 수는 상관없습니다.
if, if else, if elif else, if elif else 등으로 사용할 수 있습니다. elif 갯수는 제한없이 사용할 수 있습니다.
< if 문 형식>
# if
if 조건식:
코드
# if else
if 조건식:
코드
else:
코드
# if elif else
if 조건식:
코드
elif 조건식:
코드
else:
코드
for 반복문과 함께 pass, continue, break를 사용할 수 있습니다.
- pass : 실행할 코드가 없는 것으로 다음 코드를 계속해서 진행합니다.
- continue : 다음 순번의 loop를 수행합니다.
- break : 반복문을 멈추고 loop 밖으로 빠져 나가도록합니다.
반복문
파이썬 반복문에는 for 반복문과 while 반복문이 있습니다.
for 반복문
for 반복문에는 2가지 형태가 있는데 for in iterable과 for in range 형태가 있습니다.
for in iterable 에서 iterable 은 member를 하나씩 차례로 반환 가능한 object를 나타내고
string, list, dictionary 등이 올 수 있습니다.
<< for in iterable 형식 >>
# for in iterable (iterable에는 문자열, 리스트, 튜플, 딕셔너리, 집합 이 올 수 있음)
for 변수 in iterable[string | list | tuple | dictionary | set]:
반복 수행부분
for in range(start, stop, [step]) 구문에서는
stop은 반드시 입력되어야 하고, start는 생략하면 기본값으로 0을, step은 생략하면 기본값으로 1을 설정됩니다.
< < for in range 형식 >>
# for in range
for 변수 in range(start, stop, step):
반복 수행부분
step 이 양수이면 start + i * step 이 stop 보다 작을 때까지,
step 이 음수이면 start + i * step 이 stop 보다 클 때까지 반복합니다.
쉽게 step이 1일 경우, stop -1 까지 수행한다고 생각하면 됩니다.
for 반복문 예제
iterable 중 list에 대한 반복문 예제입니다.
# list에 대한 for 반복문
var_list = [1, 3, 5, 7]
for i in var_list:
print(i)
## 수행결과
1
3
5
7
아래는 for ... range 데 대한 예제입니다.
start와 step를 쓰지 않은 경우, start는 0 step 은 1이고 stop 은 5입니다.
stop 값이 5 이므로 0 + i * 1이 5보다 작을 때 까지 수행합니다. 여기서 i 는 start 값인 0 부터 시작합니다.
쉽게 시작값인 0 부터 5보다 1이 작은 4까지 수행되는 것입니다.
아래 조건은 range(0, 5, 1) 과 동일합니다.
for i in range(5):
print(i)
## 수행결과
0
1
2
3
4
1부터 10까지 더하는 예제
s = 0
for i in range(1, 11):
s = s + i
print('1부터 10까지 합은 : ', s)
## 수행결과
1부터 10까지 합은 : 55
for loop with else 구문
for 루프는 선택적으로 else 구문도 쓸 수 있습니다.
for...else의 else 블록은 break 문의 존재 여부에 따라 다르게 실행됩니다.
names = ["alex", "brian", "charles"]
for x in names:
print(x)
else:
print("No name is left in the list")
## 수행결과
alex
brian
charles
No name is left in the list
2) for 루프에 break 문이 있는 경우:
– break 조건이 충족되지 않아 break가 실행되지 않은 경우 else 블록이 실행됩니다.
– break가 실행되는 경우 else 블록이 실행되지 않습니다.
- The break 가 실행되지 않은 경우
names = ["alex", "brian", "charles"]
for x in names:
print(x)
if x == "david":
break;
else:
print("No name is left in the list")
## 수행결과
alex
brian
charles
No name is left in the list
- The break 문이 실행되는 경우
names = ["alex", "brian", "charles"]
for x in names:
print(x)
if x == "brian":
break;
else:
print("No name is left in the list")
## 수행결과
alex
brian
while 반복문
while문이란 조건식이 참(True)인 경우 실행문이 계속적으로 실행되는 파이썬 반복문입니다. for문과 동일하게 실행문이 반복 실행하지만, 그 반복횟수를 알 수 없는 경우 while문을 사용할 수 있습니다.
while과 조건식을 작성하고 마지막에 :(콜론)을 입력한 뒤, 다음 줄에 실행문을 작성하면 됩니다.
종료되지 않고 영원히 반복되는 while문을 무한 루프(Infinite loop)라고 합니다.
< while 문 형식 >
while [조건문]:
[수행부분]
아래는 count가 0부터 5보다 작을 때까지 반복문을 실행하는 예제입니다.
count = 0
while count < 5:
print(count, ' is less than 5')
count = count + 1
else:
print(count, ' is not less 5 so stop here')
## 실행결과
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less 5 so stop here
while 반복문과 함께 pass, continue, break를 사용할 수 있습니다.
- pass : 실행할 코드가 없는 것으로 다음 코드를 계속해서 진행합니다.
- continue : 다음 순번의 loop를 수행합니다.
- break : 반복문을 멈추고 loop 밖으로 빠져 나가도록합니다.
<<< break 예제 >>>
반복문 수행 중 break 문을 만나면 반복문을 빠져 나온다.
i = 0
while i < 6:
i += 1
if i == 3:
break
print('break', end=" ")
print(i, end=" ")
## 실행결과
1 2
<< continue 예제 >>
조건에 부합하여 continue 명령어를 만나면 다음 순번의 반복문을 수행하게 한다.
즉, continue 를 만나면 다음 코드를 수행하지 않고 while 조건문을 체크한다.
i = 0
while i < 6:
i += 1
if i == 3:
continue
print('continue', end=" ")
print(i, end=" ")
## 실행결과
1 2 4 5 6
<< pass 예제 >>
조건에 부합하여 pass 명령어를 만나면 다음 코드를 수행한 후 다음 순번의 반복문을 수행하게 한다.
즉, pass를 만나면 다음 코드를 수행하고 while 조건문을 체크한다.
i = 0
while i < 6:
i += 1
if i == 3:
pass
print('pass', end=" ")
print(i, end=" ")
## 실행결과
1 2 pass 3 4 5 6
while loop with else 구문
while 루프는 선택적으로 else 구문도 쓸 수 있습니다.
while ... else의 else 블록은 break 문의 존재 여부에 따라 다르게 실행됩니다.
위의 for 반복문에서 설명한 내용과 동일합니다.
무한 반복문 (infinite loop)
아래 예제는 사용자로부터 input()으로 문자를 받아서, 입력된 문자에 따라 프로그램을 계속 수행할지 중지할지를 하는 무한 반복문입니다. N 을 입력하지 않으면, 무한히 반복됩니다.
while True:
print('계속하시겠습니까? [Y/N]:')
answer = input()
if answer == 'Y':
print('>> 계속합니다.')
elif answer == 'N':
print('>> 중지합니다.')
break
else:
print('>> 계속하려면 Y, 중지하려면 N 을 입력하세요')
## 실행 결과
계속하시겠습니까? [Y/N]:
예
>> 계속하려면 Y, 중지하려면 N 을 입력하세요
계속하시겠습니까? [Y/N]:
Y
>> 계속합니다.
계속하시겠습니까? [Y/N]:
N
>> 중지합니다.
<< HERE >>
함수
함수는 호출될 때만 실행되는 코드 블록입니다.
매개변수라고 하는 데이터를 함수에 전달할 수 있고 결과로 데이터를 반환할 수 있습니다.
Python에서 함수는 def 키워드를 사용하여 정의하며 마직막에 :(콜론)을 붙여야 합니다.
예제) 함수생성
def my_function():
print("Hello from a function")
함수 호출
함수를 호출하려면 함수 이름 뒤에 괄호를 사용합니다.
예제) 함수호출
def my_function():
print("Hello from a function")
my_function()
-- 실행결과
Hello from a function
함수 인자(Arguments)
함수에는 인자를 전달할 수 있습니다.
인자는 함수 이름 뒤에 괄호 안에 지정됩니다. 원하는 만큼 인자를 추가할 수 있으며 쉼표로 구분하면 됩니다.
다음 예에는 하나의 인자(fname)가 있는 함수입니다. 함수가 호출되면 인자을 전달합니다.
전달된 인자는 함수 내부에서 사용됩니다.
예제) 함수인자
def my_function(fname):
print(fname + " Refsnes")
my_function("Emil")
my_function("Tobias")
my_function("Linus")
-- 실행결과
Emil Refsnes
Tobias Refsnes
Linus Refsnes
인자(Arguments)는 종종 Python에서 args로 사용됩니다.
Parameters or Arguments?
매개변수와 인자라는 용어는 같은 용도로 사용할 수 있습니다. 즉, 함수에 전달되는 정보입니다.
함수의 관점에서:
매개변수(parameter)는 함수 정의에서 괄호 안에 정의된 변수입니다.
호출될 때 함수에 전송되는 값을 인자(argument)입니다.
아래는 파라미터와 인자(argument)를 설명한 예제입니다. 본 문서에서는 인수,인자,파라미터를 동일한 의미로 사용합니다.
# parameter (매개변수)
# 함수의 정의 부분에 나열되어 있는 변수, 여기서는 plus 함수 정의시에 사용되는 a, b를 parameter(매개변수) 라고 한다.
def plus(a, b):
return a + b
# argument (전달인자)
# 함수를 호출할때 전달 되는 실제 값, 여기서는 plus 라는 함수에 넣어주는 값 1, 2를 argument(전달인자)라고 한다.
result = plus(1, 2)
Number of Arguments
기본적으로 함수는 정확한 수의 인자로 호출되어야 합니다. 즉, 함수에 2개의 인자가 필요한 경우 정확히 2개의 인자를 사용하여 함수를 호출해야 합니다.
예제)
## expects 2 arguments, and gets 2 arguments:
def my_function(fname, lname):
print(fname + " " + lname)
my_function("길동", "홍")
Arbitrary Arguments, *args
함수에 전달할 인수의 갯수를 모르는 경우 함수 정의에서 매개변수 이름 앞에 *를 사용할 수 있습니다.
이런 식의 함수는 인수를 튜플로 처리합니다.
예제)
arguments 갯수를 모를경우에, parameter 이름 앞에 *(별표)를 추가합니다.
def my_function(*king):
print(type(king))
arg_len = len(king)
for i in range(0, arg_len):
print(str(i) + " king is " + king[i])
my_function("세종대왕", "징기스칸", "나폴레옹")
-- 실행결과
<class 'tuple'>
0 king is 세종대왕
1 king is 징기스칸
2 king is 나폴레옹
Keyword Arguments
key = value 구문을 사용하여 인수를 보낼 수도 있습니다.인수의 순서는 중요하지 않습니다.
예제)
def my_function(pram3, pram2, pram1):
print("The first argement is " + pram1)
my_function(pram1 = "Emil", pram2 = "Tobias", pram3 = "Linus")
-- 실행결과
The first argement is Emil
Arbitrary Keyword Arguments, **kwargs
함수에 전달할 키워드 인수의 수를 모르는 경우 함수 정의에서 매개변수 이름 앞에 ** 두 개의 별표를 추가합니다.
이런 함수는 인수를 dictionary 형식으로 인식합니다.
예제)
def my_function(**kid):
print("His first name is " + kid["fname"])
print("His last name is " + kid["lname"])
my_function(fname = "길동", lname = "홍")
-- 실행결과
His first name is 길동
His last name is 홍
Default Parameter Value
다음 예는 기본 매개변수 값을 사용하는 방법입니다.
인수 없이 함수를 호출하면 기본값을 사용합니다.
예제)
def my_function(country = "Seoul"):
print("I am from " + country)
my_function("Sweden")
my_function()
my_function("Dubai")
-- 실행결과
I am from Sweden
I am from Seoul
I am from Dubai
Passing a List as an Argument
인수의 모든 데이터 유형(문자열, 숫자, list, dictionary 등)을 함수에 보낼 수 있으며 함수 내에서 동일한 데이터 유형으로 처리됩니다.
예를 들어 List를 인수로 보내면 함수에서도 List가 됩니다.
예제)
def my_function(food):
for x in food:
print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)
-- 실행결과
apple
banana
cherry
Return Values
함수가 값을 반환하도록 하려면 return 문을 사용합니다.
Example
def my_function(x):
return 5 * x
print(my_function(3))
print(my_function(5))
-- 실행결과
15
25
The pass Statement
function definitions cannot be empty, but if you for some reason have a function definition with no content, put in the pass statement to avoid getting an error.
함수 정의는 반드시 해야 하지만 어떤 이유로 내용이 없는 함수 정의가 필요한 경우, 경우 오류가 발생하지 않도록 pass 문을 입력합니다. 함수 호출 시 아무것도 pass만 수행됩니다.
Example
def myfunction():
pass
myfunction()
-- 실행결과
Recursion
Python also accepts function recursion, which means a defined function can call itself.
Recursion is a common mathematical and programming concept. It means that a function calls itself. This has the benefit of meaning that you can loop through data to reach a result.
The developer should be very careful with recursion as it can be quite easy to slip into writing a function which never terminates, or one that uses excess amounts of memory or processor power. However, when written correctly recursion can be a very efficient and mathematically-elegant approach to programming.
In this example, tri_recursion() is a function that we have defined to call itself ("recurse"). We use the k variable as the data, which decrements (-1) every time we recurse. The recursion ends when the condition is not greater than 0 (i.e. when it is 0).
To a new developer it can take some time to work out how exactly this works, best way to find out is by testing and modifying it.
Python은 함수 재귀 호출을 허용합니다. 즉, 함수가 자기 자신을 호출할 수 있습니다.
재귀는 일반적인 수학 및 프로그래밍 개념입니다. 이는 결과에 도달하기 위해 데이터를 반복할 수 있습니다.
무한반복 함수나 과도한 양의 메모리 또는 프로세서를 사용하는 함수를 작성할 수 있기 때문에 재귀함수 생성 시 주의해야 합니다. 올바르게 작성되면 재귀 함수는 프로그래밍에 대한 매우 효율적이고 유용한 방식이 될 수 있습니다.
이 예에서 tri_recursion()은 자체 호출("재귀")하도록 정의한 함수입니다. 우리는 데이터로 k 변수를 사용하는데, 이것은 재귀할 때마다 (-1) 감소합니다. 조건이 0보다 크지 않으면(즉, 0인 경우) 재귀가 종료됩니다.
예제
함수 재귀호출 예제
def tri_recursion(k):
if(k > 0):
result = k + tri_recursion(k - 1)
print(result)
else:
result = 0
return result
tri_recursion(5)
-- 실행결과
1
3
6
10
15
Lambda 함수 : link 참조
decorator
라이브러리
클래스와 객체
파일 다루기
주피터 노트북
pandas
계산기 만들기 예제
GUI 게시판
리터럴 상수
리터럴 상수의 예는 5 , 1.23 과 같은 숫자 또는 'This is a string' 또는 "It's a string!"과 같은 문자열입니다. .
리터럴이기 때문에 리터럴이라고 합니다. 값을 문자 그대로 사용합니다. 숫자 2는 항상 자신을 나타내며 다른 것은 표시하지 않습니다.
값을 변경할 수 없기 때문에 상수입니다. 따라서 이 모든 것을 리터럴 상수라고 합니다.
숫자
숫자는 주로 정수와 부동 소수점의 두 가지 유형이 있습니다.
정수의 예는 정수인 2입니다.
부동 소수점 숫자(또는 줄여서 float)의 예는 3.23 및 52.3E-4 입니다. E 표기법은 10의 거듭제곱을 나타냅니다. 이 경우,
52.3E-4 는 52.3 * 10^-4^ 를 의미합니다.
숙련된 프로그래머를 위한 참고 사항
별도의 long형은 없습니다. int 유형은 모든 크기의 정수가 될 수 있습니다.
문자열
문자열은 일련의 문자입니다. 문자열은 기본적으로 단어의 묶음입니다.
작성하는 거의 모든 Python 프로그램에서 문자열을 사용할 것이므로 다음 부분에 주의하십시오.
작은따옴표
'Quote me on this' 와 같은 작은따옴표를 사용하여 문자열을 지정할 수 있습니다.
따옴표 안에 있는 모든 공백(예: 공백 및 탭)은 있는 그대로 유지됩니다.
큰따옴표
큰따옴표로 묶인 문자열은 작은따옴표로 묶인 문자열과 정확히 같은 방식으로 작동합니다. 예는 "이름이 무엇입니까?"입니다. .
트리플 쿼트
삼중따옴표( """ 또는 ''' )를 사용하여 여러 줄 문자열을 지정할 수 있습니다.
삼중 따옴표. 예는 다음과 같습니다.
'''여러 줄 문자열입니다. 이것이 첫 번째 줄입니다.
이것은 두 번째 줄입니다.
"이름이 뭐예요?" 내가 물었다.
그는 "본드, 제임스 본드"라고 말했다.
'''
문자열은 변경할 수 없습니다.
즉, 문자열을 만든 후에는 변경할 수 없습니다. 이것이 나쁜 일처럼 보일 수 있지만 실제로는 그렇지 않습니다. 우리는
이것이 나중에 보게 될 다양한 프로그램의 제한 사항이 아닌 이유를 확인하십시오.
C/C++ 프로그래머를 위한 참고 사항
Python에는 별도의 char 데이터 유형이 없습니다. 실제로 필요하지 않으며 놓치지 않을 것입니다.
Perl/PHP 프로그래머를 위한 참고 사항
작은 따옴표로 묶인 문자열과 큰 따옴표로 묶인 문자열은 동일하며 어떤 방식으로도 다르지 않습니다.
포맷 방법
때때로 우리는 다른 정보에서 문자열을 구성하고 싶을 수 있습니다. 여기서 format() 메서드가 유용합니다.
다음 줄을 str_format.py 파일로 저장합니다.
'Python' 카테고리의 다른 글
파이썬 - lambda 함수 (0) | 2022.01.05 |
---|---|
Python 코드를 실행하는 Visual Studio Code에서 code runner 메시지를 숨기는 방법 (0) | 2022.01.04 |
[Python] VSCode argument 설정 (1) | 2021.12.31 |
Python과 SQLite DB 연동하기 - 수정 (0) | 2021.12.31 |
Python __main__ 이란 (0) | 2021.12.30 |