* 표준 입력 방법
- input() 함수: 한 줄의 문자열을 입력 받는 함수
- map() 함수: 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용
ex) 공백을 기준으로 구분된 데이터 입력 받기
: list( map( int, input().split() ) )
# 데이터의 개수 입력
n = int(input())
# 각 데이터를 공백을 기준으로 구분하여 입력
# data = input().split() # 문자열 리스트
data = list(map(int, input().split())) # 정수 리스트
data.sort(reverse=True)
print(data)
ex) 공백을 기준으로 구분된 데이터의 개수가 많지 않다면 리스트 사용하지 않고 차례로 값을 넣을 수 있다.
: a, b, c = map( int, input().split() )
# a, b, c를 공백 기준으로 구분하여 입력
a, b, c = map(int, input().split())
print(a, b, c)
- 최대한 빠르게 입력 받아야 하는 경우
sys.stdin.readline() 메서드 이용
단, 입력 후 엔터가 줄 바꿈 기호로 입력되므로 rstrip() 메서드를 함꼐 사용
import sys
# 문자열 입력 받기
data = sys.stdin.readline().rstrip()
print(data)
* 표준 출력 방법
- print() 함수 이용
: 각 변수를 콤마를 이용해 띄어쓰기로 구분하여 출력할 수 있다.
- 기본적으로 출력 이후 줄바꿈 수행
: 'end' 속성을 이용해 해제 가능
a = 1
b = 2
print(a, b)
print(7, end = " ")
print(8, end = " ")
answer = 7
print("정답은 " + str(answer) + "입니다.")
# 실행 결과
# 1 2
# 7 8 정답은 7입니다.
#
* 문자열과 정수의 더하기 연산을 직접적으로 할 수 없기 때문에 정수형 데이터를 문자열로 바꿔 문자열과 더한 후 출력.
* f-string
특정한 문자를 간단하게 출력할 수 있는 방법 (파이썬 3.6부터 사용 가능)
문자열 앞에 접두사 'f'를 붙여 사용한다.
중괄호 안에 변수명을 기입하여 간단히 문자열과 정수를 함께 넣을 수 있다 .
answer = 7
print(f"정답은 {answer} 입니다.")
# 실행 결과
# 정답은 7입니다.
* 조건문
코드의 블록(block)을 들여쓰기(indent)로 지정한다.
탭 사용하거나 4개의 공백 문자 사용(파이썬 스타일 가이드라인 표준)
a = 5
if a >= 0:
print("a >= 0")
elif a >= -10:
print("0 > a >= -10")
else:
print("-10 > a")
- 비교 연산자
특정한 두 값을 비교할 때 이용
==, !=, >, <, >=, <=
- 논리 연산자(기호 사용 x)
논리 값(True/False) 사이의 연산을 수행할 때 사용
X and Y
X or Y
not X
if True or False:
print("yes")
a = 15
if a <= 20 and a >= 0:
print("yes")
- 기타 연산자
in 연산자
not in 연산자
(리스트, 튜플, 문자열, 딕셔너리 모두에서 사용 가능)
ex) x in 리스트, x not in 문자열
- pass 키워드
아무 것도 처리하고 싶지 않을 때 사용
ex) 디버깅 과정에서 조건문의 형태만 만들어 놓고 조건문을 처리하는 부분은 비워놓고 싶은 경우
score = 85
if score >= 80:
pass # 나중에 작성한 소스코드
else:
print('성적이 80점 미만')
print('프로그램 종료')
- 조건문의 간소화
조건문에서 실행될 소스코드가 한 줄인 경우, 줄바꿈을 하지 않고 간력하게 표현할 수 있다.
score = 85
if score >= 80: result = "Success"
else: result = "Fail"
print(result)
조건부 표현식(Conditional Expression)은 if ~ else문을 한 줄에 작성할 수 있도록 해준다.
score = 85
result = "Success" if score >= 80 else "Fail"
print(result)
* 파이썬 조건문 내에서의 부등식
다른 프로그래밍 언어와 다르게 조건문 안에서 수학의 부등식을 그대로 사용할 수 있다.
ex) x > 0 and x < 20과 0 < x < 20은 같은 결과를 반환한다.
* 반복문
- while문
i = 1
result = 0
while i <= 9:
result += i
i += 1
print(result)
- for문
array = [9, 8, 7, 6, 5] # 리스트 or 튜플
for x in array:
print(x)
* range() 함수: 연속적인 값을 차례대로 순회할 때 주로 사용
range(시작 값, 끝 값 + 1)
인자를 하나만 넣으면 자동으로 시작 값은 0이 된다.
* continue: 반복문에서 남은 코드의 실행을 건너뛰고, 다음 반복을 진행하고자 할 때 사용
result = 0
# i는 1부터 9까지의 모든 값을 순회
for i in range(1, 10):
if i % 2 == 0:
continue
result += i
print(result)
* break: 반복문을 즉시 탈출하고자 할 때 사용
i = 1
while True:
print("현재 i의 값: ", i)
if i == 5:
break
i += 1
* 함수
특정한 작업을 하나의 단위로 묶어 놓은 것
- 내장 함수: 파이썬이 기본적으로 제공하는 함수
- 사용자 정의 함수: 개발자가 직접 정의하여 사용
* 구조
def 함수명(매개변수):
실행할 소스코드
return 반환값
* 예제
def add(a, b):
return a + b
print(add(3, 7))
# 파라미터의 변수를 직접 지정할 수 있다. (순서 상관x)
# print(add(b = 3, a = 7))
* global 키워드: 해당 함수에서 지역 변수를 만들지 않고, 함수 바깥에 선언된 변수를 참조하게 된다.
a = 0
def func():
global a # 반드시 명시해줘야 한다.
a += 1
for i in range(10):
func()
print(a)
* 값을 변경하거나 값을 대입하는 것이 아니라 단순히 r값을 참조하는 경우 global 키워드 선언하지 않고 바로 사용할 수 있다.
a = 10
def func():
print(a + 20) # 30 출력
func()
* 전역변수로 선언된 리스트의 내부 메서드를 호출하는 것도 오류 없이 수행 가능하다.
array = [1, 2, 3, 4, 5]
def func():
# 같은 이름의 전역변수, 지역변수가 있다면 함수 안에서는 지역변수가 우선적으로 처리된다.
array = [3, 4, 5]
array.append(6)
print(array) # [3, 4, 5, 6] 출력
func()
# 함수 밖에서 array를 참조하게 되면 전역변수에 우선적으로 접근한다.
print(array) # [1, 2, 3, 4, 5, 6] 출력
* 여러 개의 반환값: 반환된 순서대로 값이 담기게 된다.
def operator(a, b):
add_var = a + b
sub_var = a - b
mul_var = a * b
div_var = a / b
return add_var, sub_var, mul_var, div_var
a, b, c, d = operator(7, 3)
print(a, b, c, d)
* 람다 표현식
특정한 기능을 수행하는 함수를 한 줄에 작성할 수 있다.
이름 없는 함수라고 불린다.
# lambda 입력 매개변수1, 입력 매개변수2 : 반환값 (매개변수1, 매개변수2)
print((lambda a, b: a + b)(3, 7))
- 람다 표현식 예시: 내장 함수에서 사용
array = [('홍길동', 50), ('이순신', 32), ('아무개', 74)]
def my_key(x):
return x[1]
# 정렬. key 속성으로 정렬 기준을 명시할 수 있다. 튜플의 두 번째 원소를 기준으로 정렬
print( sorted(array, key=my_key) )
print( sorted(array, key=lambda x: x[1])
# 실행 결과
# [('이순신', 32), ('홍길동', 50), ('아무개', 74)]
# [('이순신', 32), ('홍길동', 50), ('아무개', 74)]
- 람다 표현식 예시: 여러 개의 리스트에 동일한 규칙(하나의 함수) 적용
- map() 함수: 각각의 원소에 어떠한 함수를 적용할 때 사용
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]
result = map(lambda a, b: a + b, list1, list2)
print(list(result)) # [7, 9, 11, 13, 15] 출력
https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PL4yUyjlDsKKep7CVBfp5ZU-vRHnrGQNRv&index=3
'Python' 카테고리의 다른 글
| [python] 입력 여러 개 받기 (0) | 2024.05.11 |
|---|---|
| [python] list에 map 사용 예제 (0) | 2023.07.17 |
| [python] 기본 문법 정리 - 표준 라이브러리 (0) | 2023.07.14 |
| [python] 기본 문법 정리 - 수 / 리스트 / 문자열 / 튜플 / 사전 / 집합 자료형 (0) | 2023.07.13 |