Python
(38)모듈과 패키지 만들기
모듈과 패키지 만들기 모듈 : .py 파일 이때 .py 앞에있는 파일명이 모듈명이 된다. 패키지 : 폴더이며 하위에 모듈파일을 넣을 수 있고 python3이전버전에서는 __init__.py파일이 있어야 패키지로 인식가능 폴더명이 패키지 이름이 된다. 경로 : C: \project 모듈 만들기 변수 = 값 def 함수(매개변수): 코드 class 클래스이름: #이하 클래스 만드는 형식 base = 2 # 변수 def square(n): # 함수 return base ** n 만든 모듈 사용하기 원래 있는 모듈과 똑같다. import 모듈 모듈.변수 모듈.함수() 모듈.클래스() port square2 # import로 square2 모듈을 가져옴 print(square2.base) # 모듈.변수 형식으로 ..
(37)모듈,패키지 사용하기
모듈,패키지,라이브러리 모듈은 변수,함수,클래스를 담고 있는 파일이다. 모듈 : 특정 기능을 .py 파일 단위로 작성한 것 패키지 : 특정 기능과 관련된 여러 모듈을 묶은것. 모듈에 네임스페으를 제공 파이썬 표준 라이브러리 : 파이썬에 기본으로 설치된 모듈과 패키지,내장함수를 묶어서 말함 Python Standard Library,PSL import 로 모듈 가져오기 모듈 가져오기 import 모듈 import 모듈1 ,모듈2 (모듈 여러개 가져오기) 모듈의 변수,함수,클래스 사용법 모듈.변수 모듈.함수() 모듈.클래스() 모듈 사용시 나오는 에러 1.모듈 이름이 잘못되었을 때 ModuleNotFoundError: No module named ... 2.변수, 함수 이름이 잘못되었을 때 Attribute..
(4) URL 판별하기 (저장용)
문제 URL이 올바르면 True, 잘못되었으면 False 출력 url은 http:// or https://로 시작 도메인은 도메인.최상위도메인 형식이며 영문 대소문자, 숫자, -로 되어 있어야 함 도메인 이하 경로는 /로 구분하고, 영문 대소문자, 숫자, -, _, ., ?, =을 사용함 정답 import re p = re.compile('^https?://[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+/[a-zA-Z0-9-_/=.?]+$') url = input() print(p.match(url) !=None ) 기본정보 compile 만들기 url 변수에 input()으로 입력값을 받는다 print(p.match(url) !=None)으로 None 이 아닐때만 출력 1단계 시작 문자열 httt..
(36) 정규표현식 (접근시 피곤함)
정규표현식(regular expression) 일정한 규칙(패턴)을 가진 문자열을 표현하는 방법 복잡한 문자열 속에서 특정한 규칙으로 된 문자열을 검색,추출,수정 할때 사용 문자열이 정해진 규칙에 맞는지 판단할 때 사용 re모듈을 가져와서 사용 (regular expression) re모듈에 속한 함수 match() / search() / findall() / finditer() 등등 문자열 판단하기 re.match('패턴', '문자열') import re re.match('Hello', 'Hello, world!') #결과 re.match('Python', 'Hello, world!') #매치된 문자열이 없어 아무것도 반환 하지 않음 문자열이 맨 앞에 오는지 맨 뒤에 오는지 판단하기 (search함수 ..
(3)별로 사각형 간단하게 그리기
문제 a = 가로길이,b = 세로길이 이다. 해당하는 사각형을 별로 그리시오 a, b = map(int, input().strip().split(' ')) 정답 answer = ('*'*a +'\n')*b print(answer) 해석 '*'에 a만큼 곱해서 가로로 그린다. '\n'을 통해 줄바꿈 하고 이 전체에 *b를 하여 세로 열길이를 늘려준다. 진짜 이미 배웠던 문제지만 짧고 간단하게 푸는사람 정말 많다...
(2)포켓몬 종류 찾기 (리스트 & 세트)
문제!! 조건!! 첫번째 풀이! def solution(nums): answer = 0 x = len(nums)/2 for i in range(1,200001): if nums.count(i) >= 1: answer += 1 if answer >= x: break return answer 결과!! 시간 초과가 떴다.. 해결하기위해 sort() 메서드도 사용해보고 여러가지 써보면서 알아 낸 결과가 있다. 반복가능한 객체 range()를 사용할때 range()를 변수에 할당후 반복문을 작성하는게 시간이 단축됌 len(nums)를 변수에 할당하는것보다 직접 사용한것이 시간이 단축됌 if의 중첩보단 elif를 활용하는게 시간이 단축됌 이렇게 알아내고 번뜩생각난게 바로 set객체 였다. 정답!! def solut..