코딩배우기
파이썬 코딩 3 유틸리티
오미자컴
2023. 8. 21. 01:09
VS Code로 코딩하려면 어떻게 하나요?
구글 검색 : vs code
Download for Windows Stable Build 단추 클릭.
다운로드 폴더에서 VSCodeUserSetup-x64-1.81.1 파일을 실행합니다.
동의 합니다. 선택 후 다음. 설치 위치 선택 창에서 다음. 시작 메뉴 폴더 선택 창에서 다음. 추가 작업 선택 창에서 ‘바탕 화면에 바로가기 만들기’ 선택 후 다음. 설치 단추 클릭. 설치 후 종료 단추 클릭
‘언어 팩을 설치하여 표시 언어를 한국어로 변경합니다’ 알림 창에서 ‘설치 및 다시 시작’
실행 후 시작 탭에서 ‘폴더 열기’ 메뉴 클릭. 다운로드 폴더에 Vstest 폴더를 만들고 ‘폴더 선택’
‘이 폴더에 있는 파일의 작성자를 신뢰합니까’ 창에서 ‘부모 폴더’ 체크 후 ‘예, 작성자를 신뢰합니다’
시작 탭에서 ‘새 파일’ 메뉴 클릭. 열린 입력 창에 test.py 입력 후 엔터. 열린 창에서 ‘파일 생성’.
‘Python 언어에 대한 권장되는 Microsoft의 ‘Python’ 확장을 설치하시겠습니까?’를 묻는 알림 창에서 ‘설치’
창 왼쪽 아래 [관리(톱니 바퀴 아이콘) – 설정(Ctrl+,)]. Editor : Font Size – 20. Editor : Word Wrap – on.
에디터 창 오른쪽 위에 삼각형 모양의 실행(재생) 아이콘이 안 보이면, 왼쪽 창에서 ‘실행 및 디버그’ 클릭 후 다시 ‘실행 및 디버그’ 단추 누르고 파이썬 선택.
천자문을 하루에 16자씩 공부하는 코딩을 하려면 어떻게 하나요?
한 줄에 4자씩 작업한 c1000.txt 파일을 유니코드 형식으로 불러와 c1000 리스트에 하나씩 넣습니다.
제일 처음에 공부할 때 숫자 1을 입력하여 날짜 파일 myDate.txt와 인덱스 파일 myIndex.txt를 만듭니다. 언제든 공부를 시작할 때 숫자 1을 입력하면 기존의 파일 내용이 삭제되고 처음부터 다시 작성됩니다.
Study 함수를 만들어 오늘 공부, 어제 공부, 지난주 공부를 할 수 있도록 합니다.
날짜 파일 myDate.txt를 불러와 myDate 리스트에 한 줄씩 넣습니다. 그리고 오늘 데이터도 하나 넣습니다.
마찬가지로 인덱스 파일 myIndex.txt를 불러와 myIndex 리스트에 한 줄씩 넣습니다.
이렇게 작성한 myDate 리스트와 myIndex 리스트는 리스트의 길이를 반환하는 len() 함수를 활용하여 어제 공부와, 지난주 공부를 할 수 있는 기준으로 활용합니다.
오늘 공부 후에 myDate.txt 파일과 myIndex.txt 파일에 데이터를 기록합니다. 공부 이력을 기록하는 것입니다.
myDate의 길이가 1보다 크면 어제 공부를 하도록 합니다. 또 myDate의 길이가 5보다 크면 지난주 공부를 하도록 합니다.
한 줄에 4자씩 작업한 c1000.txt 파일을 유니코드 형식으로 불러와 c1000 리스트에 하나씩 넣으려면 어떻게 하나요?
영단어 공부 코딩처럼 for 문을 통해 한 줄씩 불러옵니다.
# -*- coding: utf-8 -*-
c1000 = []
result_f = open("c1000.txt", encoding='UTF8')
for line in result_f:
c1000.append(line)
result_f.close()
유니코드로 불러오려면 encoding=‘UTF8’ 인수를 줘야 합니다.
숫자 1을 입력하여 날짜 파일 myDate.txt와 인덱스 파일 myIndex.txt를 만들려면 어떻게 하나요?
Input 함수를 통해 숫자를 입력할 수 있게 합니다.
g = input('제일 처음부터 공부하려면 숫자 1을 치세요~ 이어서 공부하려면 그냥 엔터~')
파일들을 ‘쓰기’ 옵션으로 엽니다. 이렇게 하면 만약 파일이 없으면 새로 만들고, 기존에 데이터가 있던 것을 다 삭제됩니다. 그래서 파일을 초기화 하는 용도로도 사용합니다.
if g == '1':
f = open('myDate.txt','w')
f.close()
a = open('myIndex.txt','w')
a.close()
Study 함수를 어떻게 만드나요?
우선 인수로 ment와 number를 넣고 오늘 공부, 어제 공부, 지난주 공부 등을 출력합니다.
def study(ment,number):
print(f'{ment} ' + '공부~')
공부할 한자 리스트를 출력하기 위해 필요한 연산을 합니다. 4줄을 반복하여 출력합니다.
count = 0
for i in range(4):
myStdNum = (count + len(myIndex) + len(myDate)) – number
print(c1000[myStdNum])
input('엔터를 치세요~')
count += 1
4번 번복하려고, for i in range(4):
카운트 숫자를 증가하여 그 다음 줄을 리스트에서 출력합니다.
count = 0
myStdNum = (count + len(myIndex) + len(myDate)) – number
count += 1
오늘 공부할 한자 리스트를 출력하기 위해 필요한 연산을 어떻게 하나요?
제일 첫 줄을 출력하려면, myStdNum이 0이 되어야 합니다. (Count 0 + len(myIndex) 0 + len(myDate) 1) – number 1이 되어야 합니다. myIndex엔 아직 아무런 데이터도 없으므로 0, myDate 리스트에 1을 추가했으므로 1, number는 함수 인수로 넘어온 수.
오늘 공부 함수를 사용하려면?
study('오늘',1)
myDate 리스트와 myIndex 리스트를 어떻게 만드나요?
해당 파일을 불러와 한 줄씩 리스트에 추가합니다.
myDate = []
result_myDate = open("myDate.txt")
for line in result_myDate:
myDate.append(line)
result_myDate.close()
myDate.append(1)
myIndex = []
result_myIndex = open("myIndex.txt")
for line in result_myIndex:
myIndex.append(line)
result_myIndex.close()
오늘 날짜 데이터를 리스트에 추가해야 하므로, myDate.append(1)
이렇게 파일에서 데이터를 가져와 리스트에 추가하면 공부한 이력을 저장하는 것입니다. 이를 기준으로 어제 공부한 위치로 갈 수 있고, 지난주 공부한 위치로도 갈 수 있습니다.
오늘 공부 후에 myDate.txt 파일과 myIndex.txt 파일에 데이터를 어떻게 기록하나요?
‘추가’ 옵션으로 파일을 열고 데이터를 추가합니다.
dateWrite = open('myDate.txt', 'a')
dateWrite.write('1 \n')
dateWrite.close()
indexWrite = open('myIndex.txt', 'a')
indexWrite.write('1 \n')
indexWrite.write('2 \n')
indexWrite.write('3 \n')
indexWrite.close()
날짜 데이터는 숫자 1을 하나 입력하고 줄빠꿈 기호를 넣어줍니다.
이 날자 데이터 하나에 인덱스 데이터 셋을 더하여 총 4개를 공부할 총 줄 수로 정하는 것입니다. 따라서 인덱스 데이터를 3개를 추가합니다. 편의상 1, 2, 3으로 하였습니다.
myDate의 길이가 1보다 크면 어제 공부를 하도록 합니다. 또 myDate의 길이가 5보다 크면 지난주 공부를 하도록 하려면 어떻게 하나요?
If 문을 통해 myDate의 길이가 1보다 크면 어제 공부 함수를 실행하고, myDate의 길이가 5보다 크면 어제 공부 함수를 실행하도록 합니다.
if len(myDate) > 1:
study('어제', 5)
if len(myDate) > 5:
study('지난주', 21)
어제 공부의 number 인수는 왜 5인가요?
처음부터 공부했다고 가정하고 둘째 날이면, 어제 공부는 다시 첫 줄이니까 0번째 리스트를 출력해야 합니다. (카운트 0 + 날짜 길이 2 + 인덱스 3) – 5를 해야 답이 0이 나오므로, number 인수를 5로 한 것입니다.
첫 날에서 그 다음주가 되어, 지난주 공부를 하려면 날짜는 6(여섯 째 날)이 되어야 합니다. 1주에 5번 공부하는 것으로 한 것입니다. 그러면 인덱스는 둘째 날 3이므로 여섯 째 날은 3 X 5이므로 15입니다. (카운트 0 + 날짜 길이 6 + 인덱스 15) – 21를 해야 답이 0이 나오므로, number 인수를 21로 한 것입니다.
겹치고 반복되는 코딩이 있는데 이를 함수로 만들려면 어떻게 하나요?
겹치고 반복되는 내용이 아닌 것을 인수로 처리합니다.
myDate = []
myIndex = []
def c1000List(cFile, cName):
result_cName = open(cFile)
for line in result_cName:
cName.append(line)
result_cName.close()
c1000List("myDate.txt", myDate)
myDate.append(1)
c1000List("myIndex.txt", myIndex)
def c1000Write(cWriteFile, cData):
cWrite = open(cWriteFile,'a')
cWrite.write(cData)
cWrite.close()
c1000Write('myDate.txt','1 \n')
c1000Write('myIndex.txt','1 \n')
c1000Write('myIndex.txt','2 \n')
c1000Write('myIndex.txt','3 \n')
QR코드를 만드는 코딩을 어떻게 하나요?
우선 qrcode와 pillow를 설치합니다(구름IDE에선 pillow를 설치하지 않아도 됩니다). qrcode 라이브러리를 가져옵니다. Pillow 모듈은 qrcode의 이미지처리에 필요합니다.
인터넷 주소를 한 줄씩 작성한 텍스트 파일을 불러와 한 줄씩 리스트에 저장합니다.
한 줄씩 qr코드로 만들고 이를 이미지 파일로 저장합니다.
QR코드란 뭔가요?
문자를 네모난 모양으로 배치합니다. 한글의 경우 약 1700자를 저장할 수 있습니다.
주로 인터넷 주소(URL)를 qr코드 이미지로 만들어 이를 스캔하면 해당 주소로 접속하도록 할 때 많이 사용합니다.
URL 주소가 있는 파일을 불러와 한 줄 한 줄 QR 코드 이미지로 만들려면 어떻게 하나요?
우선 qrcode 라이브러리를 불러옵니다.
Import qrcode
With키워드로 텍스트 파일을 열고, For 문을 사용하여 텍스트 파일을 한 줄씩 읽어 들여 리스트에 저장합니다.
with open('urls.txt', 'r') as f:
# ‘r’은 urls.txt를 읽기 모드로 엽니다.
for url in f:
url 주소에서 줄바꿈 기호(\n)를 제거합니다
url = url.strip()
URL 주소를 QR 코드로 생성합니다.
qr = qrcode.make(url)
URL 주소에서 www와 com 등을 제거합니다.
site_name = url.replace('https://', '').replace('www.', '').replace('.com', '').replace('.net', '')
QR 코드를 이미지로 저장합니다.
qr.save(f'{site_name}.png')
텍스트 파일을 음성 파일로 저장하고 읽어주려면 어떻게 하나요?
구글의 TTS 라이브러리를 이용합니다.
구글의 TTS 라이브러리는 텍스트를 음성으로 읽어줍니다.
Playsound 라이브러리를 이용해 음성 파일을 재생합니다. 이 라이브러리는 내 PC 환경에서 가능하고, 구름 IDE에서는 이 부분 빼고, mp3 파일만 저장합니다.
텍스트 파일을 열어 텍스트 모드로 읽어 들여 변수에 저장합니다.
텍스트를 읽어 들인 변수를 음성 파일로 저장하고 재생합니다.
구글의 TTS와 playsound 라이브러리를 가져오려면 어떻게 하나요?
먼저 터미널 창에서
pip install gtts
pip install playsound(구름 IDE에선 제외)
코딩 창에서
from gtts import gTTS
from playsound import playsound
import os
왜 os 라이브러리도 가져오나요?
Playsound를 현재 경로에서 실행할 때 필요합니다.
Playsound를 현재 경로에서 실행하려면 어떻게 하나요?
우선 현재 경로로 이동합니다.
os.chdir(os.path.dirname(os.path.abspath(__file__)))
Playsound 함수를 통해 mp3 파일을 재생합니다.
playsound("myPoem1.mp3")
텍스트 파일을 열어 텍스트 모드로 읽어 들여 변수에 저장하려면 어떻게 하나요?
우선 텍스트 파일을 UTF8 인코딩으로 열어 f 변수에 할당하고, 이를 read 함수로 읽어 들여 readFile 변수에 바인딩합니다.
with open('poem1.txt', encoding='UTF8') as f :
readFile = f.read()
With 키워드를 사용하면 파일을 열고 나서 다시 닫지 않아도 알아서 처리해 주어 편리합니다.
텍스트를 읽어 들인 변수를 음성 파일로 저장하려면 어떻게 하나요?
우선 gTTS함수를 사용하여 텍스트를 음성으로 변환하여 tts 변수에 할당합니다.
tts = gTTS(text=readFile, lang='ko')
텍스트를 지정하고, 언어를 한국어로 정해줍니다.
Save함수를 통해 mp3 파일로 저장합니다.
tts.save("myPoem1.mp3")