개발노트

[Python] 요약 정리 본문

알고리즘, PS

[Python] 요약 정리

mroh1226 2023. 7. 24. 16:14
반응형
문자형
mixed_quotes = "She said, \"Hello, World!\" and it's amazing."
mixed_quotes = 'She said, "Hello, World!" and it\'s amazing.'
mixed_quotes = """She said, "Hello, World!" and it's amazing."""
# 문자열 이어붙이기 (+ 연산자)
greeting = "Hello, "
name = "John"
message = greeting + name
print(message)  # 출력: "Hello, John"

# 문자열 반복하기 (* 연산자)
word = "Python "
repeated_word = word * 3
print(repeated_word)  # 출력: "Python Python Python "

# 문자열 포함 여부 확인하기 (in 연산자)
sentence = "The quick brown fox jumps over the lazy dog"
keyword1 = "fox"
keyword2 = "cat"
print(keyword1 in sentence)  # 출력: True
print(keyword2 in sentence)  # 출력: False

# 문자열 포함하지 않는지 확인하기 (not in 연산자)
print(keyword1 not in sentence)  # 출력: False
print(keyword2 not in sentence)  # 출력: True

# 문자열 포맷팅 (% 연산자)
age = 30
formatted_message = "I am %d years old" % age
print(formatted_message)  # 출력: "I am 30 years old"

# 문자열 인덱싱 (인덱스는 0부터 시작)
word = "Python"
print(word[0])  # 출력: "P"
print(word[2])  # 출력: "t"

# 문자열 슬라이싱 (시작 인덱스와 끝 인덱스를 지정)
sentence = "Python Programming"
print(sentence[0:6])  # 출력: "Python"
print(sentence[7:])  # 출력: "Programming"

숫자형
# 덧셈 연산
result_addition = 5 + 3
print("덧셈 결과:", result_addition)  # 출력: 덧셈 결과: 8

# 뺄셈 연산
result_subtraction = 10 - 3
print("뺄셈 결과:", result_subtraction)  # 출력: 뺄셈 결과: 7

# 곱셈 연산
result_multiplication = 4 * 6
print("곱셈 결과:", result_multiplication)  # 출력: 곱셈 결과: 24

# 나눗셈 연산
result_division = 10 / 3
print("나눗셈 결과:", result_division)  # 출력: 나눗셈 결과: 3.3333333333333335

# 정수 나눗셈 연산
result_floor_division = 10 // 3
print("정수 나눗셈 결과:", result_floor_division)  # 출력: 정수 나눗셈 결과: 3

# 나머지 연산
result_modulus = 10 % 3
print("나머지 결과:", result_modulus)  # 출력: 나머지 결과: 1

# 제곱 연산
result_exponentiation = 2 ** 3
print("제곱 결과:", result_exponentiation)  # 출력: 제곱 결과: 8

bool형
# 불리언(bool) 연산자 예시 코드
# 논리 AND 연산 (and)
result_and = True and False
print(result_and)  # 출력: False

# 논리 OR 연산 (or)
result_or = True or False
print(result_or)  # 출력: True

# 논리 NOT 연산 (not)
original_value = True
result_not = not original_value
print(result_not)  # 출력: False

# 복합적인 논리 연산
a = True
b = False
c = True
result_complex = (a and b) or (c and not b)
print(result_complex)  # 출력: True

# 비교 연산자 (Comparison Operators)
x = 5
y = 10

# x와 y가 같은지 비교 (==)
result_equal = x == y
print(result_equal)  # 출력: False

# x와 y가 다른지 비교 (!=)
result_not_equal = x != y
print(result_not_equal)  # 출력: True

# x가 y보다 작은지 비교 (<)
result_less_than = x < y
print(result_less_than)  # 출력: True

# x가 y보다 큰지 비교 (>)
result_greater_than = x > y
print(result_greater_than)  # 출력: False

# x가 y보다 작거나 같은지 비교 (<=)
result_less_equal = x <= y
print(result_less_equal)  # 출력: True

