반응형
반응형

변수는 프로그래밍에서 "하나의 데이터(숫자, 문자등)를 저장할 수 있는 메모리 공간"으로, 데이터 타입에 따라 정수, 소수, 문자등을 저장할 수 있다.

변수의 이름을 정의함에 있어 일반적인 룰은 아래와 같다. 

- 파이썬에서 예약어는 사용할 수 없다.

- 변수는 하나의 문자(a letter)나 밑줄(underscore) 시작해야 한다. 

- 변수의 두번째 문자부터는 문자(letter), 숫자(number) 또는 밑줄(underscore)를 사용할 수 있다. 

- 변수는 대, 소문자을 구분한다. 

- 변수명의 타입은 값에 따라 변화한다. 

 

표준 데이터 유형

데이터 유형 할당 구분 아이템 구분 특징
숫자 Number Type      
문자 StringType "" or ''    
셋 Set Type {} , 중복제외, 순서없음
리스트 List Type [] ,  
딕셔너리 Dictionary Type {} , 키와 값으로 분리
튜플 Tuple () , 수정불가

 

 

데이터 형식 변환 (Data Type Conversion)

 

Function Description
int(x) x 값을 정수 타입으로 변환한다.
float(x) x 값을 부동 소수점 타입으로 변환한다.
complex(x) x 값을 복소수 타입으로 변환한다.
str(x) x 값을 문자 타입으로 변환한다.
repr(x) x 값을 표현식 문자 타입으로 변환한다.
eval(str) x 값이 문자 타입인지를 검증한다.
tuple(s) s를 튜플 타입으로 변환한다.
list(s) s 값을 리스트 타입으로 변환한다.
set(s) s 값을 셋 타입으로 변환한다.
dict(d) d 값을 딕셔너리 타입으로 변환한다.
frozenset(s) s 값을 고전 셋 타입으로 변환한다.
chr(x) x 값을 문자 타입으로 변환한다.
ord(x) x 값을 정수 타입으로 변환한다.
hex(x) x 값을 16진수 문자 타입으로 변환한다.
oct(x) x 값을 8진수 문자 타입으로 변환한다.

 

반응형
반응형

죽음을 앞두고 ‘더 일했어야 했는데’라고 말하는 사람은 없다.
그들은 모두 ‘다른 사람들을 좀 더 배려했더라면,
더 많이 사랑하고, 더 마음을 썼어야 했는데’라고,
뒤늦게 깨닫고 후회한다.
- 해롤드 쿠시너(Harold Kushner)


랍비 해롤드 쿠시너의 이어지는 글입니다.
‘인생의 목적은 이기는 것이 아니다. 인생의 목적은 성장하고 나누는 것이다.
인생에서 해온 모든 일들을 되돌아볼 때,
당신은 다른 사람들보다 잘하고 그들을 이긴 순간보다
그들의 삶에 기쁨을 준 순간을 회상하며 더 큰 만족을 얻게 될 것이다.’

반응형
반응형

걸음마를 배우는 영아는
평균적으로 2,368걸음으로 701미터를 걷고
한 시간에 17번 넘어진다. 걷기는 다른 많은
기술의 습득과 마찬가지로 일정한 시간을 두고
자주 다양하게 반복하여 연습할 때 가장 많은
학습 효과가 일어난다. 약 1년의 시간 동안
영유아들은 수천 번 걷고, 수천 번 넘어지는
과정을 통해 실패와 연습에 대한
피드백을 쌓으면서 넘어지는
횟수를 줄인다.


- 셰인 오마라의《걷기의 세계》중에서 -


* 인간이면 누구나
걸음마 배우는 과정을 거칩니다.
수천 번 걷고 수천 번 넘어지고, 다시
수천 번 걷고 수천 번 넘어지고를 거듭하며
성장합니다. 까마득한 일이어서 기억조차 없지만
실패와 연습을 반복하던 시절을 돌이킬 수 있다면,
인생살이도 그다지 두려울 게 없습니다.
넘어져도 다시 일어서면 되니까요.

 

반응형

'아침편지' 카테고리의 다른 글

실수의 순기능  (0) 2022.12.24
수치심  (0) 2022.12.23
'그런 걸 왜 하니'  (0) 2022.12.21
3~4년이 젊어진다  (0) 2022.12.20
호기심 천국  (0) 2022.12.19
반응형

항상 뭔가를 해야 한다는 강박관념을 가진 사람은
아무것도 하지 않는 시간을 과소평가하는 경향이 있다.
하지만 아무것도 하지 않는 시간은 매우 중요하다.
말하자면 일상 속의 꿈꾸는 시간, 일이 정리되고 재편되는 시간과 같다.
항상 일해야 한다는 생각으로 깨어있으려고만 한다면 이런 현상이 벌어질 수 없다.
- 브라이언 아노


윌리엄 제임스는 “열정과 쉴 새 없이 바쁜 생활과 근심은 강함의 징표가 아니다.
이는 나약함과 열악한 환경의 징표다”라고 말했습니다.
일을 하면서 휴식 시간을 확실하게 가져야 하는 이유는,
특정 방향으로 내달릴 가속도를 얻기 위함이며,
그래야 또 다른 가속도가 저절로 생겨날 수 있기 때문입니다.
휴식은 절대 필요한 기술입니다.

반응형
반응형

