# 파이썬 문법 / 주석
# - 주석에는 한줄 주석과 여러줄 주석이 있습니다
# 한줄 주석은 기호를
# #으로 씁니다
#
# 여러줄 주석은
'''
여러줄 주석입니다
여러줄 주석입니다
'''
'''
파이썬 변수 : 변수는 데이터 값을 저장하기 위한 컨테이너
- 많은 수여서 변수라고 얘기함
- 변수 선언에 대한 명령어는 없습니다
- 값을 할당하는 순간에 생성됩니다
- 알파벳에서 어떤걸 표기해도 상관없다
- 정의했던 변수값을 출력시키려하면 그 변수값을 써야 됩니다
- 문자열 변수에는 큰따옴표나 작은따옴표를 쓸 수 있다
- 변수에 대소문자를 구분한다
'''
a = 5
b = "geonha"
print(a)
print(b)
a = 4
A = 'Salley'
print(a)
print(A)
# 대소문자를 구분할때는 변수가 2개가 된다(대문자와 소문자는 다르다)
a = 10
a = "숫자10"
print(a)
# 2) 변수 - 여러 값 할당, 변수의 수가 값의 수와 일치하는지 확인
c, x, y, z = "Commit", "Orange", "Banana", "Cherry"
print(c)
print(x)
print(y)
print(z)
# 3) 여러 변수에 대한 하나의 값
# - 여러 변수에 동일한 값을 할당할 수 있습니다
x = y = z = "Orange"
print(x)
print(y)
print(z)
# 4) 변수로 추출
# - 목록, 튜폴등에 값모음이 있는 경우 값을 변수로 추출할 수 있다
fruits = ["사과", "바나나", "체리"] # 후르츠가 3가지 있음
x, y, z = fruits
print(x)
print(y)
print(z)
'''
print() 함수 = 변수를 출력하는데 사용해서 출력변수라 얘기합니다
쉼표로 구분된 여러 변수를 출력합니다
'''
x = '파이썬'
y = '리액트js'
z = 'vue js'
print(x, y, z)
# 연산자를 사용해서 여러 변수를 출력할 수 있습니다
x = '마이네임은 '
y = '이민재 '
z = '입니다!'
print(x + y + z)
# 숫자에 연산자를 쓰시면 그 결과 값이 출력됩니다
x = 5
y = 10
print(x + y)
print(x * y)
print(x - y)
# 스타일이 다른 변수에 대해서 쉼표로 구분
x = 5
y = 'hwang'
print(x, y)
# 4) 전역변수
# - 함수 외부에서 생성된 변수를 전역변수라 합니다
# - 함수 내부와 외부 모두에서 모든 사람이 사용할 수 있습니다
# 함수 = x와 y사이에서 x의 값이 정해지면 거기에 따라 y 값이 정해지는 관계
x = '스타벅스' # 전역 변수의 역할
def myStar():
print("아메리카노가 제일 에스프레소와 가까운 곳은 " + x)
myStar()
# 전역변수와 지역변수를 같이 쓸 경우
x = '어썸'
def myfunc():
global x
x = '판타스틱'
myfunc()
print("파이썬은 " + x + "싱글페이지 입니다")
x = '이디야' # 전역 변수의 역할
def myStar():
x = '스타벅스'
print("아메리카노가 제일 에스프레소와 가까운 곳은 " + x)
myStar()
print('그 다음은 ' + x)
'''
파이썬의 데이터 유형
1) 내장 데이터의 유형
변수는 다른 유형의 데이터를 저장할 수 있으며
다른 유형은 다른 작업을 수행할 수 있습니다\
1-1) 텍스트 유형 : str
1-2) 숫자 유형 : int, float, complex
1-3) 시퀀스 유형 : list, tuple, range
1-4) 매핑 유형 : dict
1-5) 세트 유형 : set,frozenset
1-6) 부울 유형 : bool
1-7) 바이너리 유형 : bytes, bytearray, memoryview
1-8) 없음 유형 : NoneType
'''
# 데이터 유형 가져오기
# type() 함수를 사용하여 모든 객체의 데이터 유형을 가져올 수 있다...
'''
자바스크립트는 객체지향 언어이다
- 기본타입(원시데이터)과 참조타입(객체)으로 나눌 수 있음
- 원시값을 제외한 모든걸 객체라고 합니다
(원시값 : 숫자, 문자열, null, undefined, 불리언)
'''
q = 5
print(type(q))
#문자열
x = "문자열"
print(type(x))
y = 20.5
z = 1j
v = ["사과", "체리"]
w = ("사과", "체리")
print(type(y), type(z), type(v), type(w))
'''
2) 특정 데이터 유형 설정 : 데이터 유형을 지정하려면 다음 생성자 함수를 사용할 수 있습니다.
'''
x = str("hello world")
print(x)
print(type(x))
# 3) 파이썬 숫자 : int, float, complex
x = 1
y = 2.8
z = 1j
v = 123456778900
b = -3255522
# int 또는 정수는 길이가 무제한인 양수 또는 음수 정수
# float : 부동소수점 숫자를 의미(양수, 음수, 거듭제곱도)
# ex)
x = 1.10
y = 1.0
z = -35.59
q = 35e3
w = 12E4
r = -87.7e100
print(type(x), type(y), type(z), type(q), type(w), type(r))
# 난수 : 파이썬에서는 난수를 만들어내는 함수가 따로 존재하지 않지만
# 난수를 만드는데 사용할 수 있는 random() 모듈이 있습니다
import random #import 선언되는 순간 모듈을 불러옴
# 1~9까지의 난수를 표시합니다
print(random.randrange(1,10))
'''
파이썬의 문자열
1) 문자열은 작은 따옴표나 큰 따옴표로 둘러쌓여 있어야 합니다
2) 변수에 문자열을 할당 a = '문자열'
3) 파이썬 장점 html의 pre 태그처럼 쓴대로 나옵니다
4) 문자열을 배열로 표시할 수 있다
5) 자바스크립트는 1부터 10을 갯수로 표현할 때
6) 문자열은 배열이기 때문에 루프를 사용하여 문자열의 문자를 반복할 수 있다
for 라고 되어 있는 반복문을 사용함
Hello, World!
01234567891011
7) len() 함수를 사용하여 문자열의 길이는 확인할 수 있다 문자열의 길이는 = 갯수
8) 문자열을 확인 (in)
9) if 구문을 활용해서 다음 구문을 출력할 수 있다
10) 슬라이싱 구문을 사용하여 문자 범위를 리턴할 수 있다
11) 네거티브 인덱싱 (음수 인덱스를 사용하여 문자열 끝에서 슬라이스를 시작)
"Hello, world!"
(b[:5])
(b[5:])
12) 문자열 수정
upper() : 대문자로 문자열 리턴
lower() : 소문자로 문자열 리턴
strip() : 시작 또는 끝에서의 공백을 제거
replace() : 이미 써져 있는 문자열을 다른 문자열로 치환해주는
split() : 구분 기호(,)를 찾으면 문자열을 하위 문자열로 분할합니다
13) 문자열 연결 : + 연산자를 사용해서 연결
14) 문자열과 숫자를 결합
'''
q = """lorem
1
1
1"""
print(q)
w = "안녕하세요"#[0][1][2][3][4]
print(w[0])
# 반복문
for t in "반복문 반복문":
print(t)
# 문자열의 길이
y = "문자열의 길이"
print(len(y))
# 문자열 확인
confirm = "the best things in life are free!"
print("free" in confirm)
# if 구문 활용(가정법)
txt = "이 문장에 원하는 이라는 단어가 있나요?"
if "원하는는" in txt:
print("맞아요 그런 단어가 있네요")
# 2에서 5까지의 문자 가져오기
u = '안녕하세요!'
print(u[2:5])
u = '안녕하세요!'
print(u[2:])
h = "Hello, world!"
print(h[-5:-2])
# 대문자로
i = "hello, world!"
print(i.upper())
# 소뮨자로
o = "HELLO, WORLD!"
print(o.lower())
# 공백제거 : 앞뒤에 있는 공백을 제거
p = " 공백 입니다 "
print(p.strip())
# 문자열 바꾸기 replace()
s = '트리플에이치 HHH'
print(s.replace('H','A'))
print(s.replace('에이치','코이츠'))
print(s.replace('트리플에이치', '빈스맥마흔'))
# 분할 문자열
d = "분할, 결합, 해체"
print(d.split("/"))
# 문자열 연결
f = '벌써'
g = '마지막'
h = '시간 입니다'
j = f + " " + g + " " + h
print(j)
# # 문자열과 숫자를 결합
# age = "31"
# txt = "저는 본명 이민재 입니다, 제 나이는 " + age
# print(txt)
age = 31
txt = "저는 가명 이건하 입니다, 제 나이는 {} 입니다"
print(txt.format(age))
# 문자열 메서드
# capitalize():첫번째 문자를 대문자로
txt = "abcdefg hyjklmnop qrstuv wxyz"
z = txt.capitalize()
print(z)
# casefold() : 문자열을 소문자로 만들어준다
txt = "Abcdefg Hyjklmnop Grstuv Wxyz"
z = txt.casefold()
print(z)
txt = "KATTO BING DA YUMA"
YM = txt.casefold()
print(YM)
#center() : 괄호에 숫자를 적은 만큼 공백이 생긴다
txt = "공백"
x = txt.center(30)
print(x)
mozzirong = "모찌롱"
X_KIRA = mozzirong.center(10)
print(X_KIRA)