# x가 y보다 크거나 같은지 비교 (>=)
result_greater_equal = x >= y
print(result_greater_equal)  # 출력: False

# 멤버십 연산자 (Membership Operators)
my_list = [1, 2, 3]

# 리스트 내에 특정 요소가 있는지 확인 (in)
result_in = 2 in my_list
print(result_in)  # 출력: True

# 리스트 내에 특정 요소가 없는지 확인 (not in)
result_not_in = 4 not in my_list
print(result_not_in)  # 출력: True

입력받기(input)
#일반적인 방법(공백으로 구분함 ex) 1 3 -> 1,3)
A, B = input().split()

#sys 모듈사용 (속도 빠름)
import sys
# 표준 입력으로부터 한 줄을 읽고 공백을 기준으로 분리하여 정수형 변수 A와 B에 할당
A, B = map(int, sys.stdin.readline().split())
# 입력받은 두 정수 출력
print("입력한 정수:", A, B)


# 사용자로부터 여러 개의 숫자를 입력받아 리스트로 저장하기
input_str = input("여러 개의 숫자를 공백으로 구분하여 입력하세요: ")
numbers_list = input_str.split()  # 입력값을 공백을 기준으로 분리하여 리스트로 변환
print("입력한 숫자들:", numbers_list)

# 리스트에 있는 숫자들의 합 구하기
numbers_sum = sum([int(num) for num in numbers_list])  # 리스트 내포를 사용하여 문자열을 정수로 변환하고 합계 계산
print("숫자들의 합:", numbers_sum)

출력하기(print)
name = "Alice"
age = 30
# 출력: 이름: Alice 나이: 30

print(f"이름: {name} 나이: {age}")
print("이름:", name, "나이:", age)
print("이름: " + name + " 나이: " + str(age))
print("이름: %s 나이: %d" % (name, age))
print("이름: {} 나이: {}".format(name, age))

List형
#list형 선언
fruits = ["apple", "banana", "orange"]
numbers = [1, 2, 3, 4, 5]
mixed_list = [1, "apple", True, 3.14]

#요소 접근
print(fruits[0])   # 출력: "apple"
print(numbers[2])  # 출력: 3
print(mixed_list[1])  # 출력: "apple"

#길이
print(len(fruits))  # 출력: 3

#요소 추가(맨뒤에)
fruits.append("grape")
print(fruits)  # 출력: ["apple", "banana", "orange", "grape"]

#요소 삭제(첫번째 매칭 값만)
fruits.remove("banana")
print(fruits)  # 출력: ["apple", "orange", "grape"]

#요소 추가(특정 위치)
fruits.insert(1, "kiwi")
print(fruits)  # 출력: ["apple", "kiwi", "orange", "grape"]

#요소 인덱스 찾기(특정 값으로)
index_of_orange = fruits.index("orange")
print(index_of_orange)  # 출력: 2

#요소 갯수 세기(특정 요소가 몇개가 있는지)
count_apple = fruits.count("apple")
print(count_apple)  # 출력: 1

#요소 정렬하기(오름차순)
numbers = [4, 2, 1, 5, 3]

sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 출력: [1, 2, 3, 4, 5]
print(numbers)        # 출력: [4, 2, 1, 5, 3] (원본 리스트는 변경되지 않음)

numbers.sort()
print(numbers)  # 출력: [1, 2, 3, 4, 5] (원본 리스트는 변경됨)


#요소 정렬하기(내림차순)
sorted_numbers = sorted(numbers, reverse= True) (원본 리스트는 변경되지 않음)

number.sort(reverse=True)  (원본 리스트는 변경됨)
print(numbers)  # 출력: [5, 4, 3, 2, 1]


#요소 순서 뒤집기
fruits.reverse()
print(fruits)  # 출력: ["grape", "orange", "kiwi", "apple"]

Tuple형

튜플(Tuple)은 리스트와 비슷한 데이터 구조로, 여러 개의 요소를 순서대로 저장하는 데 사용됩니다. 튜플은 리스트와 달리 변경이 불가능하며, 요소를 추가, 삭제, 수정할 수 없습니다. 이러한 특성으로 인해 튜플은 불변(Immutable)한 자료형이라고도 불립니다.

