반응형

파이썬을 설치하여 실행하는데 가장 기본적인 pip 가 동작하지 않을 때, 환경변수가 제대로 입력되지 않아서이다.

 

1. 시작 - 검색 "환경" (또는 영문버전 "env")  - 시스템 환경변수 편집

2. 환경변수 클릭

반응형

3. 하단의 시스템환경변수의 Path를 더블클릭하여 편집모드

4. Python.exe 실행 경로, Scripts 경로를 넣어주면 된다.

 

그리고나서 열었던 cmd 창은 모두 닫고, 다시 cmd를 실행시키면 이제 pip 명령을 듣는다.

 

반응형
반응형

파이썬은 이게 될까? 하는 것들이 왠만하면 다 된다.

일단 시도해보고 되면 진행 안되면(예외가 발생하면) 이렇게 해봐라 ~ 이런 시도가 가능하다.

 

그 구문을 try, except 구문이 있다.

아래 예를 보면 된다. 유저에게 분자값과 분모값을 입력 받고 나눗셈을 하는 코드이다.

# 예외처리

try:
    number1 = eval(input("분자입력: "))
    number2 = eval(input("분모입력: "))
    division = number1 / number2
    print("계산된 값은: %.2f 입니다." %division)

except ZeroDivisionError:
    print("0으로 나누면 안됨")

else:
    print("정상 출력")

finally:
    print("마지막을 출력")

값을 제대로 입력했을 때
분모를 0으로 나누었을 때

특정 구문에 에러가 발생할 것으로 예상되는 쪽에 except 문을 쓰고, 해당 에러 코드를 쓰면 예외가 발생했을 때 우회가 가능하다.

 

파이썬에서는 나눗셈에 0으로 나누면 "ZeroDivisionError" 가 발생한다.

이를 except문에 위 발생한 에러코드를 쓰고, 발생했을 때 우회할 코드를 입력하면, Except 문에 있는 코드가 실행된다.

만약 에러를 무시하고 진행하고픈 경우 사용!

 

반응형
반응형

파이썬 튜플(tuple)을 파악하기 위한 샘플 코드이다.

파이썬에서 주로 튜플과 비교하는 것은 리스트인데, 리스트는 내부의 값을 다이나믹하게 변경 수정 삭제 등등이 가능하다.

반면에 튜플 처음 선언한 값을 유지하는것에 있어 리스트와 다르다.

둘 공통점은 인덱싱이 간편하다. 아래 코드를 실행시켜보면 리스트와 동일한 인덱싱을 할 수 있다.

'''튜플 자료형 파악하기 '''
# 튜플은 리스트와 다르게 값을 변경 할 수 없다.


number = (1,2,3,4,5,6,7)  # 튜플은 선언시 괄호를 () 으로 쓴다.
print(number[4])          # 튜플 내 4번째 출력
print(number[-3])         # 뒤에서 3번째 출력

'''number[2] = 9  # 에러발생, 튜플은 값을 변경 못함'''
print(number[2:4])      # 2번 인덱스부터 3번 인덱스까지만 출력, (4번은 안옴)


# 튜플 믹스형.

tuplemix = ("one","two","three",(1,2,3,4,5,6))
print(tuplemix)
print(tuplemix[3][4])   # 튜플 내 튜플에 접근하여 인덱스 출력

코드 실행 결과 (인덱싱)

 

만약 주석친 number[2] = 9를 실행시켜보면, 즉 3번째 인자를 9로 변경을 시도하려하면 에러를 일으킴을 알 수 있다.

튜플을 수정하려하면 위와같은 에러를 맛볼 수 있다.

 

 

 

반응형
반응형

파이썬에서 가장 많이 쓰기고 효율적으로 사용할 수 있는 list의 예제들이다.

결과를 보고 어떤식으로 동작하는지 확인하여 사용한다.

 

1. 두 리스트를 하나의 리스트로 합치기

