Python

[Python] 1. 파이썬, 연산자(operator), 캐스팅(casting), 분기문(if_else), 실행 아규먼트(sys.argv)

걍작 2022. 4. 5. 20:44

>>정리

 **파이썬은 배열의 종류가 다양하게 분류되어있다.

>>01Python3

#!/usr/bin/env python

 - !를 하는 것은 선언한다는 의미이다.

 -  /usr/bin/env 경로에 있는 python 문법을 따르겠다.
# -*- coding: utf-8 -*-
 - 인코딩 타입은 utf-8로 하겠다.
#코드문장의 끝을 위해 세미콜론을 쓰지 않는다.
#코드에 블럭{}이 없고, "들여쓰기"로만 정리하므로, 줄 정리에 주의해야 한다.
#VS 처럼 스크립트 파일이기 때문에 컴파일 없이 저장만 한다.

#python3 소스코드 실행 방법
 - python3 py01hello.py << python3.x

  ** 파이썬 2 실행법 :  python py01hello.py << python2.x

#한 줄씩 코딩해나가는 REPL 영역이 제공된다.
 - 터미널에서 "$ python3" 실행

<변수 타입 : type>

#type 선언 없이 타입 추론이 이루어진다.
 - a = 10 >> print(type(a)) #타입이 클래스로 찍힌다.<class 'int'="">

#tuple을 활용하여 여러 변수에 값을 동시에 할당할 수 있다.

 - a,b = (10,20)  >> a = 10  , b = 20 

<출력 명령문 : print>

#기본 출력 명령문에 엔터 기능이 있음. 

  **(터미널) echo $(python3 -c "print('hello')")

 - 문자열은 ''/""모두 가능 >> print("Hello python") / print('Hello python')

 - print에 ,를 넣으면 한칸 띄어쓰기가 된다.
 - 실수 표현의 기본타입이 float이다. (보통은 double)
 - end옵션 - 마지막 엔터처리를 바꿔준다.

#format() : printf 처럼 출력하고 싶을 때
 - print("x:%d,%s,%s,%s" %(x,pi,su,name)) 
 - print("x:{},{},{},{}".format(x,pi,su,name)) #{}안에 값을 넣어라

<casting : 캐스팅>
#casting을 함수로 한다. - int캐스팅은 소수점을 버린다.
 - print(type(int(a)),int(a)) 
#문자와 숫자를 합칠 떄에는, 캐스팅이 필요하다.
 - print(type(int(su)),int(su)+100) 
#문자화된 실수는 int로 바로 캐스팅할 수 없다.
 - float는 소수점 13번째 자리에서 반올림 된다.
 - print(type(int(float(pi))),int(float(pi))+100)
