본문 바로가기

파이썬156

[파이썬] 문제 : 두 문자열을 입력 받아 일치하는 문자열 겹치기 문제 : 두 문자열 A, B를 입력 받아 A의 뒷부분과 B의 앞부분이 일치하는 부분을 겹쳐서 하나의 문자열을 만듬 overlap(A, B) 함수를 만들어 C를 반환한다. # a = 'commu' b = 'mummy' = commummy # a = 'boxok' b = 'xbox' = boxokxbox # a = 'tttttt' b = 'tttttt' = tttttt # a = 'waycom' b = 'ycomget' = def overlap(a, b): # overlap 함수 if a == b: # 인수 두 문자열이 같으면 문자열 a 를 리턴한다. rtn = a else: # 인수 두 문자열이 같지 않으면 min_len = len(a) if len(a) < len(b) else len(b) # 두 문자열.. 2022. 11. 14.
[파이썬] 문제 : 가변인수로 받은 값으로 정렬 가변인수로 받은 값들을 오름차순하여 출력 def func(*arg): # 가변인자 함수. * 사용 lst = [] # 가변인자를 저장할 리스트 선언 for i in arg: # 가변인자 원소수 만큼 반복 lst.append(i) # 원소를 리스트에 추가 lst.sort() # 오름차순 정렬 return lst # 값을 리턴 함 print(func(3,1,4,2,5)) # 출력 결과 [1, 2, 3, 4, 5] 리스트 sort 함수를 사용하지 않고 def sort(L): for i in range(len(L)): for j in range(i, len(L)): if L[i] > L[j]: tmp = L[j] L[j] = L[i] L[i] = tmp return L def func(*arg): # 가변인자 .. 2022. 11. 14.
[파이썬] 문제 : 완전수 판단 문제 : 자기 자신을 제외한 모든 양의 약수들의 합이 자기 자신이 되 는 자연수를 완전수라고 한다. 파이썬을 활용하여 하나의 정수 n을 매개 변수로 받아 해당 매개 변수 n이 완전수이면 1을 리턴하고 완전수가 아니면 0 을 리턴하는 함수 perfect를 만드시오 - 완전수는 6, 28, 496, 8128 .. 등이라고 합니다. def perfect(N): # 함수 선언 n_sum = 0 # 합계 변수 for i in range(1, N): # 반복문 입력받은 수까지 반복 if (N % i == 0): # 1 부터 입력 받은 수까지의 수(i) 로 입력받은 수를 나누어 나머지가 0 이면 약수 n_sum += i # 약수들을 합함 if (N == n_sum): # 약수들의 합이 입력받은 수와 같음녀 완전수 r.. 2022. 11. 14.
[파이썬] 문제 : 반지름, 높이 입력받아 원기둥의 표면부피,표면면적 계산 import math # 수학 패키지 선언. pow 함수 사용 h = int(input("원기둥의 높이: ")) # 입력 받기 r = int(input("원기둥의 반지름: ")) PI = 3.14 # 파일(PI) 값 지정 volume = PI * r * r * h # 부피. 계산 area = ((2 * PI * r) * h) + ((PI * math.pow(r, 2)) * 2) # 면적. 계산 print(f"표면부피는 {volume:0.2f}이고 표면면적은 {area:0.2f}입니다") # 출력 결과 원기둥의 높이: 4 원기둥의 반지름: 7 표면부피는 615.44이고 표면면적은 483.56입니다 2022. 11. 14.
[파이썬] 문제 : 2차원 배열에서 행,열별 합계 # 리스트 선언 data = [[10, 20, 30, 40] ,[50, 60, 70, 80] ,[90, 100, 110, 120] ,[130, 140, 150, 160] ,[170, 180, 190, 200]] col_sum = [0] * (len(data[0])+1) # 열(세로)의 합을 저장할 리스트 만들고 0 으로 초기화, +1은 행별 합계의 열 합계용 추가 for i in range(len(data)): # 2차원 리스트에서 1차원 원소수만큼 반복 row_sum = 0 # 행 합계 변수 초기화 for j in range(len(data[0])): # 2차원 리스트에서 2차원 원소수만큼 반복 print(f"{data[i][j]}",end=' ') # 2아춴 원소 출력. 줄바꿈을 하지 않음 row_s.. 2022. 11. 13.
[파이썬] 문제 : 입력 받은 수의 배수가 리스트에 있는지 찾기 lst = [21, 7, 43, 65, 2, 8, 72, 52, 9] # 리스트 선언 ins = int(input("찾을 배수 : ")) # 입력 받기 idx = -1 # 배수를 찾으면 해당 인덱스 저장 변수 for i in range(len(lst)): # 리스트의 원소수만큼 반복 if lst[i]%ins == 0: # 입력박은 수로 리스트의 원소를 나누어 나머지가 0 이면 배수 idx = i # 찾은 배수의 인덱스 저장 print(f"위치 : {idx} 값 : {lst[idx]}") # 출력 if idx == -1: # 찾은 인뎃스가 없으면 print("찾지 못함") # 찾지 못함 출력 결과 찾을 배수 : 3 위치 : 0 값 : 21 위치 : 6 값 : 72 위치 : 8 값 : 9 2022. 11. 13.
[파이썬] 문제 : 두 수 사이의 합계 출력하는 함수 def sum_between(start, end): if end < start: print("start는 end보다 클 수 없습니다.") return 0 result = 0 for i in range(start, end+1): result += i return result print("0 ~ 10:", sum_between(0, 10)) print("0 ~ 100:", sum_between(0, 100)) print("50 ~ 100:", sum_between(50, 100)) print("30 ~ 10:", sum_between(30, 10)) 결과 0 ~ 10: 55 0 ~ 100: 5050 50 ~ 100: 3825 start는 end보다 클 수 없습니다. 30 ~ 10: 0 2022. 11. 13.
[파이썬] 문제 : 입력 받은 수식으로 계산하기 조건 1. 아래의 조건을 만족하도록 작성 후 출력하기 1. 무한루프로 사용자에게 수식을 입력받는다. 2. 수식 대신 대문자 X가 입력되면 종료. 3. 수식을 계산해서 수식과 결과를 출력한다. 결과는 총 40칸으로 오른쪽 정렬하여 출력. 4. 사용자가 수식을 계속해서 입력하면 기존의 수식들을 출력하고 기존 결과에 추가로 수식을 계산한 결과를 출력한다. 5. 수식 대신 C를 입력하면 0을 출력하고 수식들을 전부 초기화. result = 0 lst = [] while True: ss = ''.join(lst) # 입력된 수식 보여주기 위해 문자열로 변환 ins = input(f"{ss}") # 입력 받음 if ins != "X" and ins != "C": # X도 아니고, C 도 아니면 수식 계속 입력 중 .. 2022. 11. 13.
[파이썬] 문제 : 폴더내의 파일 확장자 파일 검색 조건 1. txt와 xlsx확장자를 가지고 있는 파일을 입력한다면 확장자 이름 txt와 xlsx을 출력하는 방법이랑 2. 만약 파일 확장자가 다른 파일(ex.ppt)을 검색했을 때 “존재하지 않는 확장자입니다” 라고 출력되고, 3. 확장자는 같지만, 폴더에 있는 파일과 다른 파일을 입력할 경우(ex. re.txt) “존재하지 않는 파일입니다” 출력 import os path_dir = 'E:/RnD/지식IN/tmp5' # 대상 폴더 지정 ss = input('검색할 파일 이름을 입력(예:reunion.txt): ') # 파일명(확장자 포함) 입력 받음 tmp = ss.split('.') # 확장자 구분을 위해 '.' 문자로 분리하려 리스트로 만듬. '.'이 여러개인 파일명 처리에 쉬움 ext = tmp[.. 2022. 11. 13.
[파이썬] 문제 : 리스트의 원소를 역순으로 출력 data = [['k','b','s'], [88,'apple',7,-5], [503], []] # 인자로 주어질 리스트을 담은 리스트 def inverse(lst): # 원소의 순서를 거꾸로 배치하는 함수 rtn = [] # 결과 저장용 리스트 변수 for i in range(len(lst)-1,-1,-1): # range(start, end, step)을 이와 같이 하면 뒤에서 부터 원소를 가져올 수 있음 rtn.append(lst[i]) # 결과 리스트에 추가 return rtn for i, lst in enumerate(data): # 인자용 리스트에서 하나씩 리시트를 꺼냄 if len(lst) > 1: # 입력받은 리스트의 원소가 1개보다 크면 함수 실행 result = inverse(lst) e.. 2022. 11. 13.
728x90
반응형