본문 바로가기
PROGRAMING📚/Python📑

[Python]Python-Gramma- Print

Ta이니 2024. 11. 11.
728x90
반응형

Python-Gramma

Python 은 Script 언어로 소스코드를 한줄씩 읽어 바로 실행하는 Interpreter 방식

소프트웨어를 실행하는 방식에 따라 크게 두 가지 접근 방식이 있음

1. 인터프리터 방식

인터프리터는 소스 코드를 한 줄씩 읽고 해석하여 실행하는 방식입니다. 즉, 코드를 한 번에 한 줄씩 처리하고 즉시 실행하는 방식이죠. 대표적인 인터프리터 언어로는 Python, JavaScript, Ruby 등이 있습니다.

장점:

  • 즉시 실행: 코드 작성 후 바로 실행할 수 있어 개발 과정에서 빠른 피드백이 가능합니다.
  • 디버깅 용이: 실행 중 오류를 즉시 발견하고 수정할 수 있습니다.

단점:

  • 속도: 소스 코드를 실시간으로 해석해야 하므로 실행 속도가 상대적으로 느릴 수 있습니다.
  • 반복 실행: 매번 코드 실행 시마다 해석 과정이 반복되기 때문에 성능에 영향을 미칠 수 있습니다.

2. 컴파일러 방식

컴파일러는 전체 소스 코드를 한 번에 읽고 분석하여 기계어 또는 중간 코드로 변환한 후 실행하는 방식입니다. 변환된 코드(즉, 실행 파일)를 통해 프로그램이 실행됩니다. 대표적인 컴파일러 언어로는 C, C++, Rust 등이 있습니다.

장점:

  • 속도: 이미 기계어로 변환된 실행 파일을 사용하므로 실행 속도가 빠릅니다.
  • 최적화: 컴파일 과정에서 코드 최적화를 수행할 수 있어 성능이 개선될 수 있습니다.

단점:

  • 컴파일 시간: 전체 소스 코드를 컴파일하는 데 시간이 걸리기 때문에 즉각적인 피드백이 어려울 수 있습니다.
  • 디버깅: 컴파일 후 실행 파일을 통해 디버깅을 해야 하므로 오류 수정이 다소 번거로울 수 있습니다.

컴파일러 방식의 종류

  1. 정적 컴파일러 (Static Compiler):
    • 소스 코드를 기계어로 완전히 변환하여 실행 파일을 생성합니다.
    • 실행 전에 전체 코드를 변환하므로 실행 시에는 변환 과정이 필요 없습니다.
  2. JIT 컴파일러 (Just-In-Time Compiler):
    • 런타임 중에 코드의 일부를 동적으로 컴파일하여 실행합니다.
    • 예를 들어, Java의 HotSpot JVM과 같은 JIT 컴파일러는 바이트코드를 런타임 중에 기계어로 변환합니다. 이는 실행 성능을 개선하는 데 도움을 줍니다.
  3. AOT 컴파일러 (Ahead-Of-Time Compiler):
    • JIT와는 달리, 실행 전에 소스 코드를 미리 기계어로 변환합니다.
    • 즉, 실행 전에 모든 컴파일 작업을 완료하여 실행 속도를 높입니다. 예를 들어, C++는 AOT 컴파일러를 사용합니다.

print()

# 변수에 대하여 동적 할당
a= 100
b= 200

print(a,b)

100 200

# swap 하기
a= 100
b= 200

# 기존 Swap 방식
# tmp =a
# a=b
# b=tmp

# 파이썬 Swap 방식
a,b = b,a

print(a, b)
print("a,b : ",a,b)
print(a,b ,'Hello Python')

200 100
a,b : 200 100
200 100 Hello Python

print("%d %s %3.2f %c" %(10,"JISU", 10.12, 65 ), end='\n\n')

10 JISU 10.12 A

# Ctrl + Enter 하면 아래줄로 내려감
print("나는 수풀 우거진 청산에 살으리라 \
  나의 마음 푸르러 청산에 살으리라 \
  이 봄도 산허리엔 초록빛 물들었네 ")

나는 수풀 우거진 청산에 살으리라 나의 마음 푸르러 청산에 살으리라 이 봄도 산허리엔 초록빛 물들었네

print("나는 수풀 우거진 청산에 살으리라"
      "나의 마음 푸르러 청산에 살으리라"
      "이 봄도 산허리엔 초록빛 물들었네")

나는 수풀 우거진 청산에 살으리라나의 마음 푸르러 청산에 살으리라이 봄도 산허리엔 초록빛 물들었네

.format 형식

print("{0:=^20}".format("청산에 살으리라"))
print("{0:=<20}".format("청산에 살으리라"))
print("{0:=>20}".format("청산에 살으리라"))

======청산에 살으리라======
청산에 살으리라============
============청산에 살으리라

print("{:+d}".format(-52)) # + 는 양의 부호,
print("{:-d}".format(52))  # - 는 양의 부호, 음수일 경우
print("{:d}".format(-52))  # - 는 양의 부호, 음수일 경우
print("{:+5d}".format(52)) # 총 5자리에서 숫자 앞 부호 표시(  +52)
print("{:5d}".format(-52)) # 총 5자리에서 숫자 앞 부호 표시(  -52)
print("{:=5d}".format(-52)) # 총 5자리에서 부호와 숫자 표시(-  52)
print("{:=+5d}".format(52)) # 총 5자리에서 부호와 숫자 표시(+  52)
print("{:+05d}".format(52)) # 총 5자리에서 부호와 숫자 표시(+0052)
print("{:#5d}".format(52)) # 총 5자리에서 부호와 숫자 표시(   52)
print("{:+15f}".format(1234.5678)) # 소수,부호포함 15자리
print("{:-15f}".format(1234.5678)) # 소수,부호포함 15자리
print("{:-015f}".format(1234.5678)) # 소수,부호포함 15자리
print("({0:10.2f})".format(1234.5678)) # 총 10자리, 소수 2째 자리.(   1234.57) 소수자리 반올림

[결과]
-52
52
-52
  +52
  -52
-  52
+  52
+0052
   52
   +1234.567800
    1234.567800
00001234.567800
(   1234.57)
print("({0:<10})".format('Hello')) # 총 10자리, (<,>,^ 는 방향)
print("({0:>10})".format('Hello')) # 총 10자리
print("({0:^10})".format('Hello')) # 총 10자리
print("({0:0>10})".format('Hello')) # 총 10자리, 빈자리는 0으로 채움
print("({0:10.2f})".format(1234.5678)) # 총 10자리, 소수 2째 자리.(   1234.57) 소수자리 반올림
print("{{ }}는 클래스이다.".format())

(Hello )
( Hello)
( Hello )
(00000Hello)
( 1234.57)
{ }는 클래스이다.

기타 문자열 함수

print(f'{"기타 문자열 함수":=^20}')
print("Hello World".count("l"))
print("Hello World".find("l")) # 없으면 -1반환
print("Hello World".rfind("l"))
print("Hello World".index("l")) # 없으면 error 반환
print(",".join('12345'))
print("hello".upper())
print("hello".lower())
print("hello".capitalize())

=====기타 문자열 함수======
3
2
9
2
1,2,3,4,5
HELLO
hello
Hello

type

a= 100
print(type(a))

<class 'int'>

a= True
print(type(a))
print(type('Hello Python'))
print(type(1.0))

<class 'bool'>

<class 'str'>

<class 'float'>

c= 10 + 5j + 6J
print(c)
print(type(c)) #복소수

(10+11j)
<class 'complex'>

논리형 Type

print('=== 논리형 ===')
a = True
print(type(a), type(False))

=== 논리형 ===
<class 'bool'> <class 'bool'>

숫자형 Type

print('=== 숫자형 ===')
b = 10
print(type(b))
print(type(1.0))
c = 10 + 5j + 6J
print(type(c))  # 복소수

=== 숫자형 ===
<class 'int'>
<class 'float'>
<class 'complex'>
<class 'str'>

특수 문자

print("=== 특수 문자 ===")
print("\\")
print("a\tb")
print("\"")
print('\'')
print("Hello \n World")
print("""파이썬은 쉬운언어 입니다.
배우기가 무척 쉽습니다.
열심히 보다 재미있게 하세요!
""")

=== 특수 문자 ===

a b
"
'
Hello
World
파이썬은 쉬운언어 입니다.
배우기가 무척 쉽습니다.
열심히 보다 재미있게 하세요!

주석 처리 방법

# 한줄 주석 

'''
긴문장 주석 처리할 경우
사용 합니다.
'''

list

str ='1,2,3,4,5'.split(',')
print(type(str))
for item in str:
  print(item, end =" ")

<class 'list'>
1 2 3 4 5

str ='1,2,3,4,5'.split(',')
print(type(str))
for item in str:
  print(item, end ="\n")

<class 'list'>
1
2
3
4
5

File:: Writer

with open("청산에 살으리라.txt",'w') as f:
  print("""나는 수풀 우거진 청산에 살으리라
나의 마음 푸르러 청산에 살으리라
이 봄도 산허리엔 초록빛 물들었네 """)

 

File:: Read

f= open('청산에 살으리라.txt','r')
lines = f.readlines()
for line in lines:
  print(line)

나는 수풀 우거진 청산에 살으리라
나의 마음 푸르러 청산에 살으리라
이 봄도 산허리엔 초록빛 물들었네

728x90
반응형

댓글