엄마는
내가 하는 모든 것을 말렸다.
인형놀이를 해도, 친구들에게 편지를 써도,
그림을 그려도, 심지어 책 읽는 것도 못하게 했다.
지금도 뭘 하고 싶을 때마다 엄마 눈치부터 보게 된다.
엄마가 어떻게 생각할까, 엄마가 핀잔 주지 않을까,
무시하지 않을까. 연애를 하고 결혼을 하고
이사를 할 때도, 대학원에 진학할 때도
엄마는 늘 "그런 걸 왜 하냐"며 못마땅해했다.
그래서 가끔씩 엄마에게서 멀리,
멀리 떠나고 싶었다.


- 박지현의《바람이 분다. 걸어야겠다》중에서 -


* 엄마의 말 한마디는
자녀들에게 큰 영향을 미칩니다.
긍정의 말, 응원하는 말이면 다행입니다.
부정의 말, 나무라고 꾸중하고 무시하는 말이면
자칫 평생 트라우마로 남습니다. 심지어 엄마로부터
멀리 떠나고 싶다는 생각까지 하게 합니다. 말은
에너지입니다. "그런 걸 왜 하느냐"라는 질문은
모든 에너지의 원천부터 차단하는,
절대 해서는 안 되는 말입니다.    

반응형

'아침편지' 카테고리의 다른 글

수치심  (0) 2022.12.23
걸음마  (0) 2022.12.22
3~4년이 젊어진다  (0) 2022.12.20
호기심 천국  (0) 2022.12.19
불안할 때는 어떻게 하죠?  (0) 2022.12.19
반응형

[python] 환경변수 관련.  os, sys

import os
import sys
 


print(" os 환경변수 environ \n")
print(" * 모든 시스템 환경 변수 ") 
print(" os.environ()  : ", os.environ)

print('')
for key, value in os.environ.items():
    print('{}: {}'.format(key, value))


print(" * 특정 시스템 환경 변수 ")    
print(" os.environ('JAVA_HOME')  : ", os.environ['JAVA_HOME'])

# 존재하지 않는 환경 변수를 가져오면, 에러는 발생하지 않고 None이 리턴
result = os.environ.get('NOT_EXISTS')
print(result)

print(" * 현재 코드가 실행되는 디렉토리까지 문자열 ")
print(" os.getcwd() : ", os.getcwd())

print(" * 현재 실행 파이썬 스크립트의 PID 출력 ")
print(" os.getpid() : ",  os.getpid() )


print(" * 현재 워킹 디렉토리 변경  ")
print(" os.chdir() : " )
print(" import os ")
print(" print(os.getcwd()) #/Users/projects/workspace ")
print(" os.chdir( os.getcwd()+'/scripts/src' ) ")
print(" print(os.getcwd()) #/Users/projects/workspace/scripts/src ")

print(" * 디렉토리 만들기 : mkdir(path[,mode]) ")
#_result = os.mkdir("test_dir")
#print(_result)


print(" * path에 존재하는 파일과 디렉토리들의 리스트 반환 ")
_result = os.listdir(".")
print(" os.listdir('.') : ",  _result )
print('')
for x in _result:
    print('{}'.format(x))

# 인자로 전달된 디렉토리를 재귀적 생성
#  - 이미 **디렉토리가 생성**되어 있는 경우나 **권한이 없어 생성할 수 없는 경우**는 **예외**발생
print(" * 디렉토리 만들기 : makedirs(path[,mode]) 이미 **디렉토리가 생성**되어 있는 경우나 **권한이 없어 생성할 수 없는 경우**는 **예외**발생")
#_result = os.makedirs("test_dir")


print(" * 하위 폴더를 for문으로 탐색 : os.walk(path) ", " 기본적으로 top-down임. bottom-up으로 하고 싶다면 ")

if __name__ == "__main__":
    root_dir = "./"
    for (root, dirs, files) in os.walk(root_dir):
        print("root : " + root)
        if len(dirs) > 0:
            for dir_name in dirs:
                print("dir: " + dir_name)

        if len(files) > 0:
            for file_name in files:
                print("file: " + file_name)

os.walk(root_dir, topdown=False)  #bottom-up으로 하고 싶다면,

print(" * 'A'+'/'+'B' 로 문자열을 return 한다. : os.path.join('A','B) ")

print(" os.path.isdir(): directory인가? ")
print(os.getcwd(), " ==> " , os.path.isdir(os.getcwd()) )

print(" os.path.abspath(path): abs 경로 반환  ")
print(" 현재 ./sketchpy_001.py 파일의 절대경로 : ", os.path.abspath("./sketchpy_001.py"))


print(" os.path.dirname(path) : 경로의 제일 뒤 빼고 반환  ")

print(" os.path.exists(path) : 지정한 path에 파일, 디렉토리가 존재하는지 유(True)/무(False) 리턴  ")
print("os.path.isfile(path)  ")
print("os.path.isdir(path)  ")
print("os.path.isabs()  ")
print("")

import glob

print( " glob.glob(os.getcwd()) : ls와 유사한 기능을한다, 정규식 사용 가능 (* ? [0-9])" )
print(" (workspace) $ ls = glob.glob(os.getcwd()+'/*'))  ")
print(" list로 return  ")
print( glob.glob(os.getcwd()))
print( glob.glob(os.getcwd() + "/*"))

print( "" )
print(" glob.iglob(path)  ")
print("    - glob.glob와 다르게 iterator로 반환  ")
print("    - list로 담지 않기 때문에 결과가 매우 많다면 유용함  ")
for i in glob.iglob(os.getcwd()+'/*'):
    print(i)
반응형

+ Recent posts