Python

구멍 숭숭난 기초 지식 채우기

해파리냉채무침 2024. 4. 1. 16:18

분명 다 배운건데 너무 옛날에 배워서 (3년전)  기억이 날듯말듯하는 파이썬 기초 문법들 다시 정리하기,, 

출처: Do it  점프 투 파이썬

"%10s" % "hi"

'         hi'

전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 나머지는 공백으로 남김

즉 공백은 8개

                h i
"%-10sjane" % "hi"

hi에서 jane 전까지의 길이는 10개이고, 공백은 8개다.

format 함수

number = 10
day = "three"
"I ate {0} apples. so I was sick for {1} days.".format(number, day)

I ate 10 apples. so I was sick for three days.

 

format 함수를 통한 포매팅 시  인덱스 항목이 format 함수의 입력값으로 순서에 맞게 바뀐다. {0}은 format 함수의 첫번째 입력값인 number로 바뀌고 {1}은 format 함수의 두번째 입력값인 day로 바뀜

"I ate {0} apples. so I was sick for {day} days.".format(10, day = 3)

이런식으로도 나타낸다.

# 왼쪽 정렬
"{0:<10}".format("hi") # 'hi        '

# 오른쪽 정렬
"{0:>10}".format("hi") # '        hi'

# 가운데 정렬
"{0:^10}".format("hi") # '    hi    '

# 공백 채우기
"{0:=^10}".format("hi") # '====hi===='
"{0:!<10}".format("hi") # 'hi!!!!!!!!'

format 함수 이용하여 이렇게 정렬을 한다.

 

공백 지우기 

a= " hi "
a.lstrip() #'hi ' 왼쪽공백 지우기 
a.strip() #'hi' 양쪽공백지우기
a.rstrip() #' hi' 오른쪽 공백 지우기

 

리스트 요소 삭제하기

a=[1,2,3]
del a[1]
print(a) #[1,3]

 

리스트 요소 삽입하기

a = [1, 2, 3]
a.insert(0, 4) # [4, 1, 2, 3]
a.insert(3, 5) # [4, 1, 2, 5, 3]

 

리스트 확장

a = [1, 2, 3]
a.extend([4, 5])
a # [1, 2, 3, 4, 5]

 

딕셔너리 관련

a = { 'name' : 'pey', 'phone' : '0119993323', 'birth' : '1118' }
a.items() # dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])

 

key: value  쌍 모두지우기

a.clear()
a # {}

 

key로 value 얻기 

a = { 'name' : 'pey', 'phone' : '0119993323', 'birth' : '1118' }
a.get('name') # 'pey'
a.get('phone') # '0119993323'
a.get('nokey') # None
a.get('foo', 'bar') # default값인 'bar' 반환

 

자료형의 참과 거짓에서, 문자열, 리스트, 튜플, 딕셔너리 모두 비었을 때 거짓(False), 숫자형은 0일때, False 이다.

프로그램의 입력과 출력

입력값이 몇개가 될지 모를때 *매개변수를 사용한다. 

def add_many(*args) :
    result = 0
    for i in args:
        result = result + i
    return result

result = add_many(1, 2, 3)
print(result) # 6
result = add_many(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
print(result) # 55

*args 매개변수 앞에 choice 매개변수를 추가하여 사용 할 수 있다. 

def add_mul(choice, *args) :
    if choice == 'sum' :
        result = 0
        for i in args :
            result = result + i
    elif choice == 'mul' :
        result = 1
        for i in args :
            result = result * i
    return result

result = add_mul('sum', 1, 2, 3, 4, 5)
print(result) # 15
result = add_mul('mul', 1, 2, 3, 4, 5)
print(result) # 120

 

키워드 파라미터

**kwargs 처럼 매개변수 앞에 **를붙이면 딕셔너리 형태를 반환해준다.  

 def print_kwargs(**kwargs):
  print(kwargs)
print_kwargs(a=1)
print_kwargs(name='foo',age=3)

{'a': 1}

{'name': 'foo', 'age': 3}

 

매개변수에 초기값 미리 설정하기

def say_myself(name, old, man = True) :
    print('나의 이름은 %s입니다.' % name)
    print('나이는 %d살 입니다.' % old)
    if man :
        print('남자입니다.')
    else:
        print('여자입니다.')

say_myself('박응용', 27)
say_myself('박응용', 27, True) #남자라고뜸
say_myself('박응용', 27, False) #여자라고뜸

만약 초기값 설정을 def say_myself(name,man=True,old) 이런식으로 했다면 오류가 난다. 설정할 초기값들은 항상 맨 뒤 매개변수에 넣어야함. 

 

파일 읽고 쓰기

파일 생성하기 

r->  읽기 모드, w-  쓰기 모드 a - 추가모드

f = open('새파일.txt', 'w')
f.close()

만약 새 파일.txt 파일을  C:/doit 디렉터리에 생성하고 싶다면:

f = open('C:/Python/새파일.txt', 'w')
f.close()

 

파일을 쓰기 모드로 열어서 출력값 적기 

f = open('C:/Python/새파일.txt', 'w')
for i in range(1, 11) :
    data = "%d번째 줄입니다.\n" % i
    f.write(data)
f.close()

 

readline 함수 이용하여 프로그램 외부 저장된 파일 읽기

f = open('C:/Python/새파일.txt', 'r')
while True :
    line = f.readline()
    if not line : break
    print(line)
f.close()

f.readline을 이용해 계속해서 한줄씩 읽어들인다. 더 이상 읽을 줄이 없으면 break 수행

 

readlines 함수 -> 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트로 돌려준다. 

f = open('C:/Python/새파일.txt', 'r')
lines = f.readlines() # 모든 라인을 읽어서 각각의 줄을 요소로 갖는 리스트 리턴
for line in lines :
    print(line)
f.close()

 

파일에 새로운 내용 추가하기

'a'를 통해 11부터 19까지 i에 대입하여 새로운 내용을 추가한다

f = open('C:/Python/새파일.txt', 'a')
for i in range(11, 20) :
    data = '%d번째 줄입니다.\n' % i
    f.write(dat)
f.close()