教小朋友學 Python -- 條件與循環

教小朋友學 Python -- 條件與循環


背景

昨天,為小朋友介紹了 什麼是變量、什麼是運算符以及運算符的優先級、什麼是數據類型以及類型之間的相互轉換。

  • 教小朋友學 Python -- 變量、運算符與數據類型

今天,為小朋友介紹程序設計語言中最常見的兩種語句,第一種是條件語句,第二種是循環語句。

Python 基本語法

1. 條件語句

if 語句

if expression:
 expr_true_suite
  • if 語句的expr_true_suite代碼塊只有當條件表達式expression結果為真時才執行,否則將繼續執行緊跟在該代碼塊後面的語句。
  • 單個 if 語句中的expression條件表達式可以通過布爾操作符and,or和not實現多重條件判斷。
if 2 > 1 and not 2 > 3:
 print('Correct Judgement!')

else 語句

if expression:
 expr_true_suite
else
 expr_false_suite
  • Python 提供與 if 搭配使用的 else,如果 if 語句的條件表達式結果布爾值為假,那麼程序將執行 else 語句後的代碼。
temp = input("不妨猜一下小哥哥現在心裡想的是那個數字:")
guess = int(temp)
if guess == 8:
 print("你是小哥哥心裡的蛔蟲嗎?")
 print("哼,猜對也沒有獎勵!")
else:
 print("猜錯了,小哥哥現在心裡想的是8!")
print("遊戲結束,不玩兒啦!")
  • Python 使用縮進而不是大括號來標記代碼塊邊界,因此要特別注意 else 的懸掛問題。

例子1

hi = 6
if hi > 2:
 if hi > 7:
 print('好棒!好棒!')
else:
 print('切~')

例子2

temp = input("不妨猜一下小哥哥現在心裡想的是那個數字:")
guess = int(temp)
if guess > 8:
 print("大了,大了")
else:
 if guess == 8:
 print("你是小哥哥心裡的蛔蟲嗎?")
 print("哼,猜對也沒有獎勵!")
 else:
 print("小了,小了")
print("遊戲結束,不玩兒啦!")

elif 語句

if expression1:
 expr1_true_suite
elif expression2:
 expr2_true_suite
 .
 .
elif expressionN:
 exprN_true_suite
else:
 expr_false_suite
 
  • elif 語句即為 else if,用來檢查多個表達式是否為真,並在為真時執行特定代碼塊中的代碼。
temp = input('請輸入成績:')
source = int(temp)
if 100 >= source >= 90:
 print('A')
elif 90 > source >= 80:
 print('B')
elif 80 > source >= 60:
 print('C')
elif 60 > source >= 0:
 print('D')
else:
 print('輸入錯誤!')

assert 關鍵詞

  • assert這個關鍵詞我們稱之為“斷言”,當這個關鍵詞後邊的條件為 False 時,程序自動崩潰並拋出AssertionError的異常。
  • 在進行單元測試時,可以用來在程序中置入檢查點,只有條件為 True 才能讓程序正常工作。
assert 3 > 7

2. 循環語句

while 循環

while expression:
 suite_to_repeat
  • while循環的suite_to_repeat子句會一直循環執行,直到expression值為布爾假
count = 0
while count < 3:
 temp = input("不妨猜一下小哥哥現在心裡想的是那個數字:")
 guess = int(temp)
 if guess > 8:
 print("大了,大了")
 else:
 if guess == 8:
 print("你是小哥哥心裡的蛔蟲嗎?")
 print("哼,猜對也沒有獎勵!")
 count = 3
 else:
 print("小了,小了")
 count = count + 1
print("遊戲結束,不玩兒啦!")
 

for 循環

for iter_var in interables:
 suite_to_repeat
  • 每次循環,iter_var迭代變量被設置為可迭代對象interales的當前元素,提供給suite_to_repeat語句塊使用。

例子1

for i in 'ILoveLSGO':
 print(i, end=' ') #不換行輸出

例子2

member = ['張三', '李四', '劉德華', '劉六', '周潤發']
for each in member:
 print(each)
for i in range(len(member)):
 print(member[i])

range() 函數

range([start,] stop[, step=1])
  • 這個BIF(Built-in functions)有三個參數,其中用中括號括起來的兩個表示這兩個參數是可選的。
  • step=1 表示第三個參數的默認值是1。
  • range 這個BIF的作用是生成一個從start參數的值開始到stop參數的值結束的數字序列,該序列包含start的值但不包含stop的值。

