프리렉 - FREELEC
http://freelec.co.kr/book/catalogue_view.asp?UID=134
이강성저
진법 변환 에러에 대해서는 본문 108-109 참조.
import math
r = 3.0
print('반지름={}, 원의면적={}, 원주의 길이={}'.format(r, math.pi*r*r, 2*math.pi*r))
\(e = 2.71828182846, pi =3.14159265359\)
from math import e, pi
print(e**pi, pi**e)
==> 문제 오류입니다. /
를 //
로 대신해야 합니다.
파이썬3에서 /
를 true division //
를 floor division이라고 부릅니다. //
는 실제 나누기한 결과보다 크지 않은 정수를 취합니다.
# 문제 오류이긴 하지만 실행결과를 확인하자면 다음과 같습니다. 쉽게 예측 가능한 결과들입니다.
2/5, -2/5, -(2/5)
2//5 # 실제 나눈 결과는 0.4이니 그 이 것보다 크지 않은 정수는 0입니다.
-2//5 # 실제 나눈 결과가 -0.4이니 그 이 것보다 크지 않은 정수는 -1입니다.
-(2//5) # 이 것은 0의 결과값에 다시 -를 취하는 것이니 그대로 0입니다.
# 우선 결과부터 확인해봅니다.
1 and 2 or 3 and 4
# 우선순위로 따지자면 다음과 같습니다.
(1 and 2) or (3 and 4)
or 연산은 첫번째 식(1 and 2)의 결과가 참 이므로, 두 번째 식(3 and 4)는 계산하지 않습니다. (1 and 2)에서 and 연산자는 두 피연산자를 진리값을 모두 판단해야 합니다. 모두가 참일 경우만 결과가 참이기 때문입니다. 1, 2 모두 True입니다.
bool(1), bool(2)
따라서 최종 연산 결과는 마지막으로 평가된 2가 됩니다.
가) 0.0, 0, 0.0+0.1j
나) " "
다) [ ], [''], [( )], ( ), (( )), (( ), )
라) { }
bool(0.0), bool(0), bool(0.0+0.1j)
bool(" "), bool("")
bool([]), bool(['']), bool([()]), bool(()), bool( (()) ), bool( ((),) )
n = int(input('type an integer number : '))
if n & 0x01:
print("홀수")
else:
print("짝수")
파이썬3에서는 정수형 자료형과 롱형 자료형이 정수형으로 통합되었기 때문에 모든 경우를 만족하는 해법은 없다. 다만, 정수값이 일정 범위 이하로 되어 있을 때는 다음과 같이 테스트 하는 것이 가능하다.
# 지금 사용중인 시스템에서 파이썬의 C 타입 정수형이 사용되는 바이트 수 확인
import sys
sys.int_info.sizeof_digit
bits = sys.int_info.sizeof_digit * 8
a = -12345678
if a & (1 << (bits-1)):
print("음수")
else:
print("양수")
a = 12345678
if a & (1 << (bits-1)):
print("음수")
else:
print("양수")
a = 100
'{0:08b}'.format(a)
b = a ^ 0x0f
'{0:08b}'.format(b)
import math, cmath
a, b, c = 1, 2, 3
D = b*b - 4 * a * c
if D < 0:
sqrt_d = cmath.sqrt(D)
else:
sqrt_d = math.sqrt(D)
x1 = (-b + sqrt_d)/(2*a)
x2 = (-b - sqrt_d)/(2*a)
print(x1, x2)
def find_roots(a, b, c):
D = b*b - 4 * a * c
sqrt_d = cmath.sqrt(D) if D < 0 else math.sqrt(D)
x1 = (-b + sqrt_d)/(2*a)
x2 = (-b - sqrt_d)/(2*a)
return x1, x2
x1, x2 = find_roots(1, 2, 3)
print (x1, x2)
print (find_roots(1, 2, -3))
286 페이지 int2base()
함수 참조