內容選單標籤

2019年12月23日 星期一

CH12 程式邏輯發展練習(10-20)


(10).兩個數相加
a=18
b=35
s=a+b
print("a+b=",s)

a+b= 53



(11).算平方根
n=7
print("n ** 0.5 =",n**0.5)

r=n**0.5
print("n**0.5=%0.5f" %r)

import math
print(math.sqrt(9))

n ** 0.5 = 2.6457513110645907
n**0.5=2.64575
3.0


>>> import math
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

math 用在數學
numpi 用在統計
random
日期


(12).十進制數轉換
dec=168
print("十進制:",dec)
print("二進制:",str(bin(dec)))
print("八進制:",str(oct(dec)))
print("十六進制:",str(hex(dec)))

十進制: 168
二進制: 0b10101000
八進制: 0o250
十六進制: 0xa8



(13).算自然數之和
num=10
sum=0
while (num>0):
    sum += num
    num -= 1
print("總和=",sum)

總和= 55


sum=0
for i in range(1,10+1):
    sum=sum+i
    print('i=',i,'sum=',sum)
print(sum)

i= 1 sum= 1
i= 2 sum= 3
i= 3 sum= 6
i= 4 sum= 10
i= 5 sum= 15
i= 6 sum= 21
i= 7 sum= 28
i= 8 sum= 36
i= 9 sum= 45
i= 10 sum= 55
55



(14).輸入度數的三角函數
import math
def dsin(theta):
    a=math.pi/(180/theta)
    return math.sin(a)

print("Sin(30)=",dsin(30))
print("Sin(45)=",dsin(45))
print("Sin(60)=",dsin(60))

Sin(30)= 0.49999999999999994
Sin(45)= 0.7071067811865475
Sin(60)= 0.8660254037844386


圓周計算方式:
以(度)度量為單位,一圓周為360度 DEG
以(徑)度量為單位,一圓周為2 pi pi=3.14 RAD
PI 圓周率=周長/直徑=180度

大部分程式語言在計算三角函數時,都使用(徑)度量,所以計算三角函數時必須先把(度)度量轉成(徑)度量。如:sin(30),電腦必須寫成  sin(3.1415/6) 才能算出結果


import math
s90=math.sin(3.14/2)        #1
print(s90)

s60=math.sin(3.14/3)        #(3^0.5)2    0.865
print(s60)

s45=math.sin(3.14/4)        #(2^0.5)2    0.7068
print(s45)

s30=math.sin(3.14/6)        #1/2
print(s30)

0.9999996829318346       
0.8657598394923444
0.706825181105366
0.4997701026431024



def pi(a):
    x=2;z=2;a=1;b=3;e=1e-15
    while(z>e):
        z=z*a/b
        x=x+z
        a=a+1
        b=b+2
    return x

p=pi(0)
print(p)

deg=int(input("輸入 sin 角度="))
x=(p*deg)/180
s=x
fc=1
for i in range(1,10):
    fc=fc*(2*i)*(2*i+1)
    s=s+((-1)**i)*(x**(2*i+1))/fc
print("sin(",deg,")=",s)

3.141592653589792
輸入 sin 角度=30
sin( 30 )= 0.49999999999999983

3.141592653589792
輸入 sin 角度=45
sin( 45 )= 0.7071067811865472



(15).簡單計算器
def add(x,y):
    return x+y

def subtract(x,y):
    return x-y

def multiply(x,y):
    return x*y

def divide(x,y):
    return x/y

print("選擇操作:")
print("1.相加")
print("2.相減")
print("3.相乘")
print("4.相除")

choice=input("選擇計算方式(1/2/3/4):")

num1=int(input("輸入第一個數字:"))
num2=int(input("輸入第二個數字:"))

if choice=='1':
    print(num1,'+',num2,'=',add(num1,num2))
 
elif choice=='2':
    print(num1,'-',num2,'=',subtract(num1,num2))

elif choice=='3':
    print(num1,'*',num2,'=',multiply(num1,num2))

elif choice=='4':
    print(num1,'/',num2,'=',divide(num1,num2))

else:
    print("輸入錯誤!")

選擇操作:
1.相加
2.相減
3.相乘
4.相除
選擇計算方式(1/2/3/4):1
輸入第一個數字:23
輸入第二個數字:45
23 + 45 = 68

選擇操作:
1.相加
2.相減
3.相乘
4.相除
選擇計算方式(1/2/3/4):2
輸入第一個數字:23
輸入第二個數字:45
23 - 45 = -22

選擇操作:
1.相加
2.相減
3.相乘
4.相除
選擇計算方式(1/2/3/4):3
輸入第一個數字:23
輸入第二個數字:45
23 * 45 = 1035

選擇操作:
1.相加
2.相減
3.相乘
4.相除
選擇計算方式(1/2/3/4):4
輸入第一個數字:23
輸入第二個數字:45
23 / 45 = 0.5111111111111111




(16).公里轉換英里
k=3.6
c=0.621371
m=k*c
print("%0.3f 公里= %0.3f 英里" %(k,m))

3.600 公里= 2.237 英里




(17).攝氏轉華氏
c=37.2
f=(c*1.8)+32
print("攝氏 %0.1f 度= 華氏 %0.1f" %(c,f))

攝氏 37.2 度= 華氏 99.0




(18).計算三角形面積
a=3;b=6;c=4
s=(a+b+c)/2
area=(s*(s-a)*(s-b)*(s-c))**0.5        #海龍公式
print("面積 = %0.2f" %area)

面積 = 5.33



(19).解一元二次方程式
a=1;b=-2;c=-15
d=(b**2)-(4*a*c)

s1=(-b-(d**0.5))/(2*a)
s2=(-b+(d**0.5))/(2*a)

print("兩個實根分別為:{0} and {1}".format(s1,s2))

兩個實根分別為:-3.0 and 5.0



(20).顯示乘法表
for i in range(1,9+1):
    for j in range(1,9+1):
        print("%2d*%2d=%2d" %(i,j,i*j),end='')
    print()

 1* 1= 1 1* 2= 2 1* 3= 3 1* 4= 4 1* 5= 5 1* 6= 6 1* 7= 7 1* 8= 8 1* 9= 9
 2* 1= 2 2* 2= 4 2* 3= 6 2* 4= 8 2* 5=10 2* 6=12 2* 7=14 2* 8=16 2* 9=18
 3* 1= 3 3* 2= 6 3* 3= 9 3* 4=12 3* 5=15 3* 6=18 3* 7=21 3* 8=24 3* 9=27
 4* 1= 4 4* 2= 8 4* 3=12 4* 4=16 4* 5=20 4* 6=24 4* 7=28 4* 8=32 4* 9=36
 5* 1= 5 5* 2=10 5* 3=15 5* 4=20 5* 5=25 5* 6=30 5* 7=35 5* 8=40 5* 9=45
 6* 1= 6 6* 2=12 6* 3=18 6* 4=24 6* 5=30 6* 6=36 6* 7=42 6* 8=48 6* 9=54
 7* 1= 7 7* 2=14 7* 3=21 7* 4=28 7* 5=35 7* 6=42 7* 7=49 7* 8=56 7* 9=63
 8* 1= 8 8* 2=16 8* 3=24 8* 4=32 8* 5=40 8* 6=48 8* 7=56 8* 8=64 8* 9=72
 9* 1= 9 9* 2=18 9* 3=27 9* 4=36 9* 5=45 9* 6=54 9* 7=63 9* 8=72 9* 9=81










沒有留言:

張貼留言