程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python算法實踐Week2-分支程序設計

編輯:Python

0x00 分支結構

  • 問題的提出 輸入兩個整數存放與a和b中,使得a中存放的數據小於b中存放的數據。
  • 分析
    • 輸入兩個數a和b
    • a可能小於b也可能大於b
      • 如果a小於b,不做任何處理
      • 反之,交換a和b
    • 這類型的問題需要對不同的情況做不同的處理,這樣的問題,順序結構無法解決
  • 分支結構的三種基本形式(單分支、雙分支和多分支)

單分支結構

  • 單分支結構的語法形式
if (條件表達式):
語句塊
# 條件表達式可以是任意表達式,只要結果不為0即認為True,否則為False
# 語句塊:可以是一條語句,也可以是多條語句
  • 上述問題的解決
    • 問題重述:輸入兩個整數存放與a和b中,使得a中存放的數據小於b中存放的數據。
    • Python語言解決
# 輸入兩個整數存放與a和b中,使得a中存放的數據小於b中存放的數據。
# 使用分支結構
a = int(input('請輸入a:'))
b = int(input('請輸入b:'))
print('處理前')
print('a={},b={}'.format(a, b))
if a > b:
a, b = b, a # 交換a,b變量值
print('處理後')
print('a={},b={}'.format(a, b))

雙分支結構

  • 雙分支結果的語法形式
  • 問題:比較兩個數的大小,輸入兩個數,輸出較大的數
  • 問題:輸入三條邊的長度,判斷是否能組成三角形
  • 問題:劃船問題,一個老師帶個x個學生去劃船,每條船最多裝4個人,問需要多少船。

多分支結構

  • 多分支結構的語法形式
  • 問題:計算分段函數的值,當x>1時,y=x,當x<-1時,y=-x,當x介於-1和1之間時,y=1
    • 算法流程圖
    • Python語言實現
  1. = float(input('請輸入x:'))
  2. x > 1: y = x
  3. x < -1: y = -x else: y = 1 print('y={}'.format(y))
  • 問題:已知某課程的百分之分數mark,將其轉換為五級制
  • 問題:已知坐標點(x,y),判斷其所在象限
## 已知坐標點(x,y),判斷其所在象限
x = float(input('請輸入x坐標值:'))
y = float(input('請輸入y坐標值:'))
if x == 0 and y == 0:
print('該點在原點')
elif x == 0:
print('該點在y軸上')
elif y == 0:
print('該點在x軸上')
elif x > 0 and y > 0:
print('第一象限')
elif x < 0 and y > 0:
print('第二象限')
elif x < 0 and y < 0:
print('第三象限')
elif x < 0 and y > 0:
print('第四象限')
  • 問題:判斷某一年是否為閏年 判斷閏年的條件是:年份能被4整除但不能被100整除,或者能被400整除。
    • 流程圖
  • Python語言實現
# 判斷某一年是否為閏年
# 判斷閏年的條件是:年份能被4整除但不能被100整除,或者能被400整除。
# 方法1:使用多分支結構
y = int(input('請輸入年份:'))
if y % 4 == 0 and y % 100 != 0:
print('{}年是閏年'.format(y))
elif y % 400 == 0:
print('{}年是閏年'.format(y))
else:
print('{}年不是閏年'.format(y))
# 方法2:借助邏輯運算符
y = int(input('請輸入年份:'))
if (y % 4 == 0 and y % 100 != 0) or (y % 400) == 0:
print('{}年是閏年'.format(y))
else:
print('{}年不是閏年'.format(y))
  • 討論下述條件表達式
if (y % 4 == 0 and y % 100 != 0) or (y % 400) == 0:
if (y % 4 == 0 and y % 100 ) or (y % 400) == 0:
if (not(y % 4) and y % 100 ) or (y % 400) == 0:

上述三個條件表達式均具有同一效果,但是第一條更簡單易懂

0x01 好程序的三個指標

  • 簡單易懂
  • 擴展性強
  • 忠實於自己的算法

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved