본문 바로가기
일/Python

Python) 학습 - 기본1일차(variable, input, output)

by 멜랑멀리 2022. 12. 21.
SMALL

 

python 학습 1일차 정리

 

[ 0_hello_world ]

# 주석 (comment) : 사용자가 코드 상에 메모를 할수 있도록 제공하는 문법
print("hello, world")

# CTRL + Enter : 현재 셀만 실행.
# ALT + Enter : 현재 셀 실행후, 새로운셀 생성. 
# CTRL + M + B : 새로운 셀 생성.
# CTRL + M + D : 셀 삭제
# CTRL + M + L : line_number 보기/안보기
# CTRL + / : 특정행에 대한 주석 삽입/제거  
# 블럭 지정후 CTRL + / : 여러행(블럭된 행들)에 대한 주석 삽입/제거



# 주석으로 특정 코드를 잠시 실행되지 않도록 한다.
# print("Hello")
print("World")



# 콜랩 or 주피터 노트북 : 특정행에 대한 주석 단축키 : CTRL + /
print("apple")
# print("banana")
print("cherry")
# print("durian")

 

[ 1_datatype ]

# 컴퓨터 : compute + er -> 계산기

# 프로그래밍 언어 : 수학을 확장한 개념

# 수학에서의 함수
# f(x) = 2x + 1
# f(2) = 5

# 프로그래밍의 함수 -> 특정기능이 구현되어 있는 코드 덩어리
# print ("hello, world") 



# 데이터 타입 : 자료형 -> 값의 종류
# 1. 정수형
# 2. 실수형(부동소수점)
# 3. 문자열형
# 4. 논리형

# #################
# 1. 정수형 : 0, 양수, 음수를 포함하는 수체계
# #################
print(0)
print(-10)
print(32)

# 정수형 데이터에 대하여 산술 연산이 가능.
print( 1+1)
#      ^---연산자와 피연산자 사이의 공백이나 개행은 무시됩니다.
print(1+1)
print(1
      + 
      1)

print (1+1)
print(1-1)
print(1/1)
print (1*1)

print(2*9)
# 승수 연산자 또는 제곱 연산자 : 밑수 ** 지수
print(2*2*2*2*2*2*2*2*2*2)
print(2**10) #print(2^10) : 사용 안됨.(지원안함)

print(5/3) # 나눗셈은 결과가 실수로 나옴.
print(6/3)
# 몫만 계산하려면 몫(//) 연산자를 사용.
print(5//3)
# 나머지만 계산하려면 나머지(%) 연산자를 사용.
print(5%3)


# 산술 연산자에는 우선순위가 있고, 수학과 동일.
print(2+2*2)
# 연산자의 우선순위를 변경하기 위해 괄호를 사용할수 있음. 
# 이때 괄호는 소괄호(())만 사용가능.
print((2+2)*2)
# 괄호는 1개 이상 사용가능, 중첩가능
print(
    ((4-2)*3) / (2-1)
)

# 단항 연산자 : 피연산자가 1 개인 연산자
# +: 피연산자의 부호를 유지 
# -: 피연산자의 부호를 반전
print(+-10)
print(--10)

# 제곱연산자가 먼저계산된고, - 가 이후에 계산되면서 100이 되고 -100이됨.
print (-10**2)
# -10의 제곱을 계산하려면, 아래처럼 계산되어야함. 괄호로() 음수를 고려해줘야함.
print ((-10)**2)
# 실제는 변수에 넣고 쓰기 때문에 이런문제가 있지는 않을것임.
x= -10
print (x**2)

# 산술 연산자의 우선순위 (동일하면 왼쪽부터 오른쪽으로 수행.)
# 1. 괄호
# 2. 곱셈, 나눗셈
# 3. 덧셈, 뺄셈


# 123 = 1*10**2 + 2*10**1 + 3*10**0 = 100 + 20 + 3
print(1010) # ?
# 해당값이 2진수임을 나타내려면 접두어로 0b(binary)를 사용해야함.
print(0b1010) # 파이썬은 기본적으로 10진법을 사용.
# 어떤값을 2진수로 표현 : bin(binary)
print(bin(0b1010))
print(bin(10))

# 8진수
print(0o10) 
print(oct(0o10)) 
print(oct(10)) 

# 수의 크기가 커질수록 표현하기가 어려워진다.(길어진다.)
print(bin(10))
print(bin(10000000000000))

# 000 = 0
# 001 = 1
# 010 = 2
# 011 = 3
# 100 = 4
# 101 = 5
# 110 = 6
# 111 = 7
# 8진수


# 8진수 (0o) - oct(octal)
print(0o10) 
print(oct(0o10)) 
print(oct(10)) 

# 16진수 (0x) - hex , 알파벳 대소문자 구분하지 않음.
print(0x10)
print(hex(0x10))
print(hex(10))

print(0xa)
print(0xA)


# 진법은 값이 서로 다른 표현방법 일뿐이므로 산술 연산에 사용가능.

print( 10 + 0b1010 + 0o12 + 0xa)

# bin(), oct(), hex() 함수를이용한출력결과는산술연산에이용할수없음


# #################
# 실수형: 정수와 소수를 포함하는 수체계
# #################
print(0.0)
print(3.14)
print(-10.25)


# 정수와 마찬가지로 산술연산 가능.
print(1.1 + 1.1)
print(1.1 - 1.1)
print(1.1 * 1.1)
print(1.1 / 1.1)
print(1.1 ** 2)
print(1.1 // 1.1)
print(1.1 % 1.1)


# 주의! 실수는 정수와 다르게 다른 진수로의 표현을 지원하지 않음. (실수는 10진수만 표현 가능.)
# print(0xa.a) # 10.10


# 과학적 표기법 
# 100.25 = 1.0025 * 10 ** 2 
print(30000000000)
print(3*10**10) # 단점1. 코드가 장황해짐.
                # 단점2. 불필요한 연산이 발생.

# 밑수가 10이라고 가정하여 이를 생략한 다음 지수만 사용함.
# 30000000000.0
# 3 * 10 ** 10
print(3.0e+10)  # 과학적 표기법의 특성상 그 결과는 항상 실수로 표현됨.
print(3.0e10)   # 지수가 양수라면 덧셈기호 생략가능.
print (3e10)    # 소수가 0이면 생략가능.


print ( 0.0001 )
print ( 1e-4)

# 사용자의 의도와 상관없이 값이 매우 크거나 작은 경우 지수표기법 그대로 출력됩니다
print(1e15)
print(1e16)
print(1e-4)
print(1e-5)

# ##############
# 3. 문자열 
# ##############

# hello -> (ASCII) 1101000 1100101 1101011 1101011 1101111
# 표현방법 : 동일 인용 부호를 쌍으로 사용.
print ("hello")
print ('hello')

# 주의! 서로 다른 인용부호를 사용하면 오류 발생. 

# 큰따옴표와 작은따옴표의 차이는? 없음.
# 동일 기능의 서로 다른 인용 부호를 제공하는 이유
# hello, "world" 를 출력하려면?
# print("hello,"world"") - 오류 발생.

# 문자열 안에 큰 따옴표를 포함하려면, 작은 따옴표를 사용해야함
print('hello,"world"')
# 문자열 안에 작은 따옴표를 포함하려면, 큰 따옴표를 사용해야함
print("hello,'world'")

# 추가! 인용부호를 고려하지 않고 포함하는 방법: 백슬래시 (\) 사용
print ("hello,\"world\"")
print ('hello,\'world\'')

# 백슬래시가 들어가야하면? \\ 사용. 두개 들어가야하면? \\\ 세개는? \\\\\
print ("hello,\\\"world\"")
print ("hello,\\\\\"world\"")
print ("hello,\\\\\\\"world\"")

print ("hello" + "world")  # strcat("hello", "world")
# 전세계 트랙픽의 60%가 문자열.
# 문자열에 대하여 산술 연산자를 허용합니다. - 다만 산술연산이 아닌 문자열 조작 연산만 가능.

# print ("hello" - "world")  #?? ERROR
print("hello"*3) # 됨.
# print("hello"/3) # ERROR

# 덧셈: 문자열 연결
# 곱셈: 문자열을 반복하여 연결


# apple
# banana
# cherry
# durian
print("apple")
print("banana")
print("cherry")
print("durian")


# 삼중 인용부호 : 입력된 그대로 표현하기 위해 사용되는 문자열
print ("""apple
banana
cherry
durian""")

print ('''apple
"banana"
'cherry'
durian''')

print (""" \\\\\\\\
"banana"
'cherry'
durian""")

# #################
# 4. 논리형 : 진리 값을 표현하기 위해 제공되는 타입
# #################


# 10 > 3 -> 참
# 10 < 3 -> 거짓
# 거짓은 0으로 표현
# 참은 0 이외의 모든 수로 표현( 0.15 , -20, 300, ... ) 하되 표현할 때는 대푯값을 1을 사용.
# 10 > 3 => 1
# 10 < 3 => 0

# 어떠한 연산 결과가 0인경우, 산술 연산(1-1)의 결과인지 비교 연산(10<3)의 결과인지 구분하기 어려움.
# 어떠한 연산 결과가 1인경우, 산술 연산(1-0)의 결과인지 비교 연산(10>3)의 결과인지 구분하기 어려움.
# 참과 거짓을 표현하기 위해 1과 0 대신 True 와 False
print(True)
print(False)

# 주의 ! 단어의 첫 문자는 반드시 대문자.


# 논리형 값도 산술 연산에 사용될수 있다. 이는 내부적으로 여전히 1과 0으로 해석되기 때문
print (True + True) # ? 2
print (True * False) # ? 0

# 논리형의 사용 1. 비교 연산의 결과로 사용
print (10 > 3)
print (10 < 3)
print (10 >= 3)
print (10 <= 3)
print (10 == 3)
print (10 != 3)


# 논리형의 사용 2. 논리 연산의 피연산자로 사용 -> 제어구조에서 설명.

# 추가 !
# 다른 진수로의 변환 함수에 대하여 그 결과는 문자열이므로 이를 산술 연산에 사용할 수 없음.
print (0b1010 + 0o12 + 0xA)
#            ^----- 정수에 대한 다른 표현
print (bin(0b1010) + oct(0o12) + hex(0xA)) # 문자열로 이해하고 문자를 붙여버림.

print(" \\ ")
print(" \\\ ")
print(" \\\\ ")
print("hello,\\\"world\"")
print("hello,\\\\\"world\"")
print("hello,\\\\\\\"world\"")
print()

 

[ 2_variable ]

# 변수(variable): 값을 저장하는 상자

# 변수 생성 방법
# 변수명 = 값 ----------> 변수명 : 상자의 이름
#        ^---- 대입 연산자: 해당 연산자를 기준으로 오른쪽의 값을 왼쪽의 변수에 저장하는 연산자




# 변수 작명 규칙

# 1. 알파벳 대소문자와 숫자를 사용할수 있음.
# age = 20
# age2020 = 0
# Age2020 = 0

# 2. 숫자로 시작할 수 없음
# 123age = 0 (x)

# 3. 대소문자 구분
# age 와 Age 는 다른 변수

# 4. 특수문자와 공백은 사용할 수  없음
# my-age = 20(x)
# my age = 20(x)

# 5. 단, _(밑줄문자) 허용, 밑줄문자로 시작할수 있으며 단독으로 사용할수도 있음
# myage = 20
# myAge = 20 --> camelCase(낙타표기법) - 자바에서 많이 사용
# my_age = 20 ---> snake_Case(뱀표기법) - c언어에서 많이 사용
# MyAge = 20 ---> PascalCase - class에서 배울예정

# 6. 예약된 키워드 (True, False, if, for, ... ) 는 사용할수 없음

age = 20
#   ^---- 대입 연산자 앞뒤의 공백은 무시.
# 변수에 저장된 값을 사용하려면 단순히 변수명을 사용하면 됨.
# 변수가 사용된 자리에는 변수가 가진 값으로 치환되기 때문이다.
print (age) # -> print(20)




# 변수(상자)는 파이썬이 제공하는 모든 타입의 값을 저장할수 있다.
x = 10
print(x)

x = 3.14 
print(x)

x= "hello"
print(x)

x = True
print(x)

# 저장된 값이 변한다고 하여 이를 변수라고 함.

# 변수는 연산자와 함께 사용될수 있다.

x = 20
y = 3
ㅌ = 3
#한글도 되네...
print ( x + y + ㅌ ) # -> print ( 20 + 3 + 3 )
print ( x - y - ㅌ )
print ( x * y * ㅌ )
print ( x / y / ㅌ )
print ( x ** y ** ㅌ )
print ( x // y // ㅌ )
print ( x % y % ㅌ )




# 변수의 증감
age = 0
print (age)

age = age + 1 # -> age = 0 + 1 -> age = 1
# code 의 중복사용을 방지하는게 debugging에 좋다.
print (age)

# 복합 대입 연산자 ( +=, -=, *=, /=, **=, //=, %= )
age += 1
print (age)
age += age
print (age) 

# 참고 ! 파이썬은 증감 (++,--) 연산자는 지원하지 않음.
++age
print (age) # 동작하지 않음.


# 변수가 가진 값을 확인 : print 함수를 사용하면 됨.
x = 20 # 1
print(x)
x = "20" # 2
print(x)





# 변수가 가진 값의 종류를 확인 : type 함수를 사용
# type 함수를 사용하면 그 값의 종류를 문자열로 알려줌.

x = 20
print(type(x)) # int: 정수형(integer) 타입

x = 3.14
print(type(x)) # float: 실수(float-point) 타입

x = "hello"
print(type(x)) # str: 문자열(string) 타입

x = True
print(type(x)) # bool: 논리(boolean) 타입


a = 10
b = 20
c = 30
d = 40
e = 50

# 파이썬에서는 다수의 변수에 값을 한번에 대입할수 있다.
a, b, c, d, e = 10, 20, 30, 40, 50

print(a)
print(b)
print(c)
print(d)
print(e)

# 주의! 왼쪽 변수의 개수와 오른쪽 값의 개수가 일치하지 않으면 오류가 발생.
x, y, z = 10, 20, 30


# 예외! 왼쪽의 변수가 1개인 경우에는 정상적으로 동작함.
a = 1, 2, 3, 4, 5 # ?

 

[ 3_output ]

# 모니터 (화면) 으로 값 출력하기

# print 함수를 사용하여 2개 이상의 값을 한번에 출력하려면 쉼표를 사용하면 됨.

print (10, 20, 30, 40)
#         ^--- 괄호 안의 공백과 탭 그리고 개행은 무시됨. 
print (10,20,30,40)
print (10,
       20,
       30,
       40)

print (10," ", 20,"\t", 30,"\t", 40) # 공백을 넣으려면 어떻게 해야하지?

# print 함수는 파이썬이 제공하는 모든 타입의 값을 출력할수 있음
print(10, 3.14, "hello", True)


# 공백도 하나의 문자이며 다른문자와 다른점은 눈에 보이지 않음.
# 공백 문자를 문자열로 표현하면 다음과 같다.
print(" ")

# 1. 분리자
# 값과 값을 구분하기 위해 사용되는 문자
print(10,20,30,40) #공백이 1개씩 생김.

# 기본값은 공백문자이나 다른 값을 사용하려면 sep 변수를 사용.
print(10,20,30,40,sep=" x ")
print(10,20,30,40,sep=" ^%$#^%$#^%$# ")
print(10,20,30,40) # -> print(10,20,30,40,sep=" ")

# 만약 분리자를 사용하고 싶지 않다면 빈 문자열을 사용.
# 빈 문자열(empty string) : 어떠한 문자도 포함하지 않는 문자열 -> ""
print(10,20,30,40,sep="")



# 제어문자

# 1. 개행문자 : \n(newline)
print("hello\nworld")
# 2. 탭 문자 : \t(tab)
print("hello\tworld")
# 3. 백스페이스 문자 : \b(backspace)
print("hello!\bworld")

# 분리문자를 사용할수 있다.

print(10,20,30,sep=" ")
# 10
# 20
# 30 으로 나타내려면,
print(10,20,30,sep="\n")
print(10,20,30,sep="\n\t!")



# hello
# world

print("hello")
print("world")



# 2. 종료자 : 모든 값을 출력한 후에 마지막으로 출력할 문자를 설정하는  (매개)변수

print(10) #, end="\n") < - 종료자를 설정하지 않으면 기본적으로 개행문자를 사용함.
print(20, end="\t")
print(30, end=" end_재밌넹 ")
print(40, end="" )
print(50)

# 연습문제

name = "홍길동"
age = 20

# 위변수를 사용하여 다음과 같이 출력.
# 이름: 홍길동, 나이: 20

print("이름: ",name,", ","나이: ",age,sep="")
print('이름: ',name,', 나이: ',age,sep="" )


#
# 변환 함수: 어떤 값을 특정 타입으로 변환하는 함수
#

# 1. int
# 2. float
# 3. str
# 4. bool

# 1. int(): 어떤 값을 정수 타입으로 변환하는 함수
print(int(3.14))
print(int(True), int(False))

x = 1 # x라는 변수에 1을 저장하는 코드
y = "1" # y라는 변수에 49를 저장하는 코드

print(int("1")) # 문자값 49를 정수 1로 변환
print(int(y)) 

# 주의! 문자열에 대하여 정수 변환시, 숫자가 아닌 문자가 포함되면 오류가 발생.
# 즉, 모든 문자열에 대하여 변환할수 있는게 아니라 숫자로만 이루어진 문자열에 대하여 변환이 가능함.
# print(int("Z")) # Error - Z는 숫자가 아니라서 변환이 안됨. 
# print(int("A")) # Error - A는 숫자가 아니라서 변환이 안됨. 

# 다른 진수의 패턴으로 이루어진 문자열에 대하여 정수변환을 수행하려면 base 변수에 진수를 전달.
print(int("A",base=16)) # 진수를 표현하면(base) 값이 나옴.
print(int("1010",base=2)) 

#print (int("3.14")) # 실수 패턴의 문자열의 경우, 소수점은 숫자가 아니므로 변환할수 없음.
print (int(float("3.14"))) # float으로 변환하고 int로 하면됨.

# 2. float(): 어떤 값을 실수로 변환하는 함수
print(float(3))
print(float(True), float(False))

print(float("3.14"))
# print(float("3.14",base=16)) - Error : float 는 base 가 안되넹.
print (int(float("3.14"))) # float으로 변환하고 int로 하면됨.

# 주의! 문자열에 대하여 숫자가 아닌 문자가 포함된 경우, 오류가 발생.
# 단,  .은 예외
# print(float("X")) # Error

# 실수는 다른진수로의 표현이 지원되지 않음.
# print(float("A",base=16)) # Error
print(float(int("A",base=16))) # Int로 변환후, float로 변환해야함.


# 3. str(): 어떤 값을 문자열 타입으로 변환하는 함수

print(type(str(10)))
print(str(10))


print(type(str(3.14)))
print(str(3.14))

print(type(str(True)))
print(str(True))


# 4. bool(): 어떤 값을 논리 타입으로 변환하는 함수 (0 이외의 모든 값은 True)
print(bool(0))
print(bool(10))
print(bool(3.14))
print(bool("AAA")) # 문자열안에 문자가 최소 1개 이상 있는경우, 이는 참으로 해석.
print(bool("0")) # "0" 도 문자열이기 때문에 참.
print(bool(int("0"))) # "0" 을 숫자로 변환하고 bool을 했기 때문에 False
print(bool(float("0"))) # "0" 을 숫자로 변환하고 bool을 했기 때문에 False
print(bool("")) # False
print(bool(" ")) # True


# 연습문제

name = "홍길동"
age = 20

# 위변수를 사용하여 다음과 같이 출력.
# 이름: 홍길동, 나이: 20

print("이름: ",name,", ","나이: ",age,sep="")
print('이름: ',name,', 나이: ',age,sep="" )

# print('이름: ' + name + ', 나이: ' + age ) # age가 문자열이 아니라서 Error
print("이름: " + name + ", 나이: " + str(age) )



# code가 산만해보임 - 이유는? 
#print("이름: ",name,", 나이: ",age,sep="" )
#print("이름: " + name + ", 나이: " + str(age) )
# 파이썬 스럽지 않음.
# 형식을 출력하는 code와 값을 가지는 code가 섞여있어서 그렇다.

# 형식 문자의 사용 (C style)
name = "홍길동"
age = 20

# 사용 방법: "형식 문자를 포함한 문자열" % (값 또는 변수, ...)
print("이름: %s, 나이: %d" % (name,age))
#%s(string): 문자열로 치환하라는 의미
#%d(decimal): 10진수로 치환하라는 의미
#%x(hexa): 16진수로 치환하라는 의미
print("이름: %s, 나이: %i" % (name,age))
print("이름: %s, 나이: %x" % (name,age))

# 만약 값이 1개라면 소괄호를 생략할수 있다.
print("이름: %s"  % (name))
print("이름: %s" % name)

# 단점: 사용하기 어렵고, 이해하기 난해함? -> 파이썬스럽지 않다.

# format 메서드(함수)의 사용 =>파이썬 3.0 이상에서만 사용가능.
name = "홍길동"
age = 20

#기존
print("이름: %s, 나이: %d" % (name,age))
#변경
#                                     0   1  
print("이름: {0}, 나이: {1}" .format(name,age))

# 만약 format 함수에 전달된 순서대로 출력한다면, 번호를 생략할수 있다.
print("이름: {}, 나이: {}" .format(name,age))

# 번호를 제공하는 이유 1. 출력순서를 고려하지 않고 값을 함수에 전달하기 위해
print("이름: {1}, 나이: {0}" .format(age,name))

# 번호를 제공하는 이유 2. 값의 중복 전달을 피하기 위해
print("이름: {}, 나이: {} 이름: {}" .format(name,age,name))
print("이름: {1}, 나이: {0:#x} 이름: {1}" .format(age,name))
print("이름: {1}, 나이: {0} 이름: {1}" .format(age,name))

# 단점: 출력하는 개수가 많아지면, 길어짐.

# 형식 문자열(f-string)의 사용 -> python 3.6 

# 버전확인
# import sys
# print(sys.version)

name = "홍길동"
age = 20

print("이름: {0}, 나이: {1}" .format(name,age))
print("이름: {name}, 나이: {age}" ) # 기준 문자열 - 지원x
print(f"이름: {name}, 나이: {age}" ) # 형식 문자열 (교재에는 안나옴.)

# 숫자의 형태 변환
print(f"이름: {name}, 나이: {age:#x}" ) # 형식 문자열 (교재에는 안나옴.)


# 중괄호 안에 변수 뿐만 아니라 수식도 사용할수 있음.

dan = 2
num = 9
print("{} x {} = {}" .format(dan,num,dan*num))
print(f"{dan} x {num} = {dan*num}" )


# 숫자 출력 형식을 지정
num = 10

print ("{0}".format(num))
# 1. 특정 진수로의 출력
print ("{0:d}".format(num)) # decimal의 약자로 10진수로 출력하는 의미
print ("{0:b}".format(num)) # binary의 약자로 2진수로 출력하는 의미
print ("{0:o}".format(num)) # octal의 약자로 8진수로 출력하는 의미
print ("{0:x}".format(num)) # hexa의 약자로 16진수로 출력하는 의미(소문자)
print ("{0:X}".format(num)) # hexa의 약자로 16진수로 출력하는 의미(대문자)

#을 사용하면 접두어가 붙음
print ("{0:#d}".format(num)) # decimal의 약자로 10진수로 출력하는 의미
print ("{0:#b}".format(num)) # binary의 약자로 2진수로 출력하는 의미 
print ("{0:#o}".format(num)) # octal의 약자로 8진수로 출력하는 의미 
print ("{0:#x}".format(num)) # hexa의 약자로 16진수로 출력하는 의미(소문자) 
print ("{0:#X}".format(num)) # hexa의 약자로 16진수로 출력하는 의미(대문자) 

#f-string
print (f"{num:#x}") # hexa의 약자로 16진수로 출력하는 의미
print (f"{num:x}") # hexa의 약자로 16진수로 출력하는 의미

print (f"{10:#x}") 
print (f"{10:#X}") 
print (f"0x{10:X}")




# 2. 폭지정 후, 정렬
num = 10

print("|0123456789|")

print ("|{0:d}|".format(num)) # 그냥 순서대로 출력 폭은 글자크기
print ("|{0:10d}|".format(num)) # 폭 10. 기본적으로 오른쪽 정렬 (정수를 공백 포함해 10자리로 표시)
print ("|{0:>10d}|".format(num)) # 폭 10으로 하고 출력된 결과를 오른쪽으로 정렬. (:>)
print ("|{0:<10d}|".format(num)) # 폭 10으로 하고 출력된 결과를 왼쪽으로 정렬.  (:<)
print ("|{0:^10d}|".format(num)) # 폭 10으로 하고 출력된 결과를 가운데로 정렬.  (:^)


# 폭 지정 후, 빈 공간은 기본적으로 공백 문자로 채워지는데 필요하다면 다른문자를 사용할수 있음.

num = 10

print("|0123456789|")

print ("|{0:#>10d}|".format(num)) 
print ("|{0:?<10d}|".format(num)) 
print ("|{0:*^10d}|".format(num)) 
print ("|{0:0>10d}|".format(num)) # :_>  사이(_)에 원하는것 삽입할수 있음.

print("{0:.3f}".format(10)) # 소수점 3자리까지 실수로 출력.

print("{0:,}".format(1234567)) # ,를 3자리마다 출력.

print("{0:.1%}".format(0.325745)) # %로 표시 반올림.( 소수점 1자리까지 표시 )
print(f"{0.325745:.1%}")

print("{0:.2e}".format(11110000)) # 지수를 소수점 2자리까지 표기
print("{0:.0e}".format(11110000)) # 지수를 소수점 0자리까지 표기
print(f"{11110000:.0e}") 






print(1+1)
"hello" # colab의 기능. 파이썬의 기능이 아님.(중간 값이 안나옴.)
1 + 1   # colab의 기능. 파이썬의 기능이 아님.(중간 값이 안나옴.)
9 + 9   # colab의 기능. 파이썬의 기능이 아님.

 

[ 4_input ]

 

# 키보드로부터 입력을 수행하려면 input 함수 사용.

# 사용방법
# 변수명 = input()

# input 함수는 사용자가 엔터를 입력하기 전까지 대기하고 있다가 사용자가 엔터를 입력하는 순간 엔터를 입력하기 전까지의 모든 문자를 문자열에 저장하여 돌려준다.

# 사용자로부터 이름을 입력받아 그 값을 출력하는 프로그램.                             
#name = input() #입력에 대한 설명이 없음.
#print("->",name)
#print("->",type(name))

name = input("이름=") #입력정보를 넣을수 있음.
print("->",name)
print("->",type(name))

# 사용자로 부터 정수를 하나 입력받아 제곱한 결과를 출력.

#num = input("정수입력=") 
#print(num**2) # 문자열로 받기때문에 int를 사용해야함.

# print에서 int 변환
#num = input("정수입력=") 
#print(int(num)**2)
#print(f"{int(num)**2:10x}")

# num을 int로 변한
num = int(input("정수입력="))
print(num**2)


# 연습문제 1.
# 원의 반지름을 입력(정수 or 실수) 받아 원의 넓이를 출력 
# 반지름 * 반지름 *3.14

# 반지름 : 2
# 원의 넓이 : 12.56
num = float(input("반지름="))
print(num*num*3.14)
print(f"{num*num*3.14:<10f}")

# 연습문제 2.
# 사용자로부터 자연수를 입력받아 그 값이 짝수이면 True를 홀수이면 False를 출력하는 프로그램을 구현. 자연수만 입력.

# 자연수 입력 : 2
# True
# 자연수 입력 : 3
# False
num = int(input("자연수입력="))
print((num%2)==0)
print(bool(num%2-1))
print(f"{bool(num%2-1)}")
#print(bool(num%2==0))
LIST