2. 리스트를 *(곱하기) 하여 반복추가하기

3. 배열의 일부 위치에 다른 배열값으로 교체하기

4. 배열의 끝에 값 추가하기

5. 배열 내부 값 지우고 땡겨오기

6. 배열 역순배치하기

7. 일부 index를 찾아 조작하기

8. sort함수 사용하여 정렬하기

''' 리스트 다루기 '''

# 리스트는 왼쪽에서는 0부터 세고, 오른쪽부터는 -1으로 센다.

char = ['a','b','c','d']
string = ["one","two","three"]
ch_st = char + string

print(ch_st)        # character와 string을 합칠 수 있다. 한배열로.
print(char * 3)     # a,b,c,d 와 같은 character를 뒤에 3배로 배열함.

ch_st[0:3] = [0,1,2,3]  # 배열의 0~3자리에 숫자를 넣어
print(ch_st)

ch_st.append(30)    # 배열의 끝에 ()의 값을 넣어준다.
print(ch_st)

del ch_st[7]         # 7번째 배열의 값을 지운다.
print(ch_st)        # 값을 지우면 맨 뒤에 있는 값을 앞으로 땡겨온다.

ch_st.reverse()      # 역순배치
print(ch_st)

print('\n') #개행

# 인덱스 값 추가하기.  insert(인덱싱,값) 함수.
test_list = [0,1,2,3,4]
test_list.insert(1,'damn')  # 인덱스값 1앞에 'damn'을 삽입하라.
print(test_list)

# 인덱스 값 순서대로 정렬하기.  sort() 함수.
test = [5,1,2,3,9,8]
test.sort()
print(test)

(결과)

 

 

 

 

반응형
반응형

파이썬 코드가 예상한데로 잘 작동하면 좋지만, 때로는 어떤 로직적인 실수로 무한루프에 빠져 시스템이 먹통이 되는 경우가 발생 할 수 있다.

 

그 경우에는 if문을 잘 활용해서 특정 코드가 들어왔을 때 먹통이 되는 루프를 빠져나갈 수 있도록 하면 좋다.

아래 코드는 유저에게 정수만 입력을 받고, 숫자 9가 들어왔을 때 해당 무한루프를 빠져나갈 수 있도록 한다.

#무한루프 상태 방지 (메모리 영역을 잠식하여 시스템 한계 봉착 예방)

EventExt = 0

while True:             #C언어 While(1) 이랑 같음. 무한루프

    print("항상 상태를 감시하는 무한 루프")
    EventExt = int(input("이벤트용 정수를 넣어라"))

    if (EventExt == 9):
        print("무한루프 탈출")
        break

 

(주석 처리했을 때)

어떤 값을 입력해도 해당 코드를 빠져나가지 못한다. 무한루프가 반복된다.

 

루프를 탈출 할 수 있는 예외 코드.

(if문의 주석을 해제 할때)

 

 

반응형
반응형

아래 코드는 원의 크기를 구하는 식이다.

유저가 반지름 값을 직접 입력하면 원의 크기가 구해진다.

 

input('출력명') 함수는 유저에게 값을 입력받는 함수이다.

 

radius = int (input('반지름:'))
pi = 3.14
area = pi * radius * radius
print(area)

 

(결과 테스트)

 1. 유저가 입력

 2. 결과 출력

반응형
반응형

 

파일을 열고 한줄씩 읽기.

 

현재 경로에서 abc.txt 파일을 read모드로 열고 해당 instance를 print하면 한줄씩 프린트할 수 있다.

#파일 불러와서 읽기.

testFile = open('.\\abc.txt','r')  # 'r' read의 약자, 'rb' read binary 약자 (그림같은 이미지 파일 읽을때)
readFile = testFile.readline()
print(readFile)

readFile = testFile.readline()
print(readFile)

(결과)

 

 

기존의 파일을 열고 한줄 추가하기.

 

