1. 문자열 제거 및 추출
실습)주어진 리스트 에서 a번째에서 b개를 취하여 주는 프로그램을 짜시오
- ex) abcdefg 2 3 à bcd
- 입력은 s=list(input(“대상 문자열 입력”))
a=int(input(“시작 지점 입력”))
b=int(input(“취할 갯수 입력”))
- 결과는 result 리스트에 저장
- 출력은 print(“결과 문자열은 {0} 입니다”.format(result)) # str(result)
- 1) 슬라이싱, append, + 연산자 사용
- 교재 3장 4, 6page, 5장 10page 참조
2) 완성후에 invalid parameter a & b 체크 항목 추가 할 것
- 결과 리스트 만들기 전에 잘못 된 a와 b를 별도로 체크 할 것
- a와 b는 1이상인 값이 들어 온다는 전제하에 체크 할 것.
import sys
s=list(input())
lenthOfS = len(s)
a=int(input())
b=int(input())
if (a and b <=0):
print("1보다 작은 값을 입력하였습니다.")
sys.exit(0)
midstr = s[a-1:len(s)]
result = s[a-1:a-1+b]
print("결과 문자열은 {0} 입니다".format(result))
실행결과
abcdefg
2
2
결과 문자열은 ['b', 'c'] 입니다
2. revsqueeze (문자 제거 후 순서 뒤바꾸기)
실습) 주어진 리스트에서 또 다른 주어진 리스트를 제거하고 역순화 시킨 리스트를 만들어 주는 함수 revsqueeze(s, t) 를 만드시오
- ex) abcabc b à caca
- 메인 루틴에서
- 입력은 s=list(input(“대상 문자열 입력”))
t=list(input(“제거할 문자 입력”))
- 함수 call 은 result=revsqueeze(s, t)
- 출력은 print(“결과 리스트는 {0} 입니다”.format(result))
- 함수에서
- 1-1) 위치 매개 변수 사용
1-2) 가변 위치 매개 변수 사용
- 2-1) 인덱스로 접근(len 함수 사용)
2-2) for ~ in 사용해서 접근
- 3) extend 메소드(또는 + 연산자, 또는 슬라이싱 연산자) 와 reverse 메소드 사용해서 해결
def revsqueeze(s,t):
ss="".join(map(str, s))
tt="".join(map(str, t))
c = s.count(tt)
for i in range(0,c):
d=s.index(tt)
s.pop(d)
s.reverse()
s=list(input("대상 문자열 입력"))
t=list(input("제거할 문자 입력"))
revsqueeze(s,t)
result=s
print("결과 리스트는 {0}입니다.".format(result))
실행결과
대상 문자열 입력abcdabcd
제거할 문자 입력b
결과 리스트는 ['d', 'c', 'a', 'd', 'c', 'a']입니다.
3. 16진수를 10진수로 출력하는 프로그램
import sys
s=input("16진수를 입력 하시오")
value = 0 # 계산 결과 저장
v = 0 # 변환된 숫자 저장
cc=list(s)
c=cc[::-1]
for index,value in enumerate(c):
if (value>='0' and value<= '9') :
v= ord(value)-ord('0') # 해당되는 숫자 (10진수) 또는 v= int(c)
elif (value>='A' and value<='F') :
v = ord(value)-ord('A')+10 # 해당되는 숫자 (16진수)
else:
print("16진수가 아닙니다.")
sys.exit(0)
if (index==0):
value1= 16**index *v
elif (index==1):
value2= 16**index *v
elif (index==2):
value3= 16**index *v
value=value1+value2+value3
print(value)
hex to int
16진수 12B 입력시
10진수 299 출력
가장 오래 고민하고.... 가장 고심이 깊었던 문제...
그만큼 지금 풀어내서 기분이 끝내준다...!!!!!
이 문제를 풀면서 기본기가 약하고 기본개념이 부족하다는 것을 많이 느꼈다.
데이터타입끼리의 비교나 특정함수는 특정데이터에만 적용되는 것... 그리고
for문으로 받은 것이 어떻게 출력되고 어떻게 활용해야하는지에 대해서
몰라서 정말 헤매고 고민했었다.. 하지만 지금 I did it !!!
기분 끝내준댜ㅑㅑㅑㅑㅑㅑ!!!
'Tech Blog > Python' 카테고리의 다른 글
Python - 변수(인자)의 종류 (0) | 2021.06.24 |
---|---|
Python - 데이터 타입 정리(숫자,텍스트,리스트,튜플,딕셔너리 등) (0) | 2021.06.23 |
Python - Class, Method, Instance 정리 글 (0) | 2021.06.20 |
파이썬 Tensorflow 데이터 사이언스에 빠져들다!! (0) | 2021.05.11 |
데이터 사이언스 Tool, Orange3 소개 (0) | 2021.05.10 |