일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- webhacking
- 국정원
- Los
- suninatas
- HTML
- 화학물질불법유통온라인감시단
- UKPT
- 불법유통
- 12기
- 정보보안
- MITRE ATT&CK
- 연구모임
- codeup
- 화학물질안전원
- 국가기록원
- 불법유통근절
- nurisec
- 국가정보원
- 웹 해킹 입문
- 기타정보
- 도구모음
- 파이썬
- UKPT level
- PHP
- 화학물질
- 대외활동
- Service
- 프로젝트
- 경기팀
- 여행
- Today
- Total
agencies
파이썬 프로그래밍 (터틀그래픽) 본문
[Python]-피아노 건반 연주
파이썬 피아노 연주 예제
import turtle as t
from winsound import Beep
freq = {'c4':262, 'd4':294, 'e4':330, 'f4':349,
'g4':392, 'a4':440, 'b4':494, 'c5':523,}
def play_freq(n):
Beep(freq[n], 300)
def key_1(): play_freq('c4')
def key_2(): play_freq('d4')
def key_3(): play_freq('e4')
def key_4(): play_freq('f4')
def key_5(): play_freq('g4')
def key_6(): play_freq('a4')
def key_7(): play_freq('b4')
def key_8(): play_freq('c5')
t.setup(111, 111)
s = t.Screen()
s.onkey(key_1, '1')
s.onkey(key_2, '2')
s.onkey(key_3, '3')
s.onkey(key_4, '4')
s.onkey(key_5, '5')
s.onkey(key_6, '6')
s.onkey(key_7, '7')
s.onkey(key_8, '8')
s.listen()
* onkey()는 onkey(함수, 키)로 구성되어 있으며,
키에 해당하는 버튼이 눌렸을 경우 함수가 호출됩니다.
* listen()은 사용자의 입력을 기다립니다.
* 참고자료 (옥타브 및 음계별 표준 주파수 표)
[Python]-터틀 그래픽 / 별찍기 / DNA 염기서열 / 자유낙하
터틀 그래픽은 1966년 프로그래밍 언어인 Logo에서 처음 소개된 컴퓨터 그래픽 방식이며,
꼬리에 잉크가 묻은 거북이를 종이에 올려놓고 리모컨으로 조작하는 방식으로 동작합니다.
터틀 그래픽은 import에 의해 turtle 모듈을 불러와 사용할 수 있습니다.
turtle.shape('turtle')
위의 코드는 거북이가 캔버스에 나타나도록 하는 명령어입니다.
* 모양 종류
classic | arrow | turtle | circle | square | triangle |
터틀 그래픽 모양 변경 예제
import turtle
turtle.shape('classic')
turtle.forward(50)
turtle.shape('arrow')
turtle.forward(50)
turtle.shape('turtle')
turtle.forward(50)
turtle.shape('circle')
turtle.forward(50)
turtle.shape('square')
turtle.forward(50)
turtle.shape('triangle')
turtle.forward(50)
* forward는 전진합니다 약어로는 fd입니다.
터틀 그래픽 선 그리기 예제
import turtle as t
t.fd(100)
t.right(90)
t.fd(100)
t.rt(90)
t.fd(100)
t.rt(90)
t.fd(200)
t.left(90)
t.fd(100)
t.lt(90)
t.fd(100)
t.lt(90)
t.fd(100)
t.hideturtle()
* right는 오른쪽으로 방향을 틉니다 약어로는 rt입니다.
* left는 왼쪽으로 방향을 틉니다 약어로는 lt입니다.
* hideturtle은 화면상에서 표시가 되지 않도록 합니다.
* backward는 뒤로 이동합니다 약어로는 bk입니다.
터틀 그래픽 circle 예제
import turtle as t
t.circle(100, steps=3)
t.reset()
t.circle(100, steps=4)
t.reset()
t.circle(100, steps=5)
t.reset()
t.circle(100, steps=6)
t.reset()
t.circle(100, steps=7)
t.reset()
t.circle(100, steps=8)
t.reset()
t.circle(100, steps=9)
t.reset()
t.circle(100, steps=10)
* reset은 초기화를 의미합니다.
* circle은 원을 그립니다.
* circle steps는 단계수를 의미합니다.
중첩 반복문을 사용하여 별을 출력하는 예제입니다.
for i in range(0,5):
for j in range(0,5):
print('*',end='')
print()
* end=''는 print의 함수 옵션으로 줄바꿈을 하지 않게 된다.
* 반복문은 for 변수 in 리스트 형식으로 사용됩니다.
* range함수는 start, stop, step(기본값:1)으로 구성됩니다.
ex) range(0,10) : 0부터 9까지 1씩 증가 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
ex) range(2,10,2) : 2부터 8까지 2씩 증가 2, 4, 6, 8
ex) range(10,5,-1) : 10부터 5까지 1씩 감소 10, 9, 8, 7, 6
for i in range(1,6):
for j in range(0,i):
print('*',end='')
print()
* print()는 줄바꿈을 의미합니다.
for i in range(1,6):
for j in range(6,i,-1):
print('*',end='')
print()
for i in range(1,6):
for j in range(5,i,-1):
print(' ',end='')
for k in range(0,i):
print('*',end='')
print()
for i in range(1,6):
for j in range(1,i):
print(' ',end='')
for k in range(6,i,-1):
print('*',end='')
print()
for i in range(1,6):
for j in range(5,i,-1):
print(' ',end='')
for k in range(0,i*2-1):
print('*',end='')
print()
for i in range(1,6):
for j in range(1,i):
print(' ',end='')
for k in range(10,i*2-1,-1):
print('*',end='')
print()
유전자는 생물의 유전형질을 결정하는 단백질을 지정하는 기본적인 단위입니다.
지구상의 모든 생명체들은 염기서열을 통해 단백질을 지정하는 원리를 따릅니다.
DNA 염기서열은 4종류의 염기 A(아데닌), T(티민), G(구아닌), C(시토신)으로 이루어집니다.
이러한 염기들의 배치 순서에 따라 그 생명의 종과 생물학적 특성 종간의 연관성이 결정됩니다.
방식 | 변경 전 | 변경 후 |
상보적 | AATTGGCC | TTAACCGG |
역순 | AATTGGCC | CCGGTTAA |
상보적 역순 | AATTGGCC | GGCCAATT |
DNA sequence 예제
def A(seq):
dic = {'A':'T', 'T':'A', 'C':'G', 'G':'C'}
seq_ = ''
for i in seq:
seq_ = seq_ + dic[i]
return seq_
def B(seq):
seq_ = ''.join(reversed(seq))
return seq_
def C(seq):
seq_ = A(seq)
seq__ = B(seq_)
return seq__
src = input('DNA sequence : ')
print('상보적 : %s\n역순 : %s\n상보적 역순 : %s'%(A(src), B(src), C(src)))
* def는 함수를 생성할때 사용합니다.
* ''.join은 문자열을 합칠때 사용합니다.
* reversed는 문자열을 거꾸로 출력합니다.
물체가 떨어지기 시작하면 운동을 시작하는데 이 때 갖는 에너지를 운동에너지라고 합니다.
이러한 운동에너지를 갖는 운동을 자유 낙하 운동이라고 합니다.
물체는 바람이나 다른 힘의 영향을 고려하지 않을 경우,
중력으로 인해 1초에 약 9.8m/s씩 속도가 증가합니다.
자유낙하 예제
import turtle as t
def draw_pos(x, y):
t.clear()
t.setpos(x,y)
t.stamp()
hl = -(t.window_height() / 2)
tm = 0
while True:
d = (9.8 * tm**2) / 2
ny = y - int(d)
if ny > hl:
t.goto(x, ny)
t.stamp()
tm = tm + 0.3
else: break
t.setup(600,600)
t.shape('circle')
t.penup()
t.shapesize(0.3)
s = t.Screen()
s.onscreenclick(draw_pos)
s.listen()
* import turtle as t에서 이름이 긴 모듈이나 계층구조가 복잡한 모듈의 경우
'import 모듈명 as 별명' 형삭으로 모듈명에 별명을 붙일 경우 간단하게 모듈을 호출할 수 있다.
* t.clear()는 이전에 표시한 흔적을 모두 지웁니다.
* setpos()는 터틀의 위치를 x, y좌표로 이동합니다.
* t.stamp()는 흔적을 표시합니다.
* hl은 스크린 세로의 길이에서 나누기 2를 연산한 후 음수로 변환합니다.
tm은 시간변수, d는 이동거리, ny는 클릭한 y좌표에서 이동거리를 뺀 결과
* ny > hl (ny값이 스크린 하단에 도달하지 않았다면 터틀의 위치를 x, ny로 이동합니다)
* t.shapesize()로 가로, 세로, 테두리를 설정합니다.
* onscreenclick()은 스크린에서 클릭이 발생하면 콜백 함수를 호출합니다.
* listen()은 스크린에서 이벤트를 확인합니다.
[Python]-시작하기
파이썬은 '귀도 반 로섬'이 발표한 인터프리티드 언어입니다.
인터프리티드란?
컴파일러를 거쳐서 기계어로 변환되지 않고 바로 실행되는 프로그래밍 언어를 뜻합니다.
반대로 컴파일 언어는 반드시 기계어로 컴파일 되어야만 실행시킬 수 있는 언어를 뜻합니다.
다른 프로그래밍 언어에 비해 파이썬 언어의 문법이 사람이 사용하는 언어와 비슷하기 때문에
누구나 쉽게 흥미를 붙이고 기초를 다지는 데 유용한 언어로 알려져 있습니다.
(TIOBE Index for August 2022) https://www.tiobe.com/tiobe-index/
파이썬은 [1] 홈페이지에서 직접 다운로드 받을 수 있으며,
또는 [2] 2개의 파일로 분할된 첨부파일을 통해 설치할 수 있습니다.
[1] 파이썬 다운로드 https://www.python.org/
파이썬을 설치하고 나면 위와같이, IDLE가 있는것을 보실 수 있습니다.
IDLE 실행 화면
Hello System!!! 출력 예제
변수를 활용한 출력 예제
* 다음 화면에서는 Traceback 즉 오류가 발생한 것을 확인할 수 있습니다.
숫자와 문자는 함께 결합될 수 없으며, 숫자와 문자가 서로 결합되기 위해서는,
반드시 문자 형태인 숫자를 사용해야 합니다.
str 함수를 이용하여, 숫자가 들어있던 변수 X의 값을 문자로 변경합니다.
이제는 오류가 발생하지 않고, 정상적으로 작업이 실행된 것을 확인할 수 있습니다.
파이썬을 실행시키기 위해서는 두가지 조건이 필요합니다.
1. 파이썬이 설치 되어 있는가?
2. 파일 확장자명이 py로 되어 있는가?
* 파일 확장자를 확인하기 위한 방법
파일 탐색기에서 보기를 누르고, 파일 확장명에 체크하게 되면 확장자를 볼 수 있게 됩니다.
'Ⅰ. 프로그래밍' 카테고리의 다른 글
파이썬 달팽이 배열 값 입력 (0) | 2024.02.18 |
---|---|
리눅스 기초 셸 스크립트 및 명령어 (0) | 2024.02.15 |
파이썬 프로그래밍을 통한 ben.exe 프로그램 제작하기 (0) | 2024.01.29 |
파이썬 프로그래밍 (0) | 2024.01.29 |
파이썬 해킹 입문 (해킹기술 및 개요) (0) | 2024.01.29 |