#문자열 안에 <엔터>를 넣고 싶을 때 ''' ~ ''' 로 표기한다.
 - 여러 줄 주석으로도 사용된다. >> '''Many line text'''
 - txt = '''Hello >> >> >> Python''


#02operation - 연산자 

#문자열끼리 병합이 가능하다.
 - print("hello python" + " hello python" )
#(기본 연산자) + - * / %  ~  += -= *= /= %= 사용 가능

#(비트 연산자) & | ^  ~  = &= |= ^= 사용 가능
#파이썬에는 ++ / -- 연산이 없다. >> 기본 for문 불가
 - x++ #error
#for문에 i++이 올 수 없어, 기본 for문은 안쓰고 for..in:

#bool type : True, False / 비트연산 가능
 - print(True & True)  / print(True | False) / print(True ^ True) 
#&&, \\ 연산자는 and, or로 대체된다.
 - print(True and True) 
 - print(True or False)
# == != > < >= <= 연산자 사용 가능
 - print(True == True)
 - print(type(6) == type(6666)) #타입 비교
 - print("kim" == "kim") #문자열 비교

# in / not in 으로 포함여부 확인 가능
 - print("kim" in "kim-lee-han") #왼쪽 문자열이 오른쪽 문자열에 포함되는가?
 - print("kim" not in "kim-lee-han")
#삼항 연산자 and or / if else
 - 3항 연산자 ?: 가 없고 and or, if else 로 대체
 - True and "kim" or "lee"  #kim
 - "kim2" if True else "lee2" #kim2

 

#03if - else 

#import sys는 명령어와 함께오는 위치 파라미터를 받고 싶을 때 필요하다.
 - import sys
#실행 아규먼트(위치 파라메터/위치 파라미터) 활용하기

 ** $ python3 py03if_else.py 11 22 33 로 실행하면, ['py03if_else.py', '11', '22', '33'] 로 찍힌다.

 ** sys.argv는 문자('값')형태로 값이 들어온다. ['py03if_else.py', '11', '22', '33']

 - print(sys.argv)
 - print(type(sys.argv)) #배열 타입 확인
 - print("arr length: ",len(sys.argv)) #배열 길이 확인
 - print("str length: ",len("kim")) #문자열 길이 확인
 - print(sys.argv[0]) #개별 값 접근

#입력 값을 받는 두 가지 방법
 - name  = sys.stdin.readline() #end 옵션 적용 안됨
 - name = input() #추천

 

 

>>01Python3

#!/usr/bin/env python

 - !를 하는 것은 선언한다는 의미이다.

 -  /usr/bin/env 경로에 있는 python 문법을 따르겠다.
# -*- coding: utf-8 -*-
 - 인코딩 타입은 utf-8로 하겠다.
#코드문장의 끝을 위해 세미콜론을 쓰지 않는다.
#코드에 블럭{}이 없고, "들여쓰기"로만 정리하므로, 줄 정리에 주의해야 한다.
#VS 처럼 스크립트 파일이기 때문에 컴파일 없이 저장만 한다.

#python3 소스코드 실행 방법
 - python3 py01hello.py << python3.x

  ** 파이썬 2 실행법 :  python py01hello.py << python2.x

#한 줄씩 코딩해나가는 REPL 영역이 제공된다.
 - 터미널에서 "$ python3" 실행

REPL 영역

<변수 타입 : type>

#type 선언 없이 타입 추론이 이루어진다.
 - a = 10 >> print(type(a)) #타입이 클래스로 찍힌다.<class 'int'="">

#tuple을 활용하여 여러 변수에 값을 동시에 할당할 수 있다.

 - a,b = (10,20)  >> a = 10  , b = 20 

<출력 명령문 : print>

#기본 출력 명령문에 엔터 기능이 있음. 

  **(터미널) echo $(python3 -c "print('hello')")

 - 문자열은 ''/""모두 가능 >> print("Hello python") / print('Hello python')

 - print에 ,를 넣으면 한칸 띄어쓰기가 된다.
 - 실수 표현의 기본타입이 float이다. (보통은 double)
 - end옵션 - 마지막 엔터처리를 바꿔준다.

#format() : printf 처럼 출력하고 싶을 때

 - print("x:%d,%s,%s,%s" %(x,pi,su,name)) 
 - print("x:{},{},{},{}".format(x,pi,su,name)) #{}안에 값을 넣어라

<casting : 캐스팅>
#casting을 함수로 한다. - int캐스팅은 소수점을 버린다.
 - print(type(int(a)),int(a)) 
#문자와 숫자를 합칠 떄에는, 캐스팅이 필요하다.
 - print(type(int(su)),int(su)+100) 
#문자화된 실수는 int로 바로 캐스팅할 수 없다.
 - float는 소수점 13번째 자리에서 반올림 된다.
 - print(type(int(float(pi))),int(float(pi))+100)

#문자열 안에 <엔터>를 넣고 싶을 때 ''' ~ ''' 로 표기한다.
 - 여러 줄 주석으로도 사용된다. >> '''Many line text'''
 - txt = '''Hello >> >> >> Python''

 

--예문 코드 보기--

더보기
#!/usr/bin/env python
# -*- coding: utf-8 -*-

#!를 하는 것은 선언한다는 의미이다.

#comment
#코드문장의 끝을 위해 세미콜론을 쓰지 않는다.
#코드에 블럭{}이 없고, "들여쓰기"로만 정리한다.  
#>> 줄 정리를 정말 잘해야 한다.
#VS 처럼 스크립트 파일이기 때문에 컴파일 없이 저장만 한다.
#>>실행 방법<< - 배우는 내용은 python3
#python py01hello.py << python2.x
#python3 py01hello.py << python3.x