튜플은 괄호(())를 사용하여 생성하며, 각 요소는 쉼표(,)로 구분됩니다. 여러 종류의 데이터를 혼합하여 저장할 수 있습니다.

# 빈 튜플 생성
empty_tuple = ()

# 요소가 하나인 튜플은 반드시 쉼표를 붙여야 함
single_element_tuple = (42,)

# 여러 개의 요소가 있는 튜플
fruits = ("apple", "banana", "orange")
mixed_tuple = (1, "hello", True, 3.14)

fruits = ("apple", "banana", "orange")

print(fruits[0])  # 출력: "apple"
print(fruits[1])  # 출력: "banana"
print(fruits[2])  # 출력: "orange"

Dictionary형

딕셔너리(Dictionary)는 파이썬에서 가장 유용하고 강력한 데이터 구조 중 하나로, 키(key)와 값(value)을 쌍으로 저장하는 컨테이너 자료형입니다. 각 키는 유일해야 하며, 키와 값은 콜론(:)으로 구분하여 저장됩니다. 딕셔너리는 중괄호({})를 사용하여 생성합니다.

# 빈 딕셔너리 생성
empty_dict = {}

# 키와 값의 쌍으로 딕셔너리 생성
student = {
    "name": "Alice",
    "age": 25,
    "major": "Computer Science"
}

#딕셔너리 값 접근
print(student["name"])    # 출력: "Alice"
print(student["age"])     # 출력: 25
print(student["major"])   # 출력: "Computer Science"

#딕셔너리 값 변경
student["age"] = 26
print(student["age"])  # 출력: 26

#새로운 key-value 추가
student["birthday"] = "1993-01-03"
print(student)
# 출력: {'name': 'Alice', 'age': 25, 'birthday': '1993-01-03'}

#요소 삭제
del student["age"]
print(student)
# 출력: {'name': 'Alice', 'major': 'Computer Science'}

#list로 key, value 값 얻기
keys_list = list(student.keys())
values_list = list(student.values())
print(keys_list)   # 출력: ['name', 'age', 'major']
print(values_list) # 출력: ['Alice', 25, 'Computer Science']

#딕셔너리 요소 갯수 
num_of_elements = len(student)
print(num_of_elements)  # 출력: 3

#for문에서 key, value 가져오기
for key, value in student.items():
    print(key, ":", value)
# 출력:
# name : Alice
# age : 25
# major : Computer Science

함수(Function)
#함수 선언
def greet():
    print("Hello, World!")

#매개변수, return 값 사용
def add_numbers(a, b):
    return a + b

#매개변수 기본값 사용
def greet(name="Guest"):
    print("Hello, " + name + "!")
greet("Alice")     # 출력: Hello, Alice!
greet()            # 출력: Hello, Guest!

#매개변수 갯수를 유동적으로 받는 함수(* 사용)
def add_all(*args):
    total = 0
    for num in args:
        total += num
    return total
result1 = add_all(1, 2, 3)
result2 = add_all(10, 20, 30, 40, 50)
print(result1)  # 출력: 6
print(result2)  # 출력: 150

#재귀함수 (팩토리얼 함수)
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)
result = factorial(5)
print(result)  # 출력: 120 (5! = 5 * 4 * 3 * 2 * 1 = 120)

#재귀함수 (피보나치 수열)
def fibonacci(n):
    if n <= 0:
        return []
    elif n == 1:
        return [0]
    elif n == 2:
        return [0, 1]
    else:
        fib_list = fibonacci(n - 1)
        fib_list.append(fib_list[-1] + fib_list[-2])
        return fib_list
result = fibonacci(8)
print(result)  # 출력: [0, 1, 1, 2, 3, 5, 8, 13]

if문
num = int(input("정수를 입력하세요: "))

if num > 0:
    print("입력한 숫자는 양수입니다.")
elif num < 0:
    print("입력한 숫자는 음수입니다.")
