《Python程式設計與演算法基礎教程》第三章上機實踐
# ch3 P59_3
# * 實現 101-201 輸出所有的素數 *
import math
j = 0
for m in range(101, 201):
k = int(math.sqrt(m))
for i in range(2, k + 2):
if m % i == 0:
break
if i == k + 1:
print(m, end = ' ' )
j += 1
if j % 10 == 0:
print()
# ch3 P60_4
# * 輸出三角形 *
n = int(input(" 請輸入圖形的行數: "))
for i in range(0, n):
for j in range(0, 10- i):
print(" ", end = " ")
for j in range(0, 2 * i + 1):
print("*", end = " ")
print("\n")
# ch3 P60_5
# * 水仙花數是一個三位數,三位數各位的立方之和等於三位數本身 *
import math # 呼叫模組,訪問 math 模組中 *
print(" 三位數中所有的水仙花數為: ")
for i in range(100, 1000):
n1 = i // 100 # // 地板除法,求小於 a 與 b 的商的最大整數
n2 = (i % 100)//10
n3 = i % 10
if (math.pow(n1, 3) + math.pow(n2, 3) + math.pow(n3, 3) == i): # pow ( x,y )返回 x 的 y 次冪的值
print(i, end= " ")
# ch3 P60_6
# * 如果一個數恰好等於它的真因子之和,則稱該數為“完全數”。各個小於它的約數(真約數 , 列出某數的約數,去掉該數本身,剩下的就是它的真約數)的和等於它本身的自然數叫做完全數( Perfect number ),又稱完美數或完備數。 *
# 找出 1~1000 之間所有的完數
print("1~1000 之間所有的完數有,其因子為: ")
for n in range(1, 1001):
total = 0
j = 0
factors = []
for i in range(1, n):
if (n % i == 0): # 找出 n 的所有約數並且出去它本身
factors.append(i) # 存入陣列中
total += i
if (total == n): # 完全數的要求是所有的真約數之和為 n 本身
print("{0}:{1}".format(n, factors))
# ch3 P60_7
# * 求任意兩個整數的最大公約數 *
m = int(input(" 請輸入整數 m:"))
n = int(input(" 請輸入整數 n:"))
while (m != n):
if (m > n):
m = m - n
else:
n = n - m
print(m)
# 上機實踐
# ch3 P60_1
# * 計算 1~100 之和 *
total = 0
for i in range(1, 101):
total += i
print("1~100 之和為: ", total)
# 上機實踐
# ch3 P61_5
# * 輸出 2000~3000 之間的所有閏年 *
# * 判斷閏年的條件是:年份能被 4 整除但不能被 100 整除,或者能被 400 整除 *
j = 0
for i in range(2000, 3000):
if((i % 4 == 0 and i % 100 != 0) or i % 400 == 0):
j += 1
print(i, end = " ")
if (j % 18 == 0):
print()
# ch3 P61_6
# * 計算 Sn = 1-3+5-7+9 — 11+ 。。。 *
n = int(input(" 請輸入一個整數: "))
count = 0
Sn1 = 0
Sn2 = 0
Sn = 0
for i in range(1, n + 1):
count += 1
if (count == 1):
Sn1 += 2 * i -1
if (count == 2):
i = -i
count = 0
Sn2 += 2 * i + 1
Sn = Sn1 +Sn2
print(Sn)
# 上機實踐
# ch3 P61_7
# * 計算 Sn=1+1/2+1/3+... *
n = int(input(" 請輸入一個整數: "))
Sn = 0
for i in range(1, n + 1):
An = 1 / i
Sn += An
print(Sn)
# 上機實踐
# ch3 P61_8
# * 九九乘法表 *
print("*** 九九乘法表 ***")
count = 0
for i in range(1, 10):
for j in range(1, 10):
print("{}*{}={}".format(i, j, i * j), end=' ')
count += 1
if count % 9 == 0:
print()
print("*** 下三角九九乘法表 ***")
for i in range(1, 10):
for j in range(1, 10):
print("{}*{}={} ".format(i, j, i * j), end=' ')
if i == j:
break
print("")
print("*** 上三角九九乘法表 ***")
for i in range(1, 10):
for j in range(1, 10):
if j < i:
print(end=" ")
continue
print("{}*{}={} ".format(i, j, i * j), end=' ')
print("")
# 上機實踐
# ch3 P61_8
# * 九九乘法表 *
print(" 矩陣九九乘法表: ")
for i in range(1, 10):
s = ''
for j in range(1, 10):
# {2:<2} # {} 叫做佔位符
s += "{0:1}*{1:1}={2:2} ".format(i, j, i * j)
# s += str.format("{0:1}*{1:1}={2:<2} ", i, j, i*j) # 把後面的格式變成字串,然後字串的連線賦給 s
print(s)
print(" 下三角九九乘法表 ")
for i in range(1, 10):
s = ''
for j in range(1, 10):
s += str.format("{0:1}*{1:1}={2:2} ", i, j, i*j)
if j == i:
break
print(s)
print(" 上三角九九乘法表: ")
for i in range(1, 10):
s = ''
for j in range(1, 10):
if j < i:
print(end=" ")
continue
s += str.format("{0:1}*{1:1}={2:2} ", i, j, i*j)
print(s)
# 上機實踐
# ch3 P61_9
# * 輸入三角形三條邊,判斷是否可以構成三角形 *
# * 條件: 1. 每條邊長均大於 0 ,並且任意兩邊之和大於第三邊
import math
A = int(input(" 請輸入三角形的邊 A: "))
B = int(input(" 請輸入三角形的邊 B: "))
C = int(input(" 請輸入三角形的邊 C: "))
if (A + B > C and A + C > B and B + C > A):
perimeter = A + B + C
h = 1 / 2 * perimeter
area = math.sqrt(h * (h - A) * (h - B) * (h - C)) # 面積公式
print(" 三角形三邊分別為 : a = {}, b = {}, c = {}".format(A, B, C))
print(" 三角形的周長 = {}, 面積 = {}".format(perimeter, area))
else:
print(" 無法構成三角形! ")
# 上機實踐
# ch3 P61_10
# * 輸入 x ,根據如下公式,計算分段函式 y 的值 *
import math
x = float(input(" 請輸入 x: "))
if x >= 0:
y = (x ** 2 - 3 * x)/(x + 1) + 2 * math.pi + math.sin(x)
else:
y = math.log((-5 * x), math.e) + 6 * math.sqrt(math.fabs(x) + math.e ** 4) - (x + 1) ** 3
print(" 方法三 : x ="+ str(x) + " y = " + str(y))
# 上機實踐
# ch3 P61_11
# * 輸入 x ,根據如下公式,計算分段函式 y 的值 *
import math
while (1):
a = float(input(" 請輸入係數 a : "))
b = float(input(" 請輸入係數 b : "))
c = float(input(" 請輸入係數 c : "))
if (a == 0 and b == 0):
print(" 此方程無解! ")
elif (a == 0 and b != 0):
x = -c / b
print(" 此方程有一個實根: ", x)
elif (b ** 2 - 4 * a * c == 0):
x1 = x2 = -b / (2 * a)
print(" 此方程有兩個相同實根: {} 和 {}".format(x1, x2))
elif (b ** 2 - 4 * a * c > 0):
x1 = - b / (2 * a) + (math.sqrt(b ** 2 - 4 * a * c) / (2 * a))
x2 = - b / (2 * a) - (math.sqrt(b ** 2 - 4 * a * c) / (2 * a))
print(" 此方程有兩個不等實根:外匯跟單gendan5.com {} 和 {}".format(x1, x2))
else:
print(" 此方程有兩個共軛復根: {0}+{1}i 和 {0}-{1}i".format(- b / (2 * a), (math.sqrt(4 * a * c - b ** 2) / (2 * a))))
# 上機實踐
# ch3 P61_12
# * 輸入 x ,根據如下公式,計算分段函式 y 的值 *
import math
j = 1
whileCount = 1
n = int(input(" 請輸入非負整數 n:"))
while (n < 0):
n = int(input(" 請輸入非負整數 n:"))
x = n # 再用 x 指代輸入的 n ,防止在後面的操作中 n 的數值已經發生變化了
if (n == 0):
print("0! = 1")
else:
for i in range(1, n + 1):
j *= i
print(" for 迴圈: {} ! = {}".format(n, j))
while (n):
whileCount *= n
n -= 1
print("while 迴圈: {} ! = {}".format(x, whileCount))
s = i = 1
while (i <= x):
s *= i
i += 1
print("while 迴圈: {} ! = {}".format(x, s))
# 上機實踐
# ch3 P61_13
# * 編寫程式,產生兩個 0~100 之間(包含 0 和 1000 )的隨機整數 a 和 b *
# * 求這兩個整數的最大公約數和最小公倍數 *
# * 方法:輾轉相除法求最大公約數 *
import random
a = random.randint(0, 100)
b = random.randint(0, 100)
print(" 整數 1 = {} , 整數 2 = {}".format(a, b))
if a > b: # 1. 對於已知的兩個正整數 m 、 n, 使得 m>n 。
m = a
n = b
else:
m = b
n = a
r = m % n # 2.m 除以 n 得餘數 r
while r != 0:
m = n
n = r
r = m % n # 若 r ! = 0 ,則令 m = n , n = r ,繼續相除得到新的餘數 r 。
# 若仍然 r ! = 0 ,則重複此過程,直到 r = 0 為止。最後的 m 就是最大公約數。
m = n
leastCommonMultiple = int(a * b / m) # 最小公倍數就是已知的兩個正整數之積除以最大公約數的商
print(" 最大公約數 = {} , 最小公倍數 = {}".format(m, leastCommonMultiple))
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2785031/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Objective-C 基礎教程第三章,物件導向程式設計基礎知識Object物件程式設計
- Python 指令碼高階程式設計:從基礎到實踐Python指令碼程式設計
- 安利這套《微信小程式設計基礎與實戰教程》微信小程式程式設計
- python程式設計從基礎到實踐第四章Python程式設計
- 基於WinSNMP的網路管理程式設計----原理與實踐(第三章) (轉)程式設計
- python程式設計基礎Python程式設計
- python程式設計基礎教程 第一季Python程式設計
- python程式設計基礎教程 第二季Python程式設計
- 學Python程式設計有什麼用?Python基礎教程!Python程式設計
- 併發程式設計基礎(上)程式設計
- PHP與MySQL程式設計 學習筆記 第三章 PHP基礎PHPMySql程式設計筆記
- 《Python程式設計:從入門到實踐》 筆記(一)基礎知識Python程式設計筆記
- python 程式設計基礎案例Python程式設計
- Python教程系列(一)—— Python基礎教程之第一個程式設計練習Python程式設計
- Redux 基礎與實踐Redux
- Socket網路程式設計基礎與實踐:建立高效的網路通訊程式設計
- RSA演算法基礎->實踐演算法
- Socket原理與程式設計基礎程式設計
- python_4程式設計基礎Python程式設計
- 響應式程式設計基礎教程:Spring Boot 與 Lettuce 整合程式設計Spring Boot
- Python程式設計中使用Pillow來處理影象的基礎教程Python程式設計
- 北郵《Python程式設計與實踐》——爬蟲學習Python程式設計爬蟲
- 第三章——演算法設計與分析演算法
- python物件導向程式設計基礎Python物件程式設計
- python基礎(物件導向程式設計)Python物件程式設計
- Python程式設計基礎Task12Python程式設計
- C#程式設計基礎入門教程pdfC#程式設計
- PHP基礎教程-25 自動化程式設計PHP程式設計
- 演算法基礎第三章搜尋與圖論演算法圖論
- 《計算機基礎與程式設計》第二週學習總結計算機程式設計
- 程式設計基礎程式設計
- Python網路程式設計之一:網路程式設計(《Python基礎教程-第3版》讀書筆記)Python程式設計筆記
- 原創:oracle PL/SQL程式設計基礎 上OracleSQL程式設計
- Python多程式程式設計基礎——圖文版Python程式設計
- Python程式設計規範+最佳實踐Python程式設計
- 人人都能學會的python程式設計教程(基礎篇)完整版Python程式設計
- 程式設計必備基礎 計算機組成原理+作業系統+計算機網路,計算機基礎——更適合程式設計師的程式設計必備基礎知識作業系統計算機網路程式設計師
- 機器學習基礎篇:支援向量機(SVM)理論與實踐機器學習