[패스트캠퍼스python] 데이터 타입 관련 퀴즈 풀기
파이썬 인강 : 데이터 타입 관련 퀴즈 풀기
내 돈 내고 듣고 있는 패스트캠퍼스의 파이썬 인강!
이때까지 배운 데이터 타입과 관련하여 16문제정도를 풀어보았다.
다양한 방법으로 풀어보고 출력값이 일치하는 거 보니 참 뿌듯했다.
이런 간단한 사항들을 자유자재로 다룰 수 있어야 나중에 프로젝트를 호율적으로 진행할 수 있을 것임에 틀림없다.
간단하다고 약보지말자.
16가지 문제 중 기억해야할 것들을 위주로 블로깅을 해보려고 한다
1. 문자열 “30” 을 각각 정수형, 실수형, 복소수형, 문자형으로 변환해보세요.
이건 형변환문제이고 아주 쉽지만 중요하다
참고로 문자형은 이미 “30” 문자이기때문에 그대로 적어도 되고
str()을 사용해서 만들어도 된다.
1 | print(type(int("30")), int("30")) |
2. 다음 문자열 “Niceman” 에서 “man” 문자열만 추출해보세요.
다양한 방법으로 풀 수 있고 강의에서는 슬라이싱방식과 인덱싱을 이용한 방법으로 풀이해주었다
1 | # 첫번째 방법: 슬라이스 활용 |
만약 Nice를 빼고 문자열을 추출해보세요라고 한다면 어떻게 하면 될까?
나는 len()를 이용해서 풀어보았다.
위와 동일한 값이 출력되는 것을 볼 수 있다.
간단하게 응용도 해보니 파이썬을 향한 재미가 쑥쑥 올라간다.
1 | q5len = len("Nice") |
3. 다음 문자열을 거꾸로 출력해보세요. : “Strawberry”
간단한 문제라서 reverse()로 접근했다.
1 | q6 = "Strawberry" |
에러가 발생해서 깜짝 놀랬는데 알고보니 reverse()는 리스트일때 사용하는거였다.
이제 절대 안 잊어버릴것같다 ㅋㅋㅋㅋ
문자형은 reversed()를 사용하면 된다
심지어 내 에디터가 알려줬는데도 무시해버렸다ㅋㅋㅋㅋ
에디터말 잘 들어야지!
1 | print(reversed(q6)) |
이건 우리가 원하는 데이터가 아니므로 list로 형변환시키면된다
1 | print(list(reversed(q6))) |
자 이제 원하는 값이 리스트형태로 나왔으니 슬라이싱 이용하면 된다
1 | print(q6[::-1]) |
손 쉽게 해결!
4. 다음 문자열에서 ‘-‘를 제거 후 출력하세요. : “010-7777-9999”
이번 문제는 실무에서 활용도가 높은 문제였다.
물론 해결방법은 여러가지가 있지만 제일 쉽게 접근 할 수 있는 방법은 역시 슬라이싱이다.
강의에서 슬라이싱뿐만 아니라 아래 이미지처럼 정규표현식을 사용하여 풀이해주었는데 굉장히 재미있었다
4-1 첫번째 방법: 슬라이싱 이용.
1 | q7 = "010-7777-9999" |
4-2 두번째 방법: 정규표현식 이용.
이번 문제를 통해 정규표현식을 처음 접했는데 굉장히 재미있었다
정규표현식은 언어와 상관없이 표준화가 거의 되어있다.
따라서 정규표현식을 공부하면 언어를 초월해서 해당 언어(java,c,c++,js,python등)에 금방 적응할수있다
- ^ 의미는 ‘아니다’ 이다.
- 0-9 는 0부터 9까지라는 의미이다.
- 즉 [^0-9] 뜻은 숫자제외이다.
- replace기능 가능 : 예를 들어 010또는 011이면 070으로 바꾸고싶을때 사용가능하다
1 | import re |
5. 다음 문자열(URL)에서 “http://“ 부분을 제거 후 출력하세요. : "http://daum.net"
이 문제는 위에서 배운 내용들을 토대로 혼자서 네가지 방식으로 풀어보았다
다 제대로 값이 출력되니 여간 뿌듯한 게 아니다.
1 | # 첫번째 방식: 슬라이싱 |
6. 다음 문자열을 슬라이싱을 이용해서 “cde”만 출력하세요. : “abcdefghijklmn”
해당 문제는 슬라이싱을 이용해서 풀어라고 했기때문에 아래 이미지처럼 풀면 된다
하지만 이렇게 문자열 길이가 긴 문제의 경우 슬라이싱으로 몇 번째 인덱스인지 직접 세는 것보다 인덱싱을 활용하는 게 더 편하다고 생각해서 인덱싱으로 풀어보았다
1 | q10 = "abcdefghijklmn" |
7. 다음 리스트에서 “Apple” 항목만 삭제하세요. : [“Banana”, “Apple”, “Orange”]
리스트의 remove()를 이용해서 간단하게 풀었다
1 | q11 = ["Banana", "Apple", "Orange"] |
그런데 출력값이 None이 떠서 당황했다.
remove()한 내용은 출력할 필요가 없고 삭제완료한 리스트를 print하면 되었던 문제였다
1 | q11 = ["Banana", "Apple", "Orange"] |