else:
    print("입력한 숫자는 0입니다.")

for문
#범위(range) for문
for num in range(5):
    print(num)
# 출력:
# 0
# 1
# 2
# 3
# 4

#continue, break 사용한 for문
for num in range(1, 11):
    if num % 2 == 0:
        continue  # 짝수인 경우 건너뜀
    if num == 7:
        break  # 7을 만나면 반복문 종료
    print(num)

# 출력: 1, 3, 5


#리스트(list) for문
fruits = ["apple", "banana", "orange"]
for fruit in fruits:
    print(fruit)
# 출력:
# apple
# banana
# orange

#문자열(String) for문
message = "Hello, World!"
for char in message:
    print(char)
# 출력:
# H
# e
# l
# l
# o
# ,
# 
# W
# o
# r
# l
# d
# !

#딕셔너리(Dictionary) for문
student = {"name": "Alice", "age": 25, "major": "Computer Science"}
for key, value in student.items():
    print(key, ":", value)
# 출력:
# name : Alice
# age : 25
# major : Computer Science

while문
#while문 사용
num = 1
while num <= 5:
    print(num)
    num += 1

# 출력:
# 1
# 2
# 3
# 4
# 5

#무한 루프 사용한 while문
while True:
    user_input = input("종료하려면 'exit'를 입력하세요: ")
    if user_input.lower() == "exit":
        break
print("프로그램을 종료합니다.")

#try-except 와 같이 사용
while True:
    try:
        num = int(input("정수를 입력하세요: "))
        break  # 정수를 입력받으면 반복문을 종료
    except ValueError:
        print("잘못된 입력입니다. 정수를 입력해주세요.")
print("입력한 정수:", num)

