2023. 1. 3. 18:29ㆍ파이썬(Python)
1. return
- 함수가 값을 반환하기 위해 사용.
def add(a,b):
return a+b
a,b=map(int,input().split())
sum_val=add(a,b)
print(sum_val)
- add 함수는 두 수의 합을 반환하는 함수.
- add 함수를 호출 이후 입력한 두 수의 합을 sum_val 변수에 넣어 출력.
Q) 1부터 N까지 합
- 정수 n을 입력하면 1부터 n까지 더한 값을 반환하는 함수 작성.
def sum1toN(n):
sum_val=0
for i in range(1,n+1):
sum_val+=i
return sum_val
n=int(input())
print(sum1toN(n))
결과
>> 10
55
2. 기본값 인자 설정
- 함수에 설정한 인자 개수와 실행할 때 넣은 인자 개수가 다르면 오류가 발생.
def add(a,b,c):
return a+b+c
print(add(3,4))
결과
TypeError: add() missing 1 required positional argument: 'c'
- 오류를 방지하기 위해서는 기본값을 설정한다.
- a, b, c가 채워져 오는 경우는 a+b+c를 계산.
- a, b만 채워져 오는 경우는 c에 2를 넣어 a+b+c를 계산.
- 이때 함수에 c=2라고 적어주면 결과를 얻을 수 있다.
def add(a,b,c=2):
return a+b+c
print(add(3,4))
print(add(3,4,5))
결과
9
12
3. asterisk
- 인자 개수에 상관없이 tuple 형태로 값들을 받아올 수 있음.
def number(*args):
return args
print(number(1,2,3,4,5))
결과
(1, 2, 3, 4, 5)
- tuple 안에 있는 수의 합을 구하기 위해서는 sum을 사용하면 된다.
def number(*args):
return sum(args)
print(number(1,2,3,4,5))
결과
15
Q) 세 수의 최대 최소
- 세 수를 입력받아 최소를 구하는 함수와 최대를 구하는 함수를 작성.
- 세 수의 최솟값과 최댓값을 반환하여 출력
풀이 1)
def min_number(a,b,c):
return min(a,b,c)
def max_number(a,b,c):
return max(a,b,c)
a,b,c=map(int,input().split())
print(min_number(a,b,c))
print(max_number(a,b,c))
결과
>> 10 20 30
10
30
풀이 2)
def min_number(*args):
return min(args)
def max_number(*args):
return max(args)
a,b,c=map(int,input().split())
print(min_number(a,b,c))
print(max_number(a,b,c))
결과
>> 10 20 30
10
30
Q) 조건에 맞는 숫자들 개수 찾기
- 정수 n을 입력
- 1부터 n까지 수 중 홀수이면서 각 자리 숫자의 합이 10의 배수인 숫자를 출력
- 출력은 번호와 해당 조건에 맞는 수.
- 마지막은 조건에 맞는 숫자의 총개수를 출력.
def isNumber(n):
sum_num=sum(list(map(int,str(n))))
return n%2==1 and sum_num%10==0
n=int(input())
cnt=0
for i in range(1,n+1):
if isNumber(i):
cnt+=1
print(cnt,i)
print(f'1부터 {n}까지의 수 중 조건에 맞는 숫자는 {cnt}개이다.')
결과
100
1 19
2 37
3 55
4 73
5 91
1부터 100까지의 수 중 조건에 맞는 숫자는 5개이다.
Q) 369 숫자 체크
- 정수 n을 입력.
- n에 숫자 3 또는 6 또는 9가 있으면 Yes. 없으면 No를 출력
def is_369_number(n):
while n>0:
if n%10==3 or n%10==6 or n%10==9: return True
n//=10
return False
n=int(input())
if is_369_number(n): print('Yes')
else: print('No')
- n을 10씩 나눠주며 1의 자리가 3, 6, 9 중에 하나라도 있으면 True를 반환
- return을 하면 값을 반환하면서 함수가 종료.
Q) 소수의 합
- 정수 a, b를 입력 (a <b)
- a와 b 사이의 소수들을 출력 후 소수들의 합을 출력
def isPrimeList(a,b):
primenum=[]
for i in range(a,b+1):
if i==1: continue
isPrime=True
for j in range(2,i):
if i%j==0:
isPrime=False
break
if isPrime:
primenum.append(i)
return primenum
def PrintPrimeNum(a,b,prime_list):
print(f'{a}와 {b} 사이의 소수들은',end=' ')
for i in prime_list:
print(f'{i} ',end='')
print()
def PrimeSum(a,b,prime_list):
sum_val=0
for i in prime_list:
sum_val+=i
print(f'{a}와 {b} 사이에 있는 소수들의 합은 {sum_val}입니다.')
a,b=map(int,input().split())
prime_list=isPrimeList(a,b)
PrintPrimeNum(a,b,prime_list)
PrimeSum(a,b,prime_list)
결과
>> 10 30
10와 30 사이의 소수들은 11 13 17 19 23 29
10와 30 사이에 있는 소수들의 합은 112입니다.
isPrimeList
- 1은 소수가 아니므로 1일 때는 실행을 하지 않는다.
- n이 소수인지 판단하기 위해 2부터 n-1까지 나눈다.
- 한 번이라도 나누어 떨어지면 isPrime을 False로 하여 소수가 아님을 증명한다.
- isPrime이 True이면 나누어 떨어지는 수가 없기 때문에 소수이다.
- 소수인 숫자들은 리스트에 삽입하여 함수가 끝나면 리스트를 반환한다.
PrintPrimeNum
- a와 b 사이의 소수들을 출력하는 함수
PrimeSum
- a와 b 사이의 소수들의 합을 구하는 함수
Q) 윤년 판별
- 정수 y1과 y2를 입력하여 y1년과 y2년 사이에 윤년과 윤년의 개수를 출력
def isLeapYear(y):
if y%4==0:
if y%100==0:
if y%400==0:
return True
else:
return False
else:
return True
else:
return False
def MakeLeapYearList(y1,y2):
LeapYearList=[]
print(f'{y1}과 {y2} 사이의 윤년은 ',end='')
for year in range(y1,y2+1):
if isLeapYear(year):
print(f'{year} ',end='')
LeapYearList.append(year)
print()
return LeapYearList
def CountLeapYear(LeapYearList):
print(f'{y1}과 {y2} 사이의 윤년은 총 {len(LeapYearList)}개 이다.')
y1,y2=map(int,input().split())
LeapYearList=MakeLeapYearList(y1,y2)
CountLeapYear(LeapYearList)
결과
>> 2000 2050
2000과 2050 사이의 윤년은 2000 2004 2008 2012 2016 2020 2024 2028 2032 2036 2040 2044 2048
2000과 2050 사이의 윤년은 총 13개 이다.
isLeapYear
- 윤년의 조건 3가지
1. 4의 배수
2. 4의 배수이면서 100의 배수가 아님.
3. 4의 배수이면서 100의 배수이지만 400의 배수.
MakeLeapYearList
- y1과 y2 사이에 isLeapYear가 True이면 리스트에 삽입한다.
- 동시에 isLeapYear를 만족하는 연도를 출력한다.
- 리스트를 반환한다.
CountLeapYear
- 리스트의 길이를 구해 y1과 y2 사이의 윤년의 개수를 출력한다.
'파이썬(Python)' 카테고리의 다른 글
[Python] 변수 - Mutable vs Immutable (0) | 2023.01.13 |
---|---|
[Python] 함수 - return 반환 값을 이용한 예제 프로그램 작성 (연산, 연속 부분 수열, 날짜 및 날씨) (0) | 2023.01.04 |
[Python] 함수 - 기본 사용법 및 출력 (0) | 2022.12.29 |
문자열 변환 (0) | 2022.12.24 |
문자열 회전, 아스키 코드 (0) | 2022.11.10 |