잡동사니

파이썬 문법 정리

hectick 2022. 2. 19. 17:08

https://docs.python.org/3/library/index.html

 

The Python Standard Library — Python 3.10.2 documentation

The Python Standard Library While The Python Language Reference describes the exact syntax and semantics of the Python language, this library reference manual describes the standard library that is distributed with Python. It also describes some of the opt

docs.python.org

 

여러줄 문자열 만들기

print("""
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세
""")

출력결과

첫줄과 끝줄에 비어있는 줄 없애려면 줄의 끝에 \기호 추가 

print("""\
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려강산 대한사람
대한으로 길이 보전하세\
""")

출력결과

 

문자열 범위 선택 연산자(슬라이싱)

문자열[start:end]인데, end는 포함되지 않음을 주의

print("안녕하세요"[1:4])	#녕하세 출력
print("안녕하세요"[1:])	#녕하세요 출력
print("안녕하세요"[:3])	#안녕하 출력

 

문자열 길이 구하기

print(len("안녕하세요"))	# 5 출력

 

부동소수점을 지수표현

print(0.52273e2)    #52.273 출력
print(0.52273e-2)   #0.0052273 출력

 

정수 나누기 연산자: //

C나 JAVA랑 헷갈리지 말기^^

print("3 / 2 = ", 3/2) #3 / 2 = 1.5 출력
print("3 // 2 = ", 3//2) # 3 / 2 = 1 출력

 

제곱 연산자: **

print("2 ** 4 =", 2**4) #2 ** 4 = 16 출력

k = 3
k **= 2
print(k) #9 출력

 

입력받기 : input()

input() 함수로 입력받으면 자료형은 문자열임

string = input("데이터 입력 >> ")   #999 입력
print(string)   #999 출력
print(type(string)) #<class 'str'> 출력

 

문자열을 숫자로 자료형 변환

int(), float()

str_a = input("데이터 입력 A >> ") #5입력
int_a = int(str_a)
str_b = input("데이터 입력 B >> ") #13입력
int_b = int(str_b)
print(str_a + str_b) # 513 출력
print(int_a + int_b) # 18 출력

 

실수를 정수로 변환

import math
print(int(1.2)) #1 정수부분 추출
print(round(1.2))   #1 반올림
print(math.ceil(1.2))   #2 올림
print(math.floor(1.2))  #1 내림

 

format() 함수

{}의 개수와 format()함수 괄호 안에 있는 배개 변수의 수가 같아야 함

format_a = "{} {} {}".format(1, "문자열", True)
print(format_a) # 1 문자열 True 출력

정수출력에 활용

output_a = "{:d}".format(52) #{:d}를 사용하면 매개변수로 정수만 사용가능
output_b = "{:5d}".format(52) #5칸을 잡고 뒤에서부터 채운다
output_c = "{:05d}".format(52) #빈칸을 0으로 채우기
output_d = "{:05d}".format(-52) #빈칸을 0으로 채우기

print(output_a)
print(output_b)
print(output_c)
print(output_d)

출력 결과

부동소수점 출력에 활용

output_a = "{:+015f}".format(52.273) # +0000052.273000
output_b = "{:15.2f}".format(52.273) #소숫점 아래 자릿수 지정, 자동으로 반올림

 

의미없는 소수점 제거

output_a = 52.0 #52.0
output_b = "{:g}".foramt(output_a) #52

 

대소문자를 바꿀땐 upper()과 lower()

string = "Welcome to Hectick World"
print(string.upper()) #WELCOME TO HECTICK WORLD
print(string.lower()) #welcome to hectick world

 

문자열 양옆의 공백 제거

strip(): 문자열 양옆의 공백 제거

lstrip(): 문자열 왼쪽 공백 제거

rstrip(): 문자열 오른쪽 공백 제거

input_a = """
	안녕하세요
문자열의 함수를 알아봅니다
"""
print(input_a.strip()) #양쪽 줄바꿈과 띄어쓰기도 사라짐(trim)

 

문자열의 구성 파악

True/False로 판단된다

isalnum() : 문자열이 알파벳 or 숫자로만 구성되었나

isalpha() : 문자열이 알파벳으로만 구성되었나

isidentifier() : 문자열이 식별자로 사용할수 있는 것인가

isspace() : 문자열이 공백으로만 구성되어있나

 

문자열이 숫자인지 판단할 때

isdecimal() vs isdigit() vs isnumeric()

print("123".isnumeric())    # True
print("123".isdigit())      # True 
print("123".isdecimal())    # True

print("123.45".isnumeric()) # False 
print("123.45".isdigit())   # False 
print("123.45".isdecimal()) # False 

print("10²".isnumeric())    # True  
print("10²".isdigit())      # True 
print("10²".isdecimal())    # False

print("½".isnumeric())  # True
print("½".isdigit())    # False
print("½".isdecimal())  # False

 

문자열 찾기

find() : 왼쪽부터 찾아서 처음 등장하는 위치 찾기

rfind() : 오른쪽부터 찾아서 처음 등장하는 위치 찾기

찾아야할 문자열 in 문자열

print("안녕" in "안녕하세요") #True

 

문자열 자를땐 split()

string = "Welcome to hectic world".split(" ")
print(string) # ['Welcome', 'to', 'hectic', 'world']

 

줄이 너무 길어질 때는 \기호를 입력하고 줄바꿈해서 코드 입력

num = "4372";
last_character = num[-1]
last_number = int(last_character)
if last_number == 0 \
    or last_number == 2 \
    or last_number == 4 \
    or last_number == 6 \
    or last_number == 8 :
    print("짝수입니다")

 

리스트에 요소 추가하기

리스트 뒤에 요소 추가

리스트명.append(요소)

리스트의 중간에 요소 추가

리스트명.insert(삽입할 위치, 요소)

한번에 여러 요소 추가(리스트 원본에 변화 있음, +연산자와 차이)

리스트명.extend([4, 5, 6]) #append함수를 세번 반복 실행한 효과와 같음

 

리스트의 요소 제거하기

인덱스로 제거하기

del 리스트명[인덱스]
del 리스트명[3:6] #삭제할 범위 지정 가능, 3, 4, 5번재 요소 제거
리스트명.pop(인덱스) #인덱스 입력안하면 자동으로 -1이 들어가 마지막 요소 제거

 

값으로 제거하기

리스트명.remove(값) #해당 값이 여러개 있어도 가장 먼저 발견되는 하나만 제거함

 

리스트 내부의 요소 모두 제거

리스트명.clear()

 

리스트 내부에 있는지 확인할땐 in/ not in 연산자

값 in 리스트명
값 not in 리스트명

 

딕셔너리 사용

dict = {}

print("요소 추가 이전:", dict) # {}

dict["name"] = "새로운 이름"
dict["head"] = "새로운 정신"
dict["body"] = "새로운 몸"

print("요소 추가 이후:", dict) # {'name': '새로운 이름', 'head': '새로운 정신', 'body': '새로운 몸'}

del dict["head"]

print("요소 제거 이후:", dict) # {'name': '새로운 이름', 'body': '새로운 몸'}

 

특정시간동안 반복문 재생

import time

number = 0;

target_tick = time.time() + 5
while time.time() < target_tick:
	number += 1;
   
print("5초동안 {}번 반복".format(number)) #5초동안 29214070번 반복

 

리스트 내부에서 최솟값 찾기

min(리스트명)

 

리스트 내부에서 최댓값 찾기

max(리스트명)

 

리스트 내부의 값 모두 더하기

sum(리스트명)

 

리스트와 enumerate()함수

for i, value in enumerate(["사과", "토끼", "달"], start = 1):
    print("{}번째 요소:{}".format(i, value))

#1번째 요소:사과
#2번째 요소:토끼
#3번째 요소:달

 

딕셔너리와 items() 함수

ex_dict = {
    "키A" : "사과",
    "키B" : "토끼",
    "키C" : "달"
}

for key, element in ex_dict.items():
    print("dictionary[{}]: {}".format(key, element))
    
#dictionary[키A]: 사과
#dictionary[키B]: 토끼
#dictionary[키C]: 달

 

리스트 내포

리스트 명 = [표현식 for 반복자 in 반복할 수 있는것]

 

튜플을 이용한 변수의 값 교환

a, b = 10, 20

#교환 전
print("a:", a) #10
print("b:", b) #20

a, b = b, a

#교환 후
print("a:", a) #20
print("b:", b) #10