#한 줄씩 코딩해나가는 REPL 영역이 제공된다.
#$ python3

#############################################

#echo $(python3 -c "print('hello')")
#기본적으로 엔터 기능이 있음.
#문자열은 ''/""모두 가능
print("Hello python")
print('Hello python')

#type 선언 없이 타입 추론이 이루어진다.
a = 10
print(a)
print(type(a)) #<class 'int'> >> 타입이 클래스로 찍힌다.

#tuple을 활용하여 여러 변수에 값을 동시에 할당할 수 있다.
a,b = (10,20)  # a = 10  , b = 20 
print(a,b)

#print에 ,를 넣으면 한칸 띄어쓰기가 된다.
a=5
print(a+a , "kim")
print(type(1/a),1/a) #실수 표현의 기본타입이 float이다. (보통은 double)
print(type(a*2),a*2)
print(type(a**2),a**2)

#end옵션 - 마지막 엔터처리를 바꿔준다.
print(a, end=" ") 
print(a, 100, 1000, end="a")
print(a)

#casting을 함수로 한다. - int캐스팅은 소수점을 버린다.
a = 3.141592653589793
a = 99.99
print(type(a),a)
print(type(int(a)),int(a)) 
a = 100
print(type(float(a)),float(a))

#string
name  = "kim"
print(type(name),name) 

#문자와 숫자를 합칠 수 없어, 캐스팅이 필요하다.
su  = "1000"
print(type(int(su)),int(su)+100) 

#문자화된 실수는 int로 바로 캐스팅할 수 없다.
pi = "3.141592653589793"
print(type(float(pi)),float(pi)+100) #소수점 13번째 자리에서 반올림 된다.
print(type(int(float(pi))),int(float(pi))+100)

#format() : printf 처럼 출력하고 싶을 때
x = 100
print("x:%d,%s,%s,%s" %(x,pi,su,name)) 
print("x:{},{},{},{}".format(x,pi,su,name)) #{}안에 값을 넣어라

#문자열 안에 <엔터>를 넣고 싶을 때 ''' ~ ''' 로 표기한다.
#여러 줄 주석으로도 사용된다.
'''Many line text'''
txt = '''Hello


Python'''
print(txt)

 

 

 


#02operation - 연산자 

#문자열끼리 병합이 가능하다.
 - print("hello python" + " hello python" )
#(기본 연산자) + - * / %  ~  += -= *= /= %= 사용 가능

#(비트 연산자) & | ^  ~  = &= |= ^= 사용 가능
#파이썬에는 ++ / -- 연산이 없다. >> 기본 for문 불가
 - x++ #error
#for문에 i++이 올 수 없어, 기본 for문은 안쓰고 for..in:

#bool type : True, False / 비트연산 가능
 - print(True & True)  / print(True | False) / print(True ^ True) 
#&&, \\ 연산자는 and, or로 대체된다.
 - print(True and True) 
 - print(True or False)
# == != > < >= <= 연산자 사용 가능
 - print(True == True)
 - print(type(6) == type(6666)) #타입 비교
 - print("kim" == "kim") #문자열 비교

# in / not in 으로 포함여부 확인 가능
 - print("kim" in "kim-lee-han") #왼쪽 문자열이 오른쪽 문자열에 포함되는가?
 - print("kim" not in "kim-lee-han")
#삼항 연산자 and or / if else
 - 3항 연산자 ?: 가 없고 and or, if else 로 대체
 - True and "kim" or "lee"  #kim
 - "kim2" if True else "lee2" #kim2

 

--예문 코드 보기--

더보기
#!/usr/bin/env python
# -*- coding: utf-8 -*-

#문자열끼리 병합이 가능하다.
print("hello python" + " hello python" )

print(10 + 3)
print(10 - 3)
print(10 * 3)
print(10 / 3)
print(10 % 3)
print(10 ** 3)

# += -= *= /= %= , (비트연산) &= |= ^=
#파이썬에는 ++ / -- 연산이 없다. >> 기본 for문 불가
#for문에 i++이 올 수 없어, 기본 for문은 안쓰고 for..in:
x = 10
#x++ #error
x += 1
print(x)
x += 1
print(x)

# & \ ^
print( 10 & 3 )
print( 10 | 3 )
print( 10 ^ 3 )

