목차
1. 파이썬 버전별 출력법
2. Python3 이후 정수형
3. 파이썬에서 제곱값 구하기
4.enumerate()와 range()
1.파이썬 버전별 출력법
파이썬의 최신 버전은 현재 3.9.4 버전이며
2 버전에서 3 버전으로 오며 많은게 바뀌었지만
그 중에서도 기초적인 print()의 방식의 차이가 있다.
Old School Format(Python 2)
#Old version # python 2 버전 지원 str='hello world' print('%s'%(str)) >>> 'hello world'
New School Format(Python 2,3)
#python 2,3 #New School Format str1='hello' str2='world' print('{} {}'.format(str1, str2)) >>> hello world
Brand New School Format(Python 3)
#Python 3 권장 #Brand New School Format str1='hello world' print(f'{str1}') float1=3.141592 print('{:.2f}'.format(float1)) >>> 'hello world' 3.14
기존의 Old school 버전의 출력법은 이제 파이썬 3 버전을 이후로 지원하지 않는다.
최신 버전의 사용을 권장하는 개발자들의 취지인 듯 하다.
파이썬 코딩을 할 때에도 최신버전의 형식에 맞춰 코딩하도록 하자.
2. Python3 이후 정수형(int)
C, JAVA 에서도 int형은 32bits(4Bytes)의 크기를 지녔고
파이썬 역시도 정수형은 4Bytes(9223372036854775807~9223372036854775808)의 범위를 가졌다.
하지만 3 이후 Python의 int형은 기존 int형 범위를 넘어서도 오버플로우가 존재하지 않는다.
이유는 int형을 벗어난 만큼의 메모리를 long형으로 변환해서 사용하기 때문인데
아래 코드를 보면 int형의 maxsize에서 +1된 값또한 int형으로 판별됨을 알 수 있다.
#Python 3.6 import sys print(sys.maxsize-1, sys.maxsize, sys.maxsize+1) print(type(sys.maxsize)) print(type(sys.maxsize+1)) >>> 9223372036854775806 9223372036854775807 9223372036854775808 <class 'int'> <class 'int'>
3. 파이썬에서 제곱 값 구하기
이건 내가 공부를 제대로 안해서 몰랐던건지 모르겠는데
간단히 연산자만으로 쉽게 제곱값을 구하는 식이 있었다.. ㅎ
#googol은 10의 100제곱을 가리키는 숫자이다. googol = 10 ** 100 print(googol) >>>100000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000
단순히 제곱을 구하는데 곱하기(*) 연산자를 두번만 쓰면 되는거였다니
ㅋㅋㅋㅋ 공부좀 열심히 하자
4. enumerate(), 와 range()
반복제어문 for문과 while 문을 다룰때에 제일 많이 사용하게 될 두 함수이다.
enumerate()는 인덱스와 원소를 짝지어 튜플로 꺼내는 내장함수이다.
range()는 지정한 범위 값 내에서 반복제어를 하는 함수이다.
enumerate() 예제
pang=['a','b','c','d'] for x,y in enumerate(pang, 1): print(x, y) >>> 1 a 2 b 3 c 4 d
enumerate(스캔할 대상, 인덱스)
스캔할 대상을 나열한 후 1부터 시작하는 인덱스를 붙여 튜플로 꺼낸다는데???
엥 왜 내 코드는 enumerate가 tuple을 반환하지 않는지 모르겠다.
아무튼 enumerate()는 세다, 열거하다는 뜻을 가진 enumerate의 뜻을 그대로 수행하는 함수이다
pang(list)의 자료형에 인덱스를 붙여서 출력했다.
왜Tuple로 안나와??
pang=['a','b','c','d'] for x,y in enumerate(pang): print(type(x), type(y)) a=(1,2) print(type(a)) >>> <class 'int'> <class 'str'> <class 'int'> <class 'str'> <class 'int'> <class 'str'> <class 'int'> <class 'str'> <class 'tuple'>
뭐지????? 뭐지?????????????
ㅋㅋ,, 아 이래서..??
pang=['a','b','c','d'] for x in enumerate(pang): print(type(x), x) >>> <class 'tuple'> (0, 'a') <class 'tuple'> (1, 'b') <class 'tuple'> (2, 'c') <class 'tuple'> (3, 'd') <class 'tuple'>
몇번 더 해보니까 반복자를 x,y두개로 해서 각각 인덱스와 값으로 받았더니
튜플형으로 나오지 않고 각 int형과 str형으로 나온것 같다.
아무래도 enumerate()자체가 인덱스와 스캔값을 함께 묶어서 보낼 수 있어야만 tuple형으로
출력이 되나보다.
range() 예제
for i in range(1,20,3): print(i) >>> 1 4 7 10 13 16 19
range()는 범위를 뜻하는 range 단어 뜻 그대로 범위 내 반복을 지정해준다
range(증가할 반복자, 반복범위, 반복할 크기)
range(1,20,3)의 경우 1부터 20까지 3씩 증가함을 뜻한다.
'개발&코딩 > Python' 카테고리의 다른 글
파이썬의 __init__() 의 역할 // python __init__(), constructor (0) | 2022.06.30 |
---|---|
파이썬 내장 메소드 dir() 사용법 (0) | 2022.06.16 |
반복문을 이용한 특수문자 출력 (0) | 2021.01.04 |
a 부터 b 까지의 합 - Python Algorithm loop_basic (2) | 2021.01.03 |
n까지의 합 - Python Algorithm loop_basic (0) | 2021.01.03 |
댓글