-
파이썬 (1~10파트)프로그래밍/python 2021. 11. 29. 18:25
파일 - 내문서에 저장 - 해당파일 .py로 변환해서 저장 - 코드 변환후 실행전에 저장(꼭)

cd Documents 내문서파일 파일 경로 지정 - ls 확인 
python 파일 이름.py - 파이썬 실행한걸 보여줌 
python 한줄만 실행 - 입력창 - 사용후 exit()로 빠져나오기 
주석사용 
함수 만들기 , format 사용 def aa (): r1 = a + b print('안녕하세요 저는 {}살 입니다.'.format(r1)) a = 7 b = 6 aa()
list
list1 = ['가위','바위'] print(list1[0]) list1[0]='바위' print(list1[0]) print(list1[-1]) """뒤에서 첫번째순으로 가져옴""" list2 = [15,7,8,9,12] list2.append(16) print(list2) n = 12 ownership = n in list2 '''list2안에 12가 있는지 검증''' print(ownership) n = 8 if n in list2: print('{}은 있어'.format(n)) list3 = [1,2,3,4,5,] print(list3) del list3[0] '''del 순서대로 지우기''' print(list3) list3.remove(3) '''remove 특정값 지우기''' print(list3)
for in
patterns = ['가위','바위','보','가가위','바바위','보보'] for pattern in patterns: print(patterns) for i in[0,1,2,3,4,5]: print(i) for i in range(5): print(i) names = ['철수','영희','진영','태민','유미'] ''' for i in range(len(names)): name = names[i] print('{}번 : {}'.format(i + 1, name)) ''' for i, name in enumerate(names): print('{}번: {}'.format(i + 1, name)) for i in range(11172): print(chr(44032 + 1),end='') ''' for in range() 순회할 횟수가 정해져 있을때 for in list() 순회할 리스트가 정해져 있을때range(5) = 하면 레인지가 5개 숫자 생성
>>> arr = [1, 2, 3, 4, 5] >>> for i in range(len(arr)): ... print("{} 번째 값 {}".format(i, arr[i])) 0 번째 값 1 1 번째 값 2 2 번째 값 3 3 번째 값 4 4 번째 값 5https://dojang.io/mod/page/view.php?id=2241
if
a,b = input().split() #a, b = map(int, input().split()) 인트로 바로 입력받을때 a = int(a) b = int(b) if a > b: print('>') elif a < b: print('<') else: print('==')a = input() a = int(a) # 90 <= a and a <= 100 다른버전에선 이렇게 써야함 if 100>= a >= 90: print('A') elif 89>= a >= 80: print('B') elif 79>= a >= 70: print('C') elif 69>= a >= 60: print('D') elif 59 >= a >= 0: print('F')
모듈 사용하기(url)
def get_web(url): import urllib.request response = urllib.request.urlopen(url) data = response.read() decoded = data.decode('utf-8') return decoded url = input('웹 페이지 주소') content = get_web(url) print(content)
모듈 만들기
def random_rsp(): import random return random.choice(['가위','바위','보']) PAPER = '보' SCISSOR = '가위' ROCK = '바위'#import math import math11 selected = math11.random_rsp() print(selected) print('가위?', selected == math11.SCISSOR)
파워쉘이용
PS C:\Users\J\Documents\pythonProject3> python Python 3.10.0 (tags/v3.10.0:b494f59, Oct 4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import datetime >>> now=datetime.datetime.now() >>> print(now.year) 2021 >>> now datetime.datetime(2021, 12, 3, 10, 12, 21, 500975) >>>구글 검색 - 키워드 파이썬3 - 코드 포함 글 찾기 - 간단한 예제 REPL 사용하여 테스트 - 영어로 검색
random.choice
import = 다른파일에 있는 함수 불러옴
choice = 여러개중에 랜덤으로 하나 뱉음
random = 랜덤안에 있는 함수 불러옴
import random list = ["빨","주","노","초","파","남","보"] random_element = random.choice(list) print(random_element)choice 함수는 매개변수로 seq 타입을 받습니다. 시퀀스 데이터 타입은 문자열, 튜플, range, 리스트 타입들을 말합니다.
시퀀스 함수는 인자로 받은 리스트, 튜플, 문자열, range 에서 무작위로 하나의 원소를 뽑습니다.
만약, 비어있는 시퀀스 타입의 객체를 인자로 넣는다면 (ex. 리스트가 비어있다면) indexError 의 예외가 발생합니다.
(indexError : 시퀀스의 인덱스가 범위를 벗어났을때 발생하는 에러)
x1 = random.choice('BlockDMask')
print(x1) # 'BlockDMask' 문자열중 랜덤한 문자를 반환
x2 = random.choice('')
print(x2) # indexError 발생
출처: https://blockdmask.tistory.com/383
random.randint
randint(a, b) = a <= N < b (규칙)
import random random_number = random.randint(2,5) print(random_number)randint(a, b)
randint 함수는 인자로 들어온 a, b 사이의 랜덤한 정수(int)를 반환합니다.
반환하는 x는 a, b를 포함한 범위 입니다. (a <= N <= b)
randrange 함수에 a, b+1을 넣은것과 동일하게 동작합니다.
x = random.randint(10, 20)
print(x) # 10 <= x <= 20
출처: https://blockdmask.tistory.com/383
import random list = ["빨","주","노","초","파","남","보"] # 여기에 코드를 작성해 보세요. random.shuffle(list) print(list)셔플 함수는 데이터의 순서를 무작위로 랜덤하게 바꾸어 주는 함수 입니다.
매개변수 x에는 시퀀스 데이터 타입이 들어가게 됩니다. 하지만 내부의 값을 무작위로 바꿔야 하기 때문에
내부인자를 변경할 수 있는 리스트만 가능하게 됩니다. (문자열, 튜플 및 range(a,b)는 불가능)
random.suffle(리스트) 의 반환은 없고, 인자로 들어온 리스트 내부의 데이터를 무작위로 섞습니다.
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(arr) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random.shuffle(arr) # 셔플셔플셔플 빰빰빰빠밤
print(arr) # [10, 5, 6, 7, 8, 9, 2, 3, 4, 1] 무작위로 변경됨.
import random list1 = [1,2,3,4,5,6,7,8,9,10] random.shuffle(list1) print(list1) import random list = ["빨","주","노","초","파","남","보"] random_element = random.choice(list)
suffle[전체 숫자가 랜덤으로 바뀜 ] , choice 랜덤으로 하나씩 뽑음
딕셔너리

wintable = { '가위':'보', '바위':'가위', '보':'바위' } def rsp(mine,yours): if mine == yours: return 'draw' elif wintable[mine] == yours: return 'win' else: return 'lose' result = rsp('가위','바위') messages = { 'win':'이겼다', 'draw':'비겼네', 'lose':'졌어...' } print(messages[result])
딕셔너리 수정


예시) 2월 이름표를 가진 28값을 29로 수정하기
days_in_month = {"1월":31, "2월":28, "3월":31} days_in_month["2월"] = 29 print(days_in_month)예시) -1월을 없애시오.
days_in_month = {"1월":31, "2월":28, "3월":31,"-1월":97889789} del(days_in_month["-1월"]) print(days_in_month)
딕셔너리 반복문

list 리스트는 순서대로 나옴 ages = {'tod':35,'jane':23,'paul':62} # 이름표 = key # 값 = value for key in ages.keys(): print(key) for value in ages.values(): print(value) #아래 코드는 둘다 값은 답이 나옴 for key in ages: #keys()생략해도 있다고 생각 print('{}의 나이는 {}입니다.'.format(key,ages[key])) for key,values in ages.items(): print('{}의 나이는 {}입니다.'.format(key,values))
리스트와 비교
공통점
ListDictionary생성 list = [ 1, 2 ,3 ] dict = { 'one':1, 'two':2 } 호출 list[ 0 ] dict[ 'one' ] 삭제 del( list[ 0 ] ) del( dict[ 'one' ] ) 개수 확인 len( list ) len( dict ) 값 확인 2 in list 'two' in dict.keys( ) 전부 삭제 list.clear( ) dict.clear( ) 차이점
ListDictionary순서 삭제 시 순서가 바뀌기 때문에 인덱스에 대한 값이 바뀐다 key로 값을 가져오기 때문에 삭제 여부와 상관없다 결합 list1 + list2 dict1.update( dict2 ) 문제풀기
check_and_clear는 딕셔너리 타입의 box를 매개변수로 받는데요. 만약 box에 "불량품"이라는 이름표가 있으면 box 전체를 빈 딕셔너리로 만들어 버리고, 불량품이 없으면 box를 그대로 두는 함수입니다. 다음 코드를 수정해서check_and_clear함수를 완성하세요.
def check_and_clear(box): if '불량품' in box.keys(): #박스안에 불량품이 들어있는지? box.clear() #박스값을 모두 지움(빈상태가 됨) print(box) else: print(box) return 0 box1 = {"불량품" : 10} check_and_clear(box1) # {}가 출력되어야합니다. box2 = {"정상품": 10} check_and_clear(box2) # {"정상품": 10}가 출력되어야합니다.리스트 요소 추가,지우기
list1 = [1,2,3,4] list1.append(5) #숫자 추가 print(list1) list1.remove(5) #숫자 지우기 print(list1)
튜플 만들기
튜플
- 한번 정해진 순서를 바꿀 수 없다.
- 튜플 선언
tuple1 = (1, 2, 3, 4) tuple2 = 1, 2, 3, 4 mylist = [1,2,3,4] tuple3 = tuple(mylist)- 튜플은 값의 변경과 삭제가 불가능
실습문제
tuple1 = (1,2,3) tuple2 = 1,2,3 list3 = [1,2,3] tuple3 = tuple(list3) if tuple1 == tuple2 == tuple3: print("tuple1과 tuple2와 tuple3은 모두 같습니다.")tuple1 = (11, 22, 33) for i in range( len( tuple1) ): print( tuple1[i] )list= ('로이','태이') for i in range( len( list) ): print( list[i] ) #리스트를 차례대로 출력
packing, unpacking
패킹은 말그대로 묶는다는 뜻이고, 언패킹은 묶여있는 것을 풀어내는 뜻
x = 3 y = 5 position = x,y print("x, y로 이루어진 튜플 position의 값은 {}입니다.".format(position)) # 답이 x, y로 이루어진 튜플 position의 값은 (3,5)입니다x = 3 y = 5 position = 3,5 print("x, y로 이루어진 튜플 position의 값은 {}입니다.".format(position)) # 출력 x, y로 이루어진 튜플 position의 값은 (3, 5)입니다.a = 1 b = 2 #코드를 작성해 보세요. a, b = b,a print("a : {}, b : {}".format(a, b)) # 출력 〉 a : 2, b : 1c = (3, 4) d, e = c # c의 값을 언패킹하여 d, e에 값을 저장 f = d, e # 변수 d와 e를 f에 패킹
튜플을 이용한 함수의 리턴값
list = [1,2,3,4,5] for i,v in enumerate(list): #enumerate함수는 리스트의 원소에 순서값을 부여해주는 함수 print('{}번째 값:{}'.format(i,v)) ''' list = [1,2,3,4,5] for a in enumerate(list): print('{}번째 값:{}'.format(*a)) ''' #같은결과 ages = {'Tod':35,'Tane':23,'paul':62} for key, val in ages.items(): print('{}의 나이는:{}'.format(key,val)) ''' ages = {'Tod':35,'Tane':23,'paul':62} for a in ages.items(): print('{}의 나이는:{}'.format(*a)) ''' #같은결과'프로그래밍 > python' 카테고리의 다른 글
파이썬 (11파트~) (0) 2021.12.09