파이썬(프로그램 작성) 문제들 도움좀 받고싶습니다..
2.
프로그래밍 배운지 이제 3개월쯤 되가는것 같습니다. 이제 기본적인 걸음마 정도 뗸 상태이구요.. 근데 이번 문제들은 좀 어떤식으로 짜나가야하는지 모르겠어서 프로그램 작성 도움받고싶습니다.. 제가 대충 하긴했는데 실행이안되더라구요.. 고수분들 프로그램 최대한 쉽게 부탁드리겠습니다!!
[1번 소스 : q1.py]
# -- coding: utf-8 --
"""
Created on Fri May 28 11:34:27 2021
@author: raven90
"""
#1. 1부터 50까지 3, 6, 9 게임의 결과를 출력하는 프로그램을 함수를 이용하여 작성하시오.
# (3, 6, 9 숫자가 한번 들어갈 경우에는 ""을 출력하며, 3, 6, 9 숫자가 두번 들어갈 경우에는 "*" 을 출력한다.
# 그리고 3, 6, 9 숫자가 들어가지 않을 경우에는 숫자를 표시한다.)
# 3 6 9 게임
# 1 = 1 2 = 2 3 = * 4 = 4 5 = 5
# 6 = 7 = 7 8 = 8 9 = 10 = 10
#11 = 11 12 = 12 13 = * 14 = 14 15 = 15
#16 = 17 = 17 18 = 18 19 = 20 = 20
#21 = 21 22 = 22 23 = * 24 = 24 25 = 25
#26 = 27 = 27 28 = 28 29 = 30 = *
#31 = 32 = 33 = * 34 = 35 = *
#36 = * 37 = 38 = 39 = * 40 = 40
#41 = 41 42 = 42 43 = * 44 = 44 45 = 45
#46 = 47 = 47 48 = 48 49 = 50 = 50
def game369(num1, num2):
counter=0
tmpStr=""
for i in range(num1, num2+1):
chk = False # 초기화
counter +=1
tmpStr2 ="" # 초기화
if counter >1 :
tmpStr += "\t"
# 몫 구하기
mok = i // 10
if(mok == 3 or mok == 6 or mok ==9):
chk = True
if chk == True :
tmpStr2 = "*"
chk = False # 초기화
# 나머지 구하기
na = i % 10
if(na == 3 or na == 6 or na ==9):
chk = True
if chk == True :
tmpStr2 += "*"
chk = False
tmpStr += ('%2d' % i) + " = "
if tmpStr2 != "":
tmpStr += tmpStr2
else :
tmpStr += ('%2d' % i)
if counter == 5 or i==num2 :
print(tmpStr)
tmpStr=""
counter = 0
if name == 'main':
game369(1, 50)
[1번 실행 후 캡쳐]
[2번 소스 1 : factorial.py]
# -- coding: utf-8 --
"""
Created on Fri May 28 13:23:48 2021
@author: raven90
"""
# 참고 : https://shoark7.github.io/programming/algorithm/several-ways-to-solve-factorial-in-python
def factorial(n):
ret = 1
for i in range(1, n+1):
ret *= i
return ret
[2번 소스 2: q2.py]
# -- coding: utf-8 --
"""
Created on Fri May 28 11:34:27 2021
@author: raven90
"""
#2. 다음과 같이 n! = 1 2 # ... n-1 * n 을 계산하는
# 프로그램을 만들기 위하여 factorial() 함수를 포함하는
# factorial 모듈을 만드시오.
# 이때 factorial 함수는 재귀호출을 사용하지 않는 함수로 구성하시오.
# >>> import factorial
# >>> print("10! =", factorial.factorial(10))
# 10 ! = 3628800
import factorial
print("10! =", factorial.factorial(10))
[2번 실행 후 캡쳐]
[3번 소스: q3.py]
# -- coding: utf-8 --
"""
Created on Fri May 28 11:34:27 2021
@author: raven90
"""
#3. 다음 프로그램은 로또 번호를 자동으로 생성하기 위하여
# random모듈의 sample 함수를 사용한 예이다.
# >>> import random
# >>> lotto = random.sample(range(1,46),6)
# >>> lotto.sort()
# >>> print(lotto)
# [18, 25, 30, 33, 37, 39]
# sample() 함수를 사용하지 않고 randint() 함수를 사용해서
# 로또 번호를 자동으로 만들어주는 프로그램을 작성하시오.
# 참고 : https://appia.tistory.com/93
import random
def randomLottoCreate():
lotto =[]
while len(lotto) < 6 :
V = random.randint(1,45)
if V not in lotto:
lotto.append(V)
lotto.sort()
#print(lotto)
return lotto
if name == 'main':
lotto = randomLottoCreate()
print(lotto)
[3번 실행 후 캡쳐]
[4번 소스: q4.py]
# -- coding: utf-8 --
"""
Created on Fri May 28 11:34:27 2021
@author: raven90
"""
#4. 다음과 같이 콤마(,)로 구분된 정수를 입력받아 최대값과 최소값, 총합을 구한느
# 프로그램을 작성하시오.
def listMin(tmpList):
return min(tmpList)
def listMax(tmpList):
return max(tmpList)
def listSum(tmpList):
return sum(tmpList)
#s = "국어,수학,정보,영어,체육"
#new_lst = s.split(",")
if name == 'main':
inStrs = input("콤바(,)로 구분된 숫자들을 입력하세요: ")
numList = [int(x) for x in inStrs.split(',')]
print("최댓값 = " + str(listMax(numList)) )
print("최솟값 = " + str(listMin(numList)) )
print("총합 = " + str(listSum(numList)) )
[4번 실행 후 캡쳐]
[5번 소스 : q5.py]
# -- coding: utf-8 --
"""
Created on Fri May 28 11:34:27 2021
@author: raven90
"""
#5. 다음과 같이 알파벳 대분자의 유니코드 값을 출력하는 프로그램을 작성하시오.
#chr(65) -> "A"
#ord("A") -> 65
def AlphaToAscii(tmpAlpha):
return tmpAlpha + " : " + str(ord(tmpAlpha))
if name == 'main':
numMin=65
numMax=90
count=0
tmpStr=""
for i in range(numMin, numMax + 1):
count += 1
if count >1 :
tmpStr += " " # 여백 두기
tmpStr += AlphaToAscii(chr(i))
if count == 5 or i==numMax :
print(tmpStr)
tmpStr="" #초기화
count=0 #초기화
[5번 실행 후 캡쳐]