《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程式設計
- 演算法基礎第三章搜尋與圖論演算法圖論
- 《計算機基礎與程式設計》第二週學習總結計算機程式設計
- 《計算機基礎與程式設計》第七週學習總結計算機程式設計
- 《計算機基礎與程式設計》第7周學習總結計算機程式設計
- 《計算機基礎與程式設計》第八週學習總結計算機程式設計
- 程式設計基礎程式設計
- Python網路程式設計之一:網路程式設計(《Python基礎教程-第3版》讀書筆記)Python程式設計筆記
- 原創:oracle PL/SQL程式設計基礎 上OracleSQL程式設計
- Python多程式程式設計基礎——圖文版Python程式設計
- Python程式設計規範+最佳實踐Python程式設計