현재 경로에서 abc.txt 파일을 add 모드로 열고 해당 write로 한줄 추가한다.

#파일에 추가하기. (문자열을 추가하는 예제)
testFile = open('.\\abc.txt','a')  # 'a' 문자열 추가 약자
testFile.write('\n 대한민국.')
testFile.close()

(결과) 맨 아랫줄에 "대한민국." 이 생겼다.

반응형

 

 

새로운 파일을 생성하고 내부에 글 추가하기.

 

현재 경로에서 abc1.txt 파일을 생성 시키고 "쓰기테스트"라고 쓴다.

#파일 생성해 새로 쓰기
testFile1 = open('C:\\abc1.txt','w') # w: write 쓴다
testFile1.write('쓰기테스트')
testFile1.close()

(결과) 새로운 파일 abc1.txt 가 생성되고, 내부에 "쓰기테스트"라고 쓰여있다.

 

 

그림 파일을 읽기.

 

그림은 결국 bit의 집합이다. 그림파일의 모든 bit값들을 불러와 변수에 저장할 수 있다.

#그림 파일 읽기

testFile = open('.\\0.jpg','rb')
readFile = testFile.readline()
print(readFile)

(결과) 비트값을 읽어서 출력.

 

<파일을 폴더에 복사 및 파일 이동관련은 아래 참고>

https://ansan-survivor.tistory.com/917

 

[python] 파이썬 파일 복사, 폴더에 복사, 파일 이동

아래 코드는 text.txt 파일을 복사 및 폴더에 복사, 이동 코드이다. 절대경로 사용 및 상대경로 사용 import shutil ############## 복사 ####################### # 현재 디렉터리에서 파일 복사하기 후 다른 폴..

ansan-survivor.tistory.com

 

반응형
반응형

 

무한루프  while 함수

 

while()문은 무한루프이며, ( )내의 조건이 만족할 때까지 영원히 돈다.

sleep함수는 time라이브러리에 내장된 함수로 괄호에 초단위를 넣는다. 시스템 지연기능

'''
    sleep() 함수로 1초간 지연.
    while문으로 5번 반복 print문 반복
'''

import time

loopCount = 0

while(loopCount < 5):
    print("반복문을 처리하는 while 예약어가 필요하다.")
    time.sleep(1)
    loopCount = loopCount + 1

(결과)

 

 

for 함수, 

 

반복한수로 괄호 내 조건이 만족할 때까지 돈다.

'''
    sleep() 함수로 1초간 지연.
    
    for(초기값,마지막값,증분값)
    초기값이 증분값만큼 증가하여 마지막 값에 도달 할 때 끝남.
    증분값은 옵션으로 입력을 하지 않을시 1이 default
    
'''

import time

loopCount = 0

for loopCount1 in range(0, 10, 2):
    print(time.time())
    print(loopCount1)
    time.sleep(1)

(결과)

 

아래는 해당 코드가 시작부터 끝까지 총 걸린시간 측정 예제

# 파이썬 언어로 작성한 알고리즘의 성능분석을 위해
# 실행시간을 측정 예제.

loopCount = 0
startPoint = time.time()

while (loopCount < 15 ):
    print("반복문 처리하는 while 예약어 필요")
    loopCount = loopCount + 1

finishPoint = time.time()

print('\n',"처리시간은: ",finishPoint - startPoint, "초 입니다.")

 

<시스템의 무한루프에 빠지는 것을 방지하기 위한 예외처리>

https://ansan-survivor.tistory.com/929

 

[Python] 무한루프에 빠졌을 때 빠져나갈 수 있는 예외처리 만들기

파이썬 코드가 예상한데로 잘 작동하면 좋지만, 때로는 어떤 로직적인 실수로 무한루프에 빠져 시스템이 먹통이 되는 경우가 발생 할 수 있다. 그 경우에는 if문을 잘 활용해서 특정 코드가 들어

ansan-survivor.tistory.com

 

반응형
12

+ Recent posts