- Python程序設計與算法基礎教程(第2版)(微課版)
- 江紅 余青松
- 1106字
- 2019-11-15 20:18:59
3.5 上機實踐
1. 完成本章中的例3.1~例3.23,熟悉Python語言的3種基本控制結構,即順序結構、選擇結構、循環結構。
2. 編寫程序,計算1+2+3+…+100之和。
3. 編寫程序,計算10+9+8+…+1之和。
4. 編寫程序,計算1+3+5+7…+99之和。
5. 編寫程序,計算2+4+6+8…+100之和。
6. 編寫程序,使用不同的實現方法輸出2000~3000的所有閏年,運行效果如圖3-10所示。

圖3-10 2000~3000的所有閏年
7. 編寫程序,計算Sn=1-3+5-7+9-11+…。
提示:
可以使用if i%2==0的語句形式判斷i是否為偶數。
8. 編寫程序,計算Sn=1+1/2+1/3+…。
9. 編寫程序,打印九九乘法表。要求輸出九九乘法表的各種顯示效果(上三角、下三角、矩形塊等方式)。
10. 編寫程序,輸入三角形的3條邊,先判斷是否可以構成三角形,如果可以,則進一步求三角形的周長和面積,否則報錯“無法構成三角形!”。其運行效果如圖3-11所示(結果均保留一位小數)。
提示:
(1)3個數可以構成三角形必須滿足如下條件:每條邊的邊長均大于0,并且任意兩邊之和大于第三邊。
(2)已知三角形的3條邊,,其中h為三角形周長的一半。
11. 編寫程序,輸入x,根據如下公式計算分段函數y的值。請分別利用單分支語句、雙分支結構以及條件運算語句等方法實現。其運行效果如圖3-12所示。


圖3-11 三角形周長和面積的運行效果

圖3-12 分段函數的運行效果
12. 編寫程序,輸入一元二次方程的3個系數a、b和c,求ax2+bx+c=0方程的解。其運行效果如圖3-13所示。
提示:
(1)方程ax2+bx+c=0的解有以下幾種情況。
①a=0 and b=0,無解。

圖3-13 求解一元二次方程
②a=0 and b!=0,有一個實根:。
③b2-4ac=0,有兩個相等實根:。
④b2-4ac>0,有兩個不等實根:,
。
⑤b2-4ac<0,有兩個共軛復根:,
。
(2)可以利用“print(str.format("此方程有兩個不等虛根:{0}+{1}i和{0}-{1}i ",realPart,imagPart))”的語句形式輸出方程的兩個共軛復根。
13. 編寫程序,輸入整數n(n≥0),分別利用for循環和while循環求n!。其運行效果如圖3-14所示。
提示:
(1)n!=n×(n-1)×(n-2)×…×2×1。例如5!=5×4×3×2×1=120,特別地,0!=1。
(2)一般情況下,累乘的初值為1,累加的初值為0。
(3)如果輸入的是負整數,則繼續提示輸入非負整數,直到n≥0。
14. 編寫程序,產生兩個0~100(包含0和100)的隨機整數a和b,求這兩個整數的最大公約數和最小公倍數。其運行效果如圖3-15所示。

圖3-14 階乘的運行效果

圖3-15 最大公約數和最小公倍數的運行效果
提示:
(1)可以利用“random.randint(0,100)”的語句形式生成0~100(包含0和100)的隨機整數。
(2)利用“輾轉相除法”求最大公約數,具體算法如下。
①對于已知的兩個正整數m、n,使得m>n。
②m除以n得余數r。
③若r≠0,則令m←n,n←r,繼續相除得到新的余數r。若仍然r≠0,則重復此過程,直到r=0為止。最后的m就是最大公約數。
(3)求得了最大公約數,最小公倍數就是已知的兩個正整數之積除以最大公約數的商。
- Getting Started with React
- Mastering Objectoriented Python
- Arduino開發實戰指南:LabVIEW卷
- Python從菜鳥到高手(第2版)
- 信息安全技術
- Java深入解析:透析Java本質的36個話題
- Spring實戰(第5版)
- Java應用開發技術實例教程
- Learning Python by Building Games
- Python全棧數據工程師養成攻略(視頻講解版)
- Java Fundamentals
- Python語言科研繪圖與學術圖表繪制從入門到精通
- Java并發編程之美
- C# 7.1 and .NET Core 2.0:Modern Cross-Platform Development(Third Edition)
- JavaScript語法簡明手冊