
Python編程語言以其語法簡潔、類庫豐富的特點廣受編程新手喜愛。對于初中信息技術教師而言,Python程序是一門內容相對較新的課程;對于學生而言,雖然他們對操作電腦比較精通,但對于編程語言可能了解甚少。因此,在課程開始前,教師需要進行充分的準備工作,除了要對教學內容進行整體梳理,還要研究Python程序設計教學中的“透”和“趣”。這實質上就是以學生興趣為基礎,將學科知識和日常生活進行整合,打造具有立體感和層次感的學習過程。同時,教師在進行教學設計時要兼顧興趣與理論知識,不可因培養興趣而忽視理論知識教學。若想完成上述目標,教師還要對Python程序的教學內容進行深度剖析。這樣既能充分挖掘教材,讓學生“吃透”“學透”,掌握扎實的理論基礎,還能培養自己在教學領域的創新思維。
“初識Python”是Python程序設計系列課程的第一課,是開啟Python世界大門的鑰匙,在激發學生學習興趣并掌握編程語言方面具有重要意義。這一課通過充滿趣味的教學,讓學生初步了解Python編程語言,并體驗程序設計的魅力。
一、教學概況
部分學生在小學階段接觸過編程內容,但掌握不系統、運用不夠靈活;部分學生是入校后第一次接觸學習。
二、教學展示
(一)尋找Python“鑰匙”(課前導入)
(多媒體展示:Python圖標;Python軟件創始人)
師:編程語言,顧名思義是用來編寫計算機程序的特定語言,從而向計算機設備發出指令,讓計算機完成指定的任務。編程語言有很多種,今天我們要學習的是Python,展示的人物是Python軟件創始人吉多·范羅蘇姆,他是一名計算機程序員,被稱為Python之父,目前仍然在從事Python開發工作。在Python開發領域流傳著這樣一句話:life is short,you need Python(“人生苦短,我用Python”),體現了Python程序語言的優勢。從本課開始,我們一起探索Python程序內容,希望大家通過學習能多掌握一門技術語言。
(設計意圖:通過簡單有趣的導入,讓學生了解課程基本內容,明確課程學習的意義,在心中埋下學習興趣的種子。)
(二)打開Python之門(新課講授)
第一站:探索Python編程環境
教師引導:我們將開啟Python編程的學習旅程,請大家打開電腦桌面上的學習資料,跟隨指導步驟,一起探索Python的環境,并為電腦配置編程環境。
多媒體下發學生自主學習任務:
1.學習打開Python軟件的方法。
2.認識并理解殼窗口的功能。
3.調整編輯器以適應個人喜好。
4.實踐使用殼窗口進行基本操作。
教學點睛:Python編程環境不是物理狀態的環境,而是一種計算機系統狀態,在這種環境中計算機可以開始特定的工作。在講授過程中,教師要注意區分術語,以免學生混淆。通過教師及時的同步解釋,學生會漸入學習佳境。
(設計意圖:這一站的目標是讓學生熟悉Python的殼窗口和提示符。相比理論學習讓學生不知所云,動手操作更能讓學生有學習興趣;通過老師布置的基礎任務,學生在自主操作的過程中能夠快速熟悉課程框架,邁出新課學習第一步。)
第二站:深入Python編程世界
在這一站,我們將探索Python的兩個核心函數:print()和input()。
1. print()函數
師:print有打印、印刷的意思,在編程語言中表示輸出,print()函數表示允許我們向計算機設備輸出信息。
先由教師在程序做演示,再指導學生學習如何使用print()函數輸出文本,強調文本無論是用單引號還是雙引號,都必須成對出現。此外,英文狀態下的標點符號也需要正確使用。
教學提示:有條件或時間充裕的情況下,教師可以開展“大家來找碴”游戲,讓學生判斷代碼的正確與否,通過具體的圖例展示發現問題,進而檢查代碼的正誤,降低學生面對一連串代碼不知所云的枯燥性。
2. input()函數
師:input()函數允許我們接收用戶的輸入,盡管input()函數看起來和print()函數相似,但它們之間的一個重要區別是input()會等待用戶輸入后才繼續執行。為了在程序中使用這些輸入的數據,我們需要給輸入的內容賦值給一個變量(如圖1)。
學生嘗試操作,輸入“caicai”并按下回車鍵,屏幕上會顯示輸入的內容。
(設計意圖:本環節體現了在教學設計中要重視“透”這一點,引導學生深刻掌握這兩個函數的作用,理解意義并學會如何操作,吃透用法,在后續的學習中才能穩扎穩打。)
第三站:掌握Python編輯技巧
師:在這一站,我們將學習如何使用Python編輯窗口來保存我們寫的代碼。因為殼窗口關閉后,內容會丟失,所以需要找到可以保存代碼的地方,以下步驟請同學們跟著老師一起操作。
1.開啟編輯窗口
打開一個新的編輯窗口,并將代碼復制、粘貼到編輯窗口中。按下F5鍵,編輯窗口會提示是否保存文件。
2.保存文件
接下來,選擇電腦桌面作為文件保存的位置,給文件起一個名稱,比如“1”,注意不要添加任何后綴。這樣,文件默認的擴展名就是.py(python腳本文件),完整的文件名就是“1.py”。
3.實踐操作
現在,請大家在編輯窗口中輸入兩行代碼,并保存文件名為“1.py”來運行并觀察結果是什么。
4.探索問題
請大家思考:如果我們按照以下方式編寫代碼,這樣寫行不行?如果不行,應該如何修正?
代碼示例:
```python
>>> print(1 + '123')
```
學生回答并修正:
```python
>>> print('1' + '123') # 輸出:'1123'
>>> print(1 + 123) # 輸出:124
```
教師小結:通過以上學習,我們不僅創建了第一個具有交互功能的Python程序,還學會了如何將程序上傳到機器人上,實現了簡單的人機對話交互功能。如果程序能夠上傳到機器人的主板上,機器人就具備語言識別功能,這就是大家熟知的“小度”的運行原理。
第四站: Python實踐——制作星座查詢小程序
師:在這一站,老師將教大家學習如何編寫一個簡單的星座查詢程序,這個程序將根據用戶輸入的生日,幫助他們找到對應的星座。
首先,我們需要了解一些基礎知識:
星座列表(`star`):包含了十二個星座的名稱。
月份日期列表(`d1`):包含了每個星座第一個月的上限日期。
月份日期列表(`d2`):包含了每個星座第二個月的下限日期。
然后,需要讓用戶輸入自己的生日,我們可以使用input()函數來實現這一點。
接下來,我們需要檢查用戶輸入的日期是否在某個星座的日期范圍內,可以使用一個`for`循環來遍歷`d1`和`d2`列表,并檢查用戶輸入的日期是否在范圍內。如果輸入的日期在某個星座的范圍內,我們將該星座的名稱賦值給一個變量(比如`result`),并跳出循環。
最后,我們輸出變量`result`的值,告訴用戶他們的星座內容。
學生認真觀察老師的操作過程,有學習基礎的同學可以試著自己操作。
師:下面是這個程序的代碼示例, 將根據用戶輸入的生日,告訴他們對應的星座。
```python
# 星座名稱和日期范圍
star_dates = [
("水瓶座", (1, 20), (2, 18)),
("雙魚座", (2, 19), (3, 20)),
("白羊座", (3, 21), (4, 19)),
("金牛座", (4, 20), (5, 20)),
("雙子座", (5, 21), (6, 20)),
("巨蟹座", (6, 21), (7, 22)),
("獅子座", (7, 23), (8, 22)),
("處女座", (8, 23), (9, 22)),
("天秤座", (9, 23), (10, 22)),
("天蝎座", (10, 23), (11, 21)),
("射手座", (11, 22), (12, 21)),
("摩羯座", (12, 22), (1, 19))
]
# 獲取用戶輸入并處理
birthday = input("請輸入你的生日(格式如0417):")
month = int(birthday[:2])
day = int(birthday[2:])
# 查找星座
result = ""
for star,(start_month, start_day), (endYHLgfyM/Yb+KLR3oZ5ZelANgHjQvz/p/HLJe/g3XDvs=_month,end_day) in star_dates:
if((month==start_month and day>= start_day)or
(month == end_month and day <= end_day)):
result = star
break
# 輸出結果
if result:
print(f"你是{result}寶寶。")
else:
print("輸入有誤,請輸入正確的日期。")
```
學生檢查自己的程序是否能運行,如有問題先自行檢查,再求助老師。
(設計意圖:通過結合學生感興趣的星座內容學習做小程序,既能趁熱打鐵、現學現用,又體現了教學的“趣”,削減了學生的畏難和枯燥情緒。)
三、教學復盤
(一)課后作業
(1)請同學們相互修正并補全星座查詢程序。
(2)修改程序中的日期判斷條件,以適應不同月份的天數。
(設計意圖:學習編程語言需要學生勤學勤練,通過課后練習將課堂所學轉化為個人技能,讓學生的學習興趣能持續發力。)
(二)教學總結
本次教學通過趣味性導入、實踐性教學等方法讓學生在第一堂課上知道什么是編程語言,了解并學習使用最基本的函數知識,試著寫一寫簡單的代碼并知道如何保存,再在教師的指導下做簡易的程序。通過這一系列操作,課程框架初步搭建起來,隨著課程內容越來越深入,學生的學習基礎越來越扎實,在達成教學目標的同時,對學生核心素養的培養也會水到渠成。
當然,由于每個學生的學習基礎與能力各異,班級整體水平仍有參差。筆者在今后會根據實際做一定的調整,讓有基礎、有能力的學生“帶頭先跑”,在其學有余力之時還可以幫助基礎薄弱的同學,實現共同進步。
(作者單位:甘肅省蘭州市榆中縣連搭中學)
編輯:張國仁