본문 바로가기
study/Python

[Python] 34. Test 답

by 금이패런츠 2022. 6. 17.
728x90
반응형
# -*- coding: utf-8 -*-
"""
Created on Fri Jun 17 14:42:22 2022

@author: KITCOOP
test0617_A.py
"""

'''
1. mod2.py 파일을 읽어서 mod2.bak 파일로 복사하기.
'''
infp = open("mod2.py", "r", encoding='UTF8')
outfp = open("mod2.bak","w",encoding="UTF8")
while True :
    inStr = infp.readline()
    if inStr == '' : 
        break
    outfp.writelines(inStr)
infp.close()
outfp.close()
print("프로그램 종료")

'''
2. 현재폴더에 temp폴더를 생성하고, 생성된 폴더에 indata.txt 파일을
   생성하여 생성된파일에 키보드에서 입력된 정보 저장하는 프로그램 
   구현하기
'''
import os
wpath = os.getcwd()+"/temp"
if  not os.path.exists(wpath) :
    os.mkdir("temp")
   
outfp = open("temp/indata.txt",'w',encoding='UTF8')
while True :
    inline = input("저장 내용=>")
    if inline == '' :
        break
    outfp.writelines(inline+"\n")
outfp.close()   

'''
3.원본 파일의 이름을 입력받고, 입력받은 복사본 파일이름으로 복사하는 
  프로그램 작성하기
  원본파일이 없는 경우 원본 파일이 존재하지 않습니다. 출력하기

[결과]
원본파일의 이름을 입력하세요 : aaa
원본파일이 존재하지 않습니다.

원본파일의 이름을 입력하세요 : data.txt
복사본파일의 이름을 입력하세요 : databak.txt
복사완료
'''
infile = input("원본파일의 이름을 입력하세요 : ")
try :
     inFp=open(infile, "r",  encoding='utf-8')
     outfile = input("복사본파일의 이름을 입력하세요 : ")
     outFp=open(outfile, "w",  encoding='utf-8')
     inList = inFp.readlines() 
     for inStr in inList :
          outFp.writelines(inStr)
     inFp.close()
     outFp.close()
     print("\n복사완료")
except :
     print("원본파일이 존재하지 않습니다.")   

'''
 4. 다음 number 데이터를 이용하여 큰글씨를 출력하는 프로그램 작성하기 
   [결과]
   숫자를 입력하세요 =>12345
     *  ***  ***  * *  ***  
     *    *    *  * *  *    
     *  ***  ***  ***  ***  
     *  *      *    *    *  
     *  ***  ***    *  ***  
'''
number= [["*** ","* * ","* * ","* * ","*** "],
	     ["  * ","  * ","  * ","  * ","  * "],
		 ["*** ","  * ","*** ","*   ","*** "],
		 ["*** ","  * ","*** ","  * ","*** "],
		 ["* * ","* * ","*** ","  * ","  * "],
		 ["*** ","*   ","*** ","  * ","*** "],
		 ["*** ","*   ","*** ","* * ","*** "],
		 ["*** ","  * ","  * ","  * ","  * "],
		 ["*** ","* * ","*** ","* * ","*** "],
		 ["*** ","* * ","*** ","  * ","  * "]
		]

num = input("숫자를 입력하세요 =>")
for i in range(5) :
    for n in num :
        print(number[int(n)][i],end=" ")
    print()    

'''
 5. sqlite의 mydb의 테이블의 내용 조회하기
 sql 구문을 입력하고 다음과 같은 결과가 출력되도록 프로그램을 작성하시오
[결과]
sql 입력하세요=========
select * from member

조회 레코드수: 6 ,조회 컬럼수: 3

('hongkd', '홍길동', 'hongkd@aaa.bbb')
('kimsg', '김삿갓', 'kimsg@aaa.bbb')
('test1', '테스트1', 'test1@aaa.bbb')
('test2', '테스트2', 'test2@aaa.bbb')
('test3', '테스트3', 'test3@aaa.bbb')
('test4', '테스트4', 'test4@aaa.bbb')
sql 입력하세요=========
insert into member (id,name,email) values ('a','a','a')
sql 입력하세요=========
select * from member

조회 레코드수: 7 ,조회 컬럼수: 3

('hongkd', '홍길동', 'hongkd@aaa.bbb')
('kimsg', '김삿갓', 'kimsg@aaa.bbb')
('test1', '테스트1', 'test1@aaa.bbb')
('test2', '테스트2', 'test2@aaa.bbb')
('test3', '테스트3', 'test3@aaa.bbb')
('test4', '테스트4', 'test4@aaa.bbb')
('a', 'a', 'a')
sql 입력하세요=========

'''
import sqlite3
conn = sqlite3.connect("mydb")
cur = conn.cursor()
while True :
    sql = input("sql 입력하세요=========\n")
    if sql=="" :
        break
    cur.execute(sql)
    rows = cur.fetchall()
    if len(rows) > 0 :
       print()
       print("조회 레코드수:",len(rows),",조회 컬럼수:",len(rows[0]))    
       print()
       for row in rows :
           print(row)
cur.close()
conn.close();

"""
6. 화면에서 숫자를 입력받아 야구 게임하기
   1. 시스템이 중복되지 않은 숫자 4개를 저장
      list2=list(set1) : set1 객체를 list 형으로 변환
   2. 화면에서 숫자를 입력받으면, strike, ball을 출력
   3. 4 strike인 경우 정답.   
[결과]
서로다른 4자리 숫자를 입력하세요: 1234
Strike: 0 Ball: 3

서로다른 4자리 숫자를 입력하세요: 5678
Strike: 0 Ball: 1

서로다른 4자리 숫자를 입력하세요: 2348
Strike: 3 Ball: 0

서로다른 4자리 숫자를 입력하세요: 2346
4 번만에 맞췄습니다.

"""
import random 
 
list1=[]
set1 = set(list1) 
while len(set1) < 4 :
    rnum = random.randrange(0,10) 
    set1.add(rnum)
list1 = list(set1)
print(list1) 
cnt = 0
while True :
    number = input("서로다른 4자리 숫자를 입력하세요: ")
    cnt += 1
    strike = 0
    ball = 0
    for n in number:
        num = int(n) 
        if list1.count(num)  == 1:
            if number.find(n) == list1.index(num):
                strike += 1
            else:
                ball += 1
                
    if(strike == 4) :
        break                
    else :
        print("Strike:", strike, "Ball:", ball)

print(cnt,"번만에 맞췄습니다.")
728x90
반응형