例子1

for i in range(2, 9): #不包含9
 print(i)

例子2

for i in range(1, 10, 2):
 print(i)

break 語句

  • break語句可以跳出當前所在層的循環。
import random
secret = random.randint(1, 10) #[1,10]之間的隨機數
while True:
 temp = input("不妨猜一下小哥哥現在心裡想的是那個數字:")
 guess = int(temp)
 if guess > secret:
 print("大了,大了")
 else:
 if guess == secret:
 print("你是小哥哥心裡的蛔蟲嗎?")
 print("哼,猜對也沒有獎勵!")
 break
 else:
 print("小了,小了")
print("遊戲結束,不玩兒啦!")

continue 語句

  • continue終止本輪循環並開始下一輪循環。
for i in range(10):
 if i % 2 != 0:
 print(i)
 continue
 i += 2
 print(i)

pass 語句

def a_func():
# SyntaxError: unexpected EOF while parsing
  • pass語句的意思是“不做任何事”,如果你在需要有語句的地方不寫任何語句,那麼解釋器會提示出錯,而pass語句就是用來解決這些問題的。
def a_func():
 pass

3. 綜合例子

passwdList = ['123', '345', '890']
valid = False
count = 3
while count > 0:
 password = input('enter password:')
 for item in passwdList:
 if password == item:
 valid = True
 break
 if not valid:
 print('invalid input')
 count -= 1
 continue
 else:
 break

總結

好了,到此為止有關於條件和循環語句的內容就介紹完了。小朋友們要刻意練習哦,基於這些語句,我們後面能做很炫的遊戲來玩兒!是不是有些小期待!

相關圖文

  • 資料分享:數學建模資料分享 -- 圖論部分
  • 資料分享:數學建模資料分享 -- 神經網絡部分
  • 如何利用 C# 實現 K 最鄰近算法?
  • 如何利用 C# 實現 K-D Tree 結構?
  • 如何利用 C# + KDTree 實現 K 最鄰近算法?
  • 如何利用 C# 對神經網絡模型進行抽象?
  • 如何利用 C# 實現神經網絡的感知器模型?
  • 如何利用 C# 實現 Delta 學習規則?
  • 如何利用 C# 實現 誤差反向傳播 學習規則?
  • 如何利用 C# 爬取帶 Token 驗證的網站數據?
  • 如何利用 C# 向 Access 數據庫插入大量數據?
  • 如何利用 C# + Python 破解貓眼電影的反爬蟲機制?

經過8年多的發展,LSGO軟件技術團隊在「地理信息系統」、「數據統計分析」、「計算機視覺」等領域積累了豐富的研發經驗,也建立了人才培養的完備體系,由於自己準備在「量化交易」領域精進技能,如果大家對這個領域感興趣可以與我聯繫,加入我們的量化學習群一起學習探討。

在這個領域我已做了以下積累:

策略部分:

  • 數字貨幣 One 的投資價值分析
  • 數字資產量化中的跨市場套利策略
  • 數字資產量化中的同市場套利策略
  • 數字資產量化中的網格交易法
  • 我們能否效仿李笑來的投資策略?
  • 賺錢是剛需,如何正確的交易股票?

數據部分:

  • 如何利用 C# 爬取 One 的交易數據?
  • 如何利用 C# 爬取 One 持有者返利數據?
  • 如何利用 C# 爬取BigOne交易所的公告?
  • 如何利用 C# 爬取Gate.io交易所的公告?
  • 如何利用 C# 爬取「財報說」中的股票數據?

自動化交易部分:

  • 封裝BigOne API:身份驗證
  • 封裝BigOne API:獲取賬戶資產
  • 封裝BigOne API:訂單系統
  • 封裝BigOne API:網格交易法
  • 封裝BigOne API:代碼的重構
  • 進一步完善自動化交易系統01
  • 進一步完善自動化交易系統02
  • 如何開發「股票數據分析軟件」(上)
  • 如何開發「股票數據分析軟件」(中)
  • 如何開發「股票數據分析軟件」(下)
  • 進一步完善「股票數據分析軟件」 - 01

後臺回覆「搜搜搜」,隨機獲取電子資源!

歡迎關注,請掃描二維碼:

教小朋友學 Python -- 條件與循環



分享到:


相關文章: