숭실대 프로그래밍 기말 고사(2024-1)
2024. 6. 14. 14:57ㆍpython study
1. 다음과 같은 방식으로 코드를 완성하시오
- 길이가 9보다 작다면 에러메시지로 "9자 이상 입력하세요."를 출력하고 다시 패스워드를 입력받는다. 그리고 길이가 9보다 길다면 다음 동작으로 넘어간다.
- 숫자가 패스워드에 존재한다면 "패스워드 사용 불가(숫자 사용 X)"를 출력해 주고 다시 패스워드를 입력받는다.
- 숫자가 패스워드에 없고 패스워드에 대문자가 존재하지 않는다면 "패스워드 사용 불가(대문자 없음)"을 출력해 주고 다시 패스워드를 입력받는다.
- 숫자가 패스워드에 없고 패스워드에 소문자가 존재하지 않는다면 "패스워드 사용 불가(소문자 없음)"을 출력해 주고 다시 패스워드를 입력받는다.
- 만약 대문자 소문자가 존재하고 숫자가 없다면 "패스워드 사용 가능"을 출력하고 종료한다.
#예시
"""
패스워드 입력: abcd
9자 이상 입력하세요.
패스워드 입력: abcdefghijk
패스워드 사용 불가(대문자 없음)
패스워드 입력: ABDFDFDFDCF
패스워드 사용 불가(소문자 없음)
패스워드 입력: abdbdkskfhA12
패스워드 사용 불가(숫자 사용X)
패스워드 입력: SSJJSSsoongsil
패스워드 사용 가능
"""정답 코드
while(True):
n=input("패스워드 입력: ")
if(len(n)<9):
print("9자 이상 입력하세요.")
else:
a=0
b=0
flag=True
for i in n:
if(i>='1' and i<='9'):
print("패스워드 사용 불가(숫자 사용 X)")
flag=False
break
if(i>='a' and i<='z'):
a+=1
elif(i>='A' and i<='Z'):
b+=1
if(a>=1 and b>=1 and flag==True):
print("패스워드 사용 가능")
break
elif(a>=1 and b==0 and flag==True):
print("패스워드 사용 불가(대문자 없음)")
elif(a==0 and b>=1 and flag==True):
print("패스워드 사용 불가(소문자 없음)")
print()
2. 다음과 같은 방식으로 코드를 완성하시오
- 제일 먼저 게임을 진행하고 싶다면 Y나 y를 입력해 주고 게임을 종료하고 싶다면 N나 n을 입력해 주고 위에 나온 것 이외의 것이 입력된다면 "다시 입력해 주세요"를 출력하고 다시 입력받는다.
- 게임이 진행될 때는 컴퓨터과 인간이 1~6 사이의 숫자를 렌덤으로 뽑아준다.
- 만약 컴퓨터가 더 크다면 "컴퓨터 승리", 인간이 더 크다면 "인간 승리"를 출력해 주고 비긴다면 무승부를 출력해 준다.
#예시
"""
주사위를 던지시겠습니까? (Y/y or N/n): k
다시입력하세요.
주사위를 던지시겠습니까? (Y/y or N/n): Y
[인간] 주사위: 4, [컴퓨터] 주사위: 6
컴퓨터 승리
주사위를 던지시겠습니까? (Y/y or N/n): y
[인간] 주사위: 5, [컴퓨터] 주사위: 5
무승부
주사위를 던지시겠습니까? (Y/y or N/n): Y
[인간] 주사위: 6, [컴퓨터] 주사위: 4
인간 승리
주사위를 던지시겠습니까? (Y/y or N/n): N
종료하겠습니다.
"""정답 코드
import random
while(True):
n=input("주사위를 던지시겠습니까? (Y/y or N/n): ")
if(n.lower()=="y"):
a=random.randint(1,6)
b=random.randint(1,6)
print(f"[인간] 주사위: {a}, [컴퓨터] 주사위: {b}")
if(a==b):
print("무승부")
elif(a>b):
print("인간 승리")
elif(a<b):
print("컴퓨터 승리")
elif(n.lower()=="n"):
print("종료합니다.")
break
else:
print("다시입력하세요.")
print()
3. 다음과 같은 방식으로 코드를 완성하시오
- 중복되는 숫자 없이 내림차순으로 1~45 사이의 6개 숫자를 리스트 형태로 출력해 준다.
#예시
"""
내림차순 정렬된 로또 번호를 출력합니다.
[45,42,34,23,12,1]
"""정답 코드
import random
l=[]
while(True):
n=random.randint(1,45)
flag=True
for i in l:
if(i==n):
flag=False
break
if(flag==True):
l.append(n)
if(len(l)==6):
break
l.sort(reverse=True)
print("내림차순 정렬된 로또 번호를 출력합니다.")
print(l)
4. 다음과 같은 방식으로 코드를 완성하시오 (이 문제는 함수를 사용하지 않는다면 감점을 받기 때문에 조심해 주세요)
- 기본적으로 리스트 속에 사과, 포도, 딸기, 바나나를 추가해 주고, 예시에서 나오는 메뉴들은 멘 처음에만 출력해 준다.
- 1~4의 숫자를 입력받는다.
- 1의 경우에는 리스트 속에 있는 과일을 추천해 준다.
- 2의 경우에는 과일을 입력받고 그 과일을 리스트에 추가해 준다.
- 3의 경우에는 과일을 입력받고 리스트에 있는 과일을 삭제한다.
- 4의 경우에는 종료한다.
- 1~4의 숫자가 아닌 경우에는 다시 입력받는다.
#예시
"""
======== 메뉴 ========
1. 과일 추천 (fun1 함수)
2. 과일 추가 (fun2 함수)
3. 과일 삭제 (fun3 함수)
4. 종료
=====================
메뉴 입력: 1
'바나나'를 추천합니다.
메뉴 입력: 2
추가할 과일: 수박
추가된 과일 리스트를 출력합니다.
["사과","딸기","바나나","포도","수박"]
메뉴 입력: 3
삭제할 과일 입력: 사과
사과 삭제 후 과일 리스트를 출력합니다.
["딸기","바나나","포도","수박"]
메뉴 입력: 5
1~4사이만 입력 가능합니다.
메뉴 입력: 4
종료합니다.
"""정답 코드
import random
print("="*8,"메뉴","="*8)
print("1. 과일 추천 (fun1 함수)")
print("2. 과일 추가 (fun2 함수)")
print("3. 과일 삭제 (fun3 함수)")
print("4. 종료")
print("="*22)
a=["사과","바나나","포도","딸기"]
def fun1():
print(f"'{a[random.randint(0,3)]}'을(를) 추천합니다.")
def fun2(s):
a.append(s)
print(f"추가된 과일 리스트를 출력합니다.\n{a}")
def fun3(s):
a.remove(s)
print(f"{s} 삭제 후 과일 리스트를 출력합니다.\n{a}")
while(True):
k=int(input("메뉴 입력: "))
if(k==1):
fun1()
elif(k==2):
s=input("추가할 과일 입력: ")
fun2(s)
elif(k==3):
s=input("삭제할 과일 입력: ")
fun3(s)
elif(k==4):
print("종료합니다.")
break
else:
print("1~4만 입력 가능합니다.")
print()'python study' 카테고리의 다른 글
| 숭실대 프로그래밍 기말 고사(2024-2) (0) | 2025.01.14 |
|---|---|
| 숭실대 프로그래밍 중간고사(2024-2) (0) | 2024.10.31 |
| 숭실대 프로그래밍 중간 고사(2024-1) (0) | 2024.06.20 |