Python을 anaconda의 jupyter lab을 이용해 실행
1. cmd창(또는 Windows PowerShell) 실행
2. Python 파일이 있는 경로로 이동 ex) cd 경로주소
3. conda activate
4. jupyter lab(또는 notebook)
윈도우 화면이 꺼질 시 -> localhost:8888 (프롬프트 창은 꺼지면 안됨.)
유용한 단축키 또는 명령어
x -> cut and paste
x로 삭제한 셀을 v키로 다른 위치의 셀 아래에 재생성
m -> markdown
y -> code
'안녕하세요.'를 print로 씌우려면 '안녕하세요'를 드래그하고 괄호를 누르면 print()안에 들어간다.
커서 위치 ctrl키를 누르면 중복 가능
변수와 함수/연산자
변수(value)란? 값을 저장하는 메모리 공간
변수 하나에 값은 하나
식별자 규칙 : 문자를 사용하여 변수 선언, 숫자는 두번째 문자부터 가능, 특수 문자는 _(underscore)만 가능, 예약어 사용 불가 ex) False, True
글자 수는 상관 없다.
# name 변수 생성, 문자열 : "홍길동"을 저장. -> 변수에 값을 저장하는 것을 할당,대입(assign)한다 라고 한다.
# 변수를 생성하고 처음 값을 대입 -> 초기화
name = "홍길동"
age = 30
print(name) # name 값을 출력
print(age) # age 값을 출력
print(age + 2)
age = 40 # 기존 변수에 값을 할당 -> 변경
print(name)
print(age)
# 식별자 규칙
이름 = "유재석" # 보통 변수의 이름은 영어로 한다.
print(이름)
name1 = "홍길동"
name2 = "유재석"
name3 = "박명수"
print(name1)
print(name2)
print(name3)
# 1name = "이름" # 변수명 -> 숫자는 두번째 자리부터 가능
# member&id = "abc" # 특수문자는 _(underscore)만 가능
member_id = "abcd"
# False = "aaaa" # 예약어는 변수명 사용 불가.
print(member_id) # 대소문자 구분.
literal value : 표현식 자체가 값인 경우 ex) "홍길동", 20.45, 10
a=10, 5+5 와 같은 경우는 literal value가 아니다. <- 처리과정을 거치기 때문
변수 이름 관례(스네이크 표기법) : 두 개의 단어 조합시 단어 사이에 _(underscore)사용, 모든 글자는 소문자로
카멜 표기법 : 두 개의 단어 조합시 두번째 단어의 첫 글자는 대문자
# 스네이크 표기법 - Python
member_name = "홍길동"
member_age = 30
member_address = "서울"
# 카멜 표기법 - Java
memberName = "홍길동"
memberAge = 30
memberAddress = "서울"
값 -> data type 숫자 - 정수(int) -> 0x - 16진수, 0O - 8진수, 실수(float) -> 지수 ex) 3e5 (3 * 10 ** 5)
논리 -> True, False 비교 ex) ==, !=, <, > ..., 논리 ex) and(&), or(|)
value = int(input()) # 사용자에게 value 입력값 받기
if (value % 3) == 0: # value를 3으로 나누었을때의 나머지가 0이다.
print("3의 배수입니다.")
else: # if 조건문 외의 조건
print("3의 배수가 아닙니다.")
변수 선언 및 초기화 : 생성 -> 정의(define)
변수명 = 값 , 변수명만 써서는 안된다. 변수명과 값이 필수. -> 변수명만 쓰고 싶다면 값을 None으로
None 값 : 아무 것도 의미하지 않는 값 (0이 아님)
# 변수를 먼저 선언하고 값은 나중에 할당하려고 할 때.
tall = None
여러 변수에 동일 한 값 대입 ex) a = b = c = 30
여러 변수에 다른 값 대입(tuple 대입) ex) a, b, c = 10, 20, 30
result = 1 + 10 + 100 # 처리결과를 대입
print(result)
a = b = c = d = 100
print(a, b, c, d)
a, b = 500, 1000
print(a, b)
# 튜플 대입 (tuple assignment)
name, age, address = "홍길동", 25, "서울"
print(name, age, address)
대입 연산자 : 변수의 값을 그 변수와 다른 값을 연산한 결과로 변경 ex) x += 1 (x = x + 1)
num = 10
num += 5 # num = num + 5
num *= 2 # num = num * 2
print(num)
변수를 메모리에서 제거 : del 변수명
del num # 메모리에서 변수 num을 제거
print(num) # 제거한 상태에서 print 실행시 NameError 발생, NameError -> 없는 변수, 함수를 사용할 때 발생한다.
조건 연산자 : True일 때 결과값 if 조건식 else False일때 결과값
조건식이 True이면 앞의 값을 False이면 뒤의 값을 연산결과로 반환한다.
False를 의미하는 것 - 숫자(0), 문자(""), None ...
# num이 0 이상이면 "양수"를 num이 0미만이면 "음수"를 출력
result = int(input("정수:"))
if result >= 0:
print("양수")
else:
print("음수")
문자열 : 기계어는 0과 1로 표시한다(2진수) bool은 True -> 1, False -> 0으로 변환이 가능하다
문자 'a'는 어떻게 표현할까? 2진수 변환을 위해 문자코드(아스키 코드, Uni-code)를 활용하여 변환이 가능해졌다.
아스키 코드 -> 영문 변환, 8bit 지원 2**8 -> 256
Uni-code -> 영문 외에도 많은 언어 지원, 16bit 지원 2**16 -> 약 35000, 유니코드 기반 -> UTF-8
문자열은 작은 따옴표 또는 큰 따옴표로 감싼다.
여러줄 문자열(Multiline string)은 3개 짜리 작은따옴표 또는 큰따옴표로 감싼다.
# \n를 쓸 일이 너무 많을 때 """ ~~~~ """ 큰 따옴표 3개 사용
# 기능 설명 할 때 사용(doc string)
s2 = """안녕하세요.
반갑습니다.
저는 홍길동입니다.
나이는 20세입니다."""
print(s2)
Escape 문자 : 키보드에는 있지만 글자로 표현할 수 없는 문자를 표현할 때 사용 ex) \n, \t , \', \" ... 반대로 \를 표현하고 싶다면 \\를 사용
prefix : r-string -> 문자 그대로(raw) ex) r"c:\test\example\a.txt"처럼 주소를 입력할 경우
f-string -> 문자열 앞에 접두어 f 사용 ex) f"이름 : {name}, 나이 : {age} ..."
# Escape 문자열
print('a\tb')
print(1, 2, 3 ,4 ,5 ,6 ,7, sep='\t')
print("가\n나\n다")
print("123\b")
print('a"b')
print("a\"b")
print('c:\\test\\ncount\best.txt')
print('--------------')
print('c:\\test\\ncount\\best.txt')
print(r'c:\test\ncount\best.txt') # r-string : escape 문자 사용하지 않겠다.
# 가장 많이 쓰고 편한 방법. f-string
info = f"이름: {name}, 나이: {age}, 키: {tall}cm, 몸무게: {weight}kg"
print(info)
in, not in + 문자열 A in 문자열 B -> in : 문자열 A가 문자열 B에 있으면 True, 없으면 False
not in : 문자열 A가 문자열 B에 있으면 False, 없으면 True
address = "서울시 금천구 두산동"
print("서울" in address, "서울" not in address)
# 결과값은 True False
문자열
index ex) a = "index", a[0] = "i", 문자열의 n번째 문자를 조회, 문자열 값 안의 일부를 변경할 수 없다.(immutable)
slicing ex) a = "index", a[0:5:2] = idx, 변수[시작index:끝index:간격]
a = "index"
print(a[0])
print(a[:4])
# i <- 결과값
# inde
s2 = "0123456789"
print(s2[3:9:2])
print(s2[:8:2]) # 시작 생략
print(s2[3::2]) # 끝 생략
print(s2[3:8]) # 3 ~ 7 간격생략 -> defalut 1
# 2번째부터 뒤에서 3번째까지 조회
print(s2[1:-3])
# 역순 조회 : (시작 > 종료, 간격 : 음수)
print(s2[7:2:-1]) # 7 ~ 2 - (-1)
함수 - 범용, 메소드 - 특정 타입만의 기능
ex) "abc".upper() -> 소문자를 대문자로 변환, "abc"는 피연산자. , len(피연산자)
s6 = "abcdeABCDE"
print(s6.upper()) # 소문자를 모두 대문자로 변경
print(s6.lower()) # 대문자 -> 소문자
동적타입 언어(Python): 변수가 가질 수 있는 값의 타입을 고정하지 않는다.
age = 20
age = "스무살"
age = True
type(age)
# bool <- 결과값, 값의 타입이 동적으로 변한다.
그래서 헷갈리지 않도록 타입 힌트(Type Hint)를 명시하기도 한다.
# 파이썬의 타입 힌트
age:int = 10 # 변수명:타입 -> 변수의 타입 힌트 but 강제는 아님
print(age)
age = "나이" # 가능
print(age)'Data_Analysis_Track_33 > Python' 카테고리의 다른 글
| Python_04-2(함수(First Class Citizen)) (0) | 2023.08.19 |
|---|---|
| Python_04(함수) (2) | 2023.08.18 |
| Python_03(제어문_컴프리헨션) (0) | 2023.08.18 |
| Python_02(자료구조) (0) | 2023.08.17 |
| Python_01-2(Format string (형식문자열) 생성) (0) | 2023.08.17 |