내장 함수
abs(x) x x의 절댓값을 반환합니다.
all(iterable) iterable iterable의 모든 요소가 참이면 True, 아니면 False를 반환합니다.
any(iterable) iterable iterable의 요소 중 하나라도 참이면 True, 아니면 False를 반환합니다.
bin(x) x x를 2진수로 변환하여 반환합니다.
bool(x) x x가 참이면 True, 아니면 False를 반환합니다.
bytearray(size, init=None) size, init 지정된 크기의 배열을 생성합니다.
bytes(string, encoding='utf-8', errors='strict') string, encoding, errors 지정된 문자열을 바이트 시퀀스로 변환하여 반환합니다.
callable(object) object object가 호출 가능한지 여부를 반환합니다.
chr(x) x x에 해당하는 문자를 반환합니다.
classmethod(method) method method를 클래스 메서드로 변환합니다.
compile(source, filename, mode, flags=0, dont_inherit=False) source, filename, mode, flags, dont_inherit 지정된 소스 코드를 컴파일하여 파이썬 코드로 변환합니다.
complex(real, imag) real, imag 복소수를 생성합니다.
delattr(object, name) object, name object의 지정된 속성을 삭제합니다.
dict(mapping, **kwargs) mapping, **kwargs 지정된 매핑을 사전으로 변환합니다.
dir(object) object object의 속성 목록을 반환합니다.
divmod(x, y) x, y x를 y로 나눈 몫과 나머지를 반환합니다.
enumerate(iterable, start=0) iterable, start iterable의 요소를 순회하며 인덱스와 함께 반환합니다.
eval(expression, globals=None, locals=None) expression, globals, locals 지정된 표현식을 평가하여 값을 반환합니다.
exec(expression, globals=None, locals=None) expression, globals, locals 지정된 표현식을 실행합니다.
filter(function, iterable) function, iterable 지정된 함수가 참을 반환하는 iterable의 요소만 반환합니다.
float(x) x x를 부동 소수점으로 변환하여 반환합니다.
format(value, format_spec=None) value, format_spec value를 지정된 형식으로 반환합니다.
frozenset(iterable) iterable iterable의 요소를 포함하는 고정 세트를 생성합니다.
getattr(object, name, default=None) object, name, default object의 지정된 속성의 값을 반환합니다.
globals()   전역 변수 목록을 반환합니다.
hex(x) x x를 16진수로 변환하여 반환합니다.
id(object) object object의 식별자를 반환합니다.
input(prompt='') prompt 사용자로부터 입력을 받아 문자열로 반환합니다.
int(x, base=10) x, base x를 정수로 변환하여 반환합니다.
isinstance(object, type) object, type object가 지정된 type의 인스턴스인지 여부를 반환합니다.
issubclass(class, type) class, type class가 지정된 type의 하위 클래스인지 여부를 반환합니다.
iter(iterable) iterable iterable의 반복자를 반환합니다.
len(s) s s의 길이를 반환합니다.
list(iterable) iterable iterable의 요소를 포함하는 리스트를 생성합니다.
locals()   지역 변수 목록을 반환합니다.
map(function, iterable) function, iterable 지정된 함
  • 형변환
    int(x) : x를 정수로 변환합니다.
    float(x) : x를 부동소수점으로 변환합니다.
    str(x) : x를 문자열로 변환합니다.
    bool(x) : x가 참이면 True, 아니면 False를 반환합니다.
    list(x) : x를 리스트로 변환합니다.
    tuple(x) : x를 튜플로 변환합니다.
    set(x) : x를 세트로 변환합니다.
    dict(x) : x를 사전으로 변환합니다.

  • 숫자
    abs(x) : x의 절댓값을 반환합니다.
    min(x) : x의 최솟값을 반환합니다.
    max(x) : x의 최댓값을 반환합니다.
    sum(x) : x의 합을 반환합니다.
    product(x) : x의 곱을 반환합니다.
    divmod(x, y) : x를 y로 나눈 몫과 나머지를 반환합니다.
    floor(x) : x의 내림차수를 반환합니다.
    ceil(x) : x의 올림차수를 반환합니다.
    trunc(x) : x의 버림차수를 반환합니다.
    round(x) : x를 n자리에서 반올림합니다.

  • 문자열
    len(s) : s의 길이를 반환합니다.
    str.find(x) : s에서 x를 찾는 인덱스를 반환합니다.
    str.index(x) : s에서 x를 찾는 인덱스를 반환합니다.
    str.replace(old, new) : s에서 old를 new로 바꿉니다.
    str.split(delim) : s를 delim으로 분리합니다.
    str.join(x) : x를 delim으로 연결합니다.
    str.upper() : s를 대문자로 변환합니다.
    str.lower() : s를 소문자로 변환합니다.
    str.title() : s의 첫 글자를 대문자로, 나머지 글자를 소문자로 변환합니다.
    str.capitalize() : s의 첫 글자를 대문자로 변환합니다.

라이브러리

random

  • random 라이브러리는 난수 생성과 관련된 함수들을 제공합니다.
    주로 게임, 통계, 암호학 등에서 난수를 생성하는 데 사용됩니다.
  • 대표적인 함수들:
  • random.random(): 0 이상 1 미만의 실수형 난수를 반환합니다.
  • random.randint(a, b): a 이상 b 이하의 정수형 난수를 반환합니다.
  • random.choice(seq): 시퀀스(seq)에서 임의의 요소를 선택하여 반환합니다.
  • random.shuffle(seq): 시퀀스(seq)의 요소들을 무작위로 섞습니다.

datetime

  • datetime 라이브러리는 날짜와 시간을 처리하는 클래스와 함수들을 제공합니다.
    날짜와 시간을 파싱하고, 날짜 간의 계산, 출력 포맷 설정 등에 사용됩니다.
    datetime 모듈에 있는 datetime 클래스가 가장 자주 사용됩니다.
  • 대표적인 클래스와 함수들:
  • datetime.datetime: 날짜와 시간을 포함하는 객체를 생성하고 조작합니다.
  • datetime.date: 날짜만을 포함하는 객체를 생성하고 조작합니다.
  • datetime.time: 시간만을 포함하는 객체를 생성하고 조작합니다.
  • datetime.timedelta: 두 날짜 사이의 기간을 나타내는 객체를 생성합니다.
반응형
Comments