內容選單標籤

2019年12月8日 星期日

CH12 程式邏輯發展練習(1-9)



-----------------------12.1 語言熟悉題型

(1)
>>> print("Hello,Python !")
Hello,Python !


(2)交換2個變數
x=5;y=10
print(' x 交換前:{}'.format(x))
print(' y 交換前:{}'.format(y))
print()

temp=x;x=y;y=temp
print(' x 交換後:{}'.format(x))
print(' y 交換後:{}'.format(y))


x=5;y=10
print(' x 交換前:{}'.format(x))
print(' y 交換前:{}'.format(y))
print()

x,y=y,x                #Python 特殊交換法
print(' x 交換後:{}'.format(x))
print(' y 交換後:{}'.format(y))


(3)判斷正負數
num=float(input("輸入一個數:"))
if num >0:
    print(num,"是正數")
elif num==0:
    print("零")
else:
    print(num,"是負數")

輸入一個數:-5
-5.0 是負數


(4)判斷奇偶數
num=int(input("輸入一個數:"))
if (num % 2)==0:
    print("{0} 是偶數".format(num))        #參照 .format 的元素是用集合的大掛號{}
else:
    print("{0} 是奇數".format(num))

輸入一個數:13
13 是奇數



(5)3數中找出最大的數
n1=23;n2=8;n3=41

if(n1>=n2) and (n1>=n3):
    lar=n1
elif(n2>=n1) and (n2>=n3):
    lar=n2
else:
    lar=n3

print("最大數",lar)

最大數 41


(6)判斷是否閏年
閏年規則:
年份除以4,不可以整除 ---> 平年
年份除以4可以整除,且除以100不可整除 ---> 閏年
年份除以100可以整除,且除以400不可整除 ---> 平年
年份除以400,可以整除 ---> 潤年

year=int(input("輸入年份:"))
if (year%4)==0:
    if (year%100)==0:
        if (year%400)==0:
            print(year,"是閏年")
        else:
            print(year,"不是閏年")
    else:
        print(year,"是閏年")
else:
    print(year,"不是閏年")

輸入年份:2019
2019 不是閏年


(7)檢查是否為質數
質數:除了1和本身不能被其它數整除

num=41
if num>1:
    for i in range(2,num):
        if (num % i)==0:
            print(num,"不是質數")
            print(i,'X',num//i,"是",num)
            break
    else:
        print(num,"是質數")
else:
    print(num,"不是質數")

41 是質數


(8)檢查阿姆斯壯數
阿姆斯壯數:在n位的整數中,若加總每個數字的n次方後等於該整數,該整數即稱Armstrong number。如153 ---> 1^3+5^3+3^3=153 。自然數中阿姆斯壯數有88個,最大為39位數。三位數共有4個:153,370,371,407。

sm=0;num=153;tmp=num

while tmp>0:
    digit=tmp % 10
    sm += digit **3
    tmp=tmp//10

if num==sm:
    print(num,"是阿姆斯壯數")
else:
    print(num,"不是阿姆斯壯數")

153 是阿姆斯壯數


-------使用字串處理依序取字元
sm=0;num=153;tmp=num

for i in range(3):
    sm=sm+int(str(num)[i:i+1])**3

if sm==num: print(num,"是阿姆斯壯數")

153 是阿姆斯壯數

-------依餘數順序取數值位元
sm=0;num=371;d=0

for i in range(1,4):
    d=(num%(10**i)-num%(10**(i-1)))//(10**(i-1))
    sm=sm+d**3

if sm==num: print(num,"是阿姆斯壯數")

371 是阿姆斯壯數


------依商數順序取數值位元
sm=0;num=407;m=0

for i in range(0,3):
    m=(num//(10**i))-(((num//(10**i))//10)*10)
    sm=sm+m**3

if sm==num: print(num,"是阿姆斯壯數")

407 是阿姆斯壯數


(9)字元的ASCII值
char='A'
print(char+" 的ASCII值=",ord(char))

n=97
print("ASCII",n,"的字元=",chr(n))

A 的ASCII值= 65
ASCII 97 的字元= a







沒有留言:

張貼留言