#此練習題主要針對數字運算與轉換
#導入需要用到的方法們:求平方根sqrt(),floor()向下取數,trunc()截斷
from math import sqrt
from math import floor
from math import trunc
#運算符的優先級
"""
可以看到優先級順序:
括號 > 乘除>加減法
這和我們在數學中的習慣一樣。
"""
a=2*(3+4)
print("2*(3+4)=" +str(a))
print("\n")
b=2*3+4
print("2*3+4="+str(b))
print("\n")
c=2+3*4
print("2+3*4="+str(c))
print("\n")
#求144的平方根
"""
math模塊鐘有許多的數學方法,求平方根sqrt()就是其中一個。
"""
d=144
d1=sqrt(144)
print("sqrt(144)="+str(d1))
print("\n")
#不同類型的運算,其運算結果的類型,會向上自動轉換
"""
整數與浮點數的運算結果是浮點數。
判斷向上轉換,可以簡單的理解成複雜性。
複數>浮點數>整數
"""
e=1+2.0+3
print("type (1+2.0+3):" +(str(type(e))))
print("\n")
g=9
print("type(g)"+str(type(g)))
g1=g+0.0
print("type(g+0.0):"+str(type(g1)))
g2=float(g)
print("type(float(g)):"+str(type(g2)))
g3=g/1
print("type(g/1):"+str(type(g3)))
print("\n")
#floor(),trunc(),與round()的區別
"""
floor()會向下取其離得最近的整數
trunc()只是簡單的截斷
round()是四捨五入
這裏面當對象是一個負數的時候,需要注意其區別。
"""
#f=3.5415926
f=-3.5415926
print("f="+str(f))
f1=floor(f)
print("floor(f)="+str(f1))
f2=trunc(f)
print("trunc(f)="+str(f2))
f3=round(f)
print("round(f)="+str(f3))
print("\n")
#支持8進制,16進制,Py3.0新增了10進制。
h=64
print("decimal number:"+str(h))
ho=oct(h)
print("octal number:"+str(ho))
hh=hex(h)
print("hexdecimal number:"+str(hh))
print("\n")
num_oct=0o100
print("original octal number:"+str(num_oct),"type:"+str(type(num_oct)))
o2d=int(str(num_oct),10)
print("octal convert to decimal :"+str(o2d))
print(str(eval(str(num_oct))),type(eval(str(num_oct))))
運行結果展示
>>>
2*(3+4)=14
2*3+4=10
2+3*4=14
sqrt(144)=12.0
type (1+2.0+3):<class 'float'>
type(g)<class 'int'>
type(g+0.0):<class 'float'>
type(float(g)):<class 'float'>
type(g/1):<class 'float'>
f=-3.5415926
floor(f)=-4
trunc(f)=-3
round(f)=-4
decimal number:64
octal number:0o100
hexdecimal number:0x40
original octal number:64 type:<class 'int'>
octal convert to decimal :64
64 <class 'int'>
>>>