print("--bool type --")

#bool type : True, False / 비트연산 가능
print(True,type(True)) 
print(True & True) 
print(True | False) 
print(True ^ True) 

print("--&& and, \\ or--")
#print(True && True) #error
#print(True || False) #error
print(True and True)
print(True or False)


print("-- == != > < >= <= --")
print(True == True)
print(6 == 6)
#print(6 in 6) #error - 여러개 중에 하나가 아님
print(type(6) == type(6666)) #타입 비교

print("-- 문자열 비교 --")
print("kim" == "kim") #문자열 비교
print("kim" != "kim")
print("kim" in "kim-lee-han") #왼쪽 문자열이 오른쪽 문자열에 포함되는가?
print("kim" not in "kim-lee-han")

print("-- and or --")
#3항 연산자 ?: 가 없고 and or, if else 로 대체
#result = True ? "kim" | "lee" #error
result = True and "kim" or "lee"  #kim
print("result: ",result)

result = "kim2" if True else "lee2" #kim2
print("result: ",result)

 

 

 


 ** 파이썬은 배열의 종류가 다양하게 분류되어있다.

 

#03if - else 

#import sys는 명령어와 함께오는 위치 파라미터를 받고 싶을 때 필요하다.
 - import sys
#실행 아규먼트(위치 파라메터/위치 파라미터) 활용하기

 ** $ python3 py03if_else.py 11 22 33 로 실행하면, ['py03if_else.py', '11', '22', '33'] 로 찍힌다.

 ** sys.argv는 문자('값')형태로 값이 들어온다. ['py03if_else.py', '11', '22', '33']

 - print(sys.argv)
 - print(type(sys.argv)) #배열 타입 확인
 - print("arr length: ",len(sys.argv)) #배열 길이 확인
 - print("str length: ",len("kim")) #문자열 길이 확인
 - print(sys.argv[0]) #개별 값 접근

#입력 값을 받는 두 가지 방법
 - name  = sys.stdin.readline() #end 옵션 적용 안됨
 - name = input() #추천

//mission : grade if-else - 평균에 따른 학점 표시가 되도록 코드를 작성하시오.

 

--예문 코드 보기--

더보기
#!/usr/bin/env python
# -*- coding: utf-8 -*-

#명령어와 함께오는 위치 파라미터를 받고 싶을 때 필요하다.
import sys

print("---------------")
#<실행 아규먼트 활용하기>
#$ python3 py03if_else.py 11 22 33 로 실행하면,
#['py03if_else.py', '11', '22', '33'] 로 찍힌다.
print(sys.argv)

#파이썬은 배열의 종류가 다양하게 분류되어있다.
print(type(sys.argv)) #배열 타입 확인
print("arr length: ",len(sys.argv)) #배열 길이 확인
print("str length: ",len("kim")) #문자열 길이 확인

print("-- 개별 값 접근 --")
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2])
print(sys.argv[3])


print("---------------")
if True:
	print("if")
	print("if")

print("out if")

print("---------------")
#입력 값을 받는 두 가지 방법
print("Input name: ") #end 옵션 적용 안됨
name  = sys.stdin.readline()
print("name: ",name)

print("Input name: ",end=" ")
name = input()
print("name:",name) #,때문에 무조건 한칸 띄게 된다. 이걸 없애려면 아래처럼 함수를 써서 작성한다.
print("x:{}".format(name)) #{}안에 값을 넣어라.

print("---------------")
argv_sum = 0
if len(sys.argv)==4:
	#sys.argv는 문자로 값이 들어온다. ['py03if_else.py', '11', '22', '33']
	argv_sum += int(sys.argv[1])
	argv_sum += int(sys.argv[2])
	argv_sum += int(sys.argv[3])

	print("sum:{}".format(argv_sum))

print("---------------")

print("Input avg:",end="")
avg = float(input())
grade = 'A'
#if~grade : mission
if avg >= 90:
	grade = 'A'
elif avg >= 80:
	grade = 'B'
elif avg >= 70:
	grade = 'C'
elif avg >= 60:
	grade = 'D'
else:
	grade = 'F'
		
print("avg:{} grade:{}".format(avg,grade))


#switch - case doesn't exist