[Python] 1. 파이썬, 연산자(operator), 캐스팅(casting), 분기문(if_else), 실행 아규먼트(sys.argv)
>>정리
**파이썬은 배열의 종류가 다양하게 분류되어있다.
>>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" 실행
<변수 타입 : 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