01 input()
1 2 3 4 5 6 | # print('가위 바위 보 가운데 하나를 내주세요', end=' ') mine = input('가위 바위 보 가운데 하나를 내주세요') print('mine : ', mine) # input() : 사용자의 키보드 입력을 return # input('text') == print('text') input() | cs |
사용자의 입력을 받는 함수이다. 매개변수에는 입력을 받기 전 출력할 문장이 들어간다. 반환값은 사용자가 입력한 내용이다.
02 list
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # LIST list1 = ['가위', '바위', '보'] list2 = [31, 24, 65, 34, 23] print(list1) print(list2) print(list1[0]) print(list2[5-1]) # list[-1]에서 -1의 의미는 '뒤에서 첫번째'라는 뜻이다. # list[-3]에서 -3의 의미는 '뒤에서 세번째'라는 뜻이다. print(list1[-1]) print(list2[-1]) | cs |
리스트이다. print()함수에 리스트를 매개변수로 넣으면 리스트 전체가 출력된다. 대괄호([]) 안에는 리스트 안의 엘리먼트 순서(인덱스)를 넣는데, 0부터 시작한다. 그리고 인덱스가 -1이면 뒤에서 첫번째 요소를, -3이면 뒤에서 세번째 요소를 의미한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | list2 = [31, 24, 65, 34, 23] print(list2) list2.append(16) print(list2) list3 = list2 + [16] print(list3) list4 = list2 + list3 print(list4) n = 12 ownership = n in list3 print(ownership) n = 24 if n in list3: print('{}은 있어!'.format(n)) print(list4) del list4[0] # 0번째 요소를 제거 print(list4) list4.remove(24) # 첫번째 24를 제거 print(list4) | cs |
append()함수는 리스트에 새로운 요소를 추가할 때 사용한다. 리스트의 마지막 순서에 새로운 요소를 추가한다.
이 함수는 다음과 같은 연산으로 대체할 수 있다.
list3 = list2 + [16]
자바보다 훨씬 더 자연어에 가까운것같다. 자연어에 가까워 오히려 혼란스러운 면도 있다. 변수의 자료형을 한 눈에 알기 힘들다는 점...?
list3에 12가 있으면 true가, 없으면 false가 출력된다. 물론 간단한 코드이기 때문에 한 눈에 알 수 있지만, 복잡한 코드라면 가독성이 떨어지지 않을까?
물론 파이썬 만든 사람이 이것도 고려했겠지만, 아직 나로써는 답을 모르겠다.
리스트의 요소를 지울 때는 del과 remove()를 사용한다. del의 경우 제거할 요소의 인덱스를 이용하고, remove()의 경우 제거할 요소를 이용한다.
그렇기 때문에, remove()의 경우 같은 요소가 여러개 존재할 수 있는데, 리스트 내에서 첫번째 요소만 제거한다.
03 for
1 2 3 4 | patterns = ['가위', '바위', '보', '보', '가위', '가위', '바위', '보', '바위'] for pattern in patterns: print(pattern) | cs |
파이썬의 반복문은 자바의 향상된 for문과 유사했다. 응... 그래
04 range()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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 in list : 순회할 리스트가 정해져 있을 때 for in range() : 순회할 횟수가 정해져 있을 때 """ | cs |
range() 함수는 범위?의 인덱스를 요소로 가지는 리스트를 반환한다. 예를들어, 다음 코드를 보자.
range(5) 는 0부터 4까지, 5개의 요소를 가진 리스트([0, 1, 2, 3, 4])를 반환한다. 그러면 i에는 순차적으로 리스트의 요소가 초기화되고, i가 출력된다. len()는 리스트의 길이를 반환한다. 매개변수에 리스트를 넣어주면, 해당 리스트의 길이를 반환한다.
위 코드를 보면, len(names)함수가 names 리스트의 길이(4)를 반환해 range(4)가 되고, range(4)는 0부터 4를 요소로 가지는 리스트를 반환한다. 그리고 i에 차례대로 인덱스가 초기화되고, 리스트에서 해당 인덱스의 요소를 사용자에게 출력한다.
enumerate()를 이용해서, i에 리스트의 인덱스를, name에 i번째 요소를 받아 사용할 수도 있다.
05 module
1 2 3 4 5 6 7 8 9 10 | import math import random r = 10 result = 2 * math.pi * r print(result) candidate = ['가위', '바위', '보'] ran = random.choice(candidate) print(ran) | cs |
매우 x 3 중요한 모듈이다. import한 모듈의 구성요소를 사용할 수 있게 해준다. 위 코드에서는 math와 random 모듈을 임포트해서 사용한다.
math.pi 로 원주율 상수를 불러오고, random.choice()로 리스트의 요소를 랜덤하게 선택해 반환한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | def get_web(url): # URL을 넣으면 페이지 내용을 반환하는 함수 import urllib.request response = urllib.request.urlopen(url) data = response.read() decoded = data.decode('utf-8') return decoded url = input("웹 페이지 주소") if 'http://' not in url: url = 'http://'+url content = get_web(url) print(content) """ 모듈 - 미리 만들어진 코드를 가져와 쓰는 방법 - import 모듈명 - 사용 : 모듈명.모듈안 구성요소 예) math.pi random.choice() """ | cs |
다음과 같이 함수 내부에서도 모듈을 import를 할 수 있다. 그리고, 내가 모듈을 만들고 임포트해서 사용할 수 있다.
아래는 module 클래스이다.
1 2 3 4 5 6 7 8 | def random_rsp(): # 무작위로 가위바위보를 낸다 import random return random.choice(['가위','바위','보']) PAPER = '보' ROCK = '바위' SCISSOR = '가위' | cs |
그리고 아래는 module 클래스를 임포트해서 사용한다.
1 2 3 4 5 | import Python_Practice.Day04.module selected = Python_Practice.Day04.module.random_rsp() print(selected) print('가위?', Python_Practice.Day04.module.SCISSOR == selected) | cs |
'🚽 Deprecated > PYTHON' 카테고리의 다른 글
[입문] 2일차 (0) | 2017.09.28 |
---|---|
[입문] 1일차 (0) | 2017.09.27 |