初中信息技術(Python) 源代碼


本博客原文地址:https://www.cnblogs.com/BobHuang/p/15531908.html,原文體驗更佳
編程集中出現在八年級上冊,為高中信息技術必修的前置內容。大多數題目都可以使用在線評測平台測試練習,詳見 初中信息技術(Python)TZOJ題單

第一單元 Python程序設計基礎

第1課 初識Python

P4 輸出語句

print("歡迎來到精彩的Python世界!")
print("Hello, Python World!")

P5 打招呼

# 我的第一個程序
name=input("請輸入你的姓名")
print("你好,",name)

P6 隨堂練習2

>>> print("2+3=",2+3)

結果為2+3= 5

P6 隨堂練習3

name=input("請輸入你的姓名:")
age=input("請輸入你的年齡:")
print("大家好,我叫",name,",今年",age,"歲。")

第2課 常用數據類型

P8 字符串索引

>>> st="Python"
>>> print(st[0],st[1],st[2],st[3],st[4],st[5])

結果為P y t h o n

P9 列表索引

>>> lst=[571,"杭州",572,"湖州",573,"嘉興"]
>>> print(lst[0],lst[1],lst[2],lst[3],lst[4],lst[5])

結果為571 杭州 572 湖州 573 嘉興

P9 切片

>>> lst=['HUAWEI','OPPO','VIVO','XIAOMI']
>>> lst[1:3]

結果為['OPPO', 'VIVO']

P9 開動腦筋

>>> lst=['HUAWEI','OPPO','VIVO','XIAOMI']
>>> lst[0][1]

結果為'U'

P9 日積月累
st="Python",則st[-1]返回值是'n',st[1]返回值是'y'。
lst=['HUAWEI','OPPO','VIVO','XIAOMI'],則lst[-3:-1]返回值是['OPPO','VIVO']。

P10 三角形周長

a,b,c=3,4,5
msg="三角形周長是"
p=a+b+c
print(msg,p)

P11 隨堂練習1

>>> a,b=3,"Hello"
>>> type(a),type(b)

結果為(<class 'int'>, <class 'str'>)

>>> len(b)

結果為5

P11 隨堂練習2

>>> Mphone=['HUAWEI','OPPO','VIVO','XIAOMI']
>>> _____________

輸出結果為['OPPO'],空處應填Mphone[1:2]

>>> _____________

輸出結果為['OPPO','XIAOMI'],空處應填Mphone[1:3]

第3課 算數運算符和表達式

P13 運算符示例

>>> 5+30*20/10

結果為65.0

P13 親身體驗

>>> 3+5.0
>>> 9**0.5
>>> 123%10

結果分別為
8.0
3.0
3

P15 華氏溫度轉攝氏溫度

F=float(input("請輸入華氏溫度:"))
C=(5/9)*(F-32)
print("對應的攝氏溫度為:",C)

P15 fomat函數保留2位小數

>>>  x=26.666666666668
>>>  print(format(x,'.2f'))

結果為26.67

P16 隨堂練習1 3位數的每一位

x=int(input('輸入3位數的自然數:'))
a=x//100              #百位上的數字
_________             #十位上的數字
c=x%10                #個位上的數字
print(a,b,c,sep=',')

空處應填b=x//10%10或b=x%100//10等

P16 隨堂練習2 攝氏溫度轉華氏溫度

C=float(input("請輸入攝氏溫度:"))
F=9*C/5+32
print("對應的華氏溫度為:",F)

第二單元 Python程序基本結構

第4課 順序結構程序設計

P20 海倫公式求三角形面積

#輸入三角形的三邊長
a=float(input("輸入三角形的第一邊長:"))
b=float(input("輸入三角形的第二邊長:"))
c=float(input("輸入三角形的第三邊長:"))

#計算三角形的半周長
p = (a+b+c)/2.0

#計算三角形的面積
s=(p*(p-a)*(p-b)*(p-c))**0.5

#輸出三角形的面積
print("三角形面積為:",s)

P21 隨堂練習求圓的面積、周長

R=float(input("請輸入圓的半徑R:"))
PI=3.14
S=________
L=________
print("圓的周長為:",S,"圓的面積為:",L)

空處應填PI*R*R和2*PI*R以及其他等價形式

第5課 分支結構設計

P23 兩個數較大

if a>=b:
    print("兩個數中較大為:",a)
else:
    print("兩個數中較大為:",b)

P23 親身體驗,兩個數較小

if a<=b:
    print("兩個數中較小為:",a)
else:
    print("兩個數中較小為:",b)

P25 輸入賬號和密碼,校驗是否正確

# 輸入賬號和密碼
user=input("請輸入賬號:")
pwd=input("請輸入密碼:")

# 判斷輸入的賬號和密碼是否正確
if user=="admin" and pwd=="Python@16":
    print("登陸成功!")
else:
    print("賬號密碼有誤!")

P26 隨堂練習1 出租車收費

#輸入路程
s=float(input("請輸入行駛路程:"))
#向上取整
if int(s)!=s:
    s=round(s+0.5)
#計算金額
if s<=3:
    m=10
else:
    __________
print(s,"千米","付費",m,"元")

空處應填m=10+(s-3)*2
P26 隨堂練習2 判斷三角形是否成立

#輸入三條邊長
a=float(input("輸入三角形第一邊長:"))
b=float(input("輸入三角形第二邊長:"))
c=float(input("輸入三角形第三邊長:"))
#若構成三角形、則求三角形面積
if _____________
    p = (a+b+c)/2.0
    s=(p*(p-a)*(p-b)*(p-c))**0.5
    print("三角形面積為:",s)
else:
    print("輸入的三條邊,不能構成三角形!")

空處應填a+b>=c and a+c>=b and b+c>=a:

第6課 多分支結構程序設計

P28 三個數的最大值

if a>=b and a>=c:
    print("三個數中最大數為:",a)
elif b>=c:
    print("三個數中最大數為:",b)
else:
    print("三個數中最大數為:",c)

P29 親身體驗 三個數的最小值

if a<=b and a<=c:
    print("三個數中最小數為:",a)
elif b<=c:
    print("三個數中最小數為:",b)
else:
    print("三個數中最小數為:",c)

P29 開動腦筋 三個數最大值的其他解法

max_value=a
if b>max_value:
    max_value=b
if c>max_value:
    max_value=c
print(max_value)

P30 算術四則運算的簡易計算器

# 簡易計算器(四則運算)
x=float(input("請輸入第一個運算數:"))
y=float(input("請輸入第二個運算數:"))
op=input("請輸入算術運算符(+-*/):")
c=0
if op=='+':
    c=x+y
    print("運算結果為:",c)
elif op=='-':
    c=x-y
    print("運算結果為:",c)
elif op=='*':
    c=x*y
    print("運算結果為:",c)
elif op=='/':
    try:
        c=x/y
        print("運算結果為:",c)
    except:
        print("除數不能為零!")
else:
    print("運算符輸入有誤!")

P31 隨堂練習 運動會成績名次
使用多分支語句

#輸入名次
mc=int(input("參加運動會項目名次(1~6):"))
#計算並輸出得分
if mc==1:
    print("得分為:7分")
elif mc==2:
    print("得分為:5分")
elif mc==3:
    print("得分為:4分")
elif mc==4:
    print("得分為:3分")
elif mc==5:
    print("得分為:2分")
elif mc==6:
    print("得分為:1分")
_______
    print("輸入的名次不在1~6范圍!")

空處應填else:

使用列表

#輸入名次
mc=int(input("參加運動會項目名次(1~6):"))
#利用列表,計算得分
lst=[7,5,4,3,2,1]
if mc>=1 and mc<=6:
    __________
    print("項目得分為:",df)
else:
    print("輸入的名次不在1~6范圍!")

空處應填df=lst[mc-1]

第7課 多分支結構的應用實例

P34 根據車牌首字母識別汽車所在地

#汽車牌號所在地查詢
chepai= input("請輸入汽車牌號首字母:")
if chepai=="A":
    print("所在地:杭州市")
elif chepai=="B":
    print("所在地:寧波市")
elif chepai=="C":
    print("所在地:溫州市")
elif chepai=="D":
    print("所在地:紹興市")
elif chepai=="E":
    print("所在地:湖州市")
elif chepai=="F":
    print("所在地:嘉興市")
elif chepai=="G":
    print("所在地:金華市")
elif chepai=="H":
    print("所在地:衢州市")
elif chepai=="J":
    print("所在地:台州市")
elif chepai=="K":
    print("所在地:麗水市")
elif chepai=="L":
    print("所在地:舟山市")
else:
    print("無法查詢")

P35 開動腦筋 要求不區分大小寫

#將小寫轉換為大寫
if chepai>='a' and chepai<='z':
    chepai=chr(ord(chepai)-ord('a')+ord('A')) 

#首字母是列表第二個元素
chepai= chepai[1]

P35 隨堂練習 空氣質量指數查詢

AQI = int(input("請輸入空氣指數值:"))
if AQI<=50:
    print("空氣質量優,各類人群可戶外正常活動")
elif AQI<=100:
    print("空氣質量良,少數敏感人群減少戶外運動")
elif AQI<=150:
    print("空氣輕度污染,減少長時間戶外運動")
elif AQI<=200:
    print("空氣中度污染,應適量減少戶外運動")
elif AQI<=300:
    print("空氣重度污染,一般人減少戶外活動")
else:
    print("空氣嚴重污染,一般人避免戶外活動")

第8課 循環結構--for循環

P37 for循環遍歷字符串

#輸出字符串中的各個字符
s="Python3"
for i in s:
    print(i)

P38 開動腦筋 for循環輸出["apple","banana","peach"]

#輸出列表中各個元素
lst=["apple","banana","peach"]
for i in lst:
    print(i)

P38 求1到n中的奇數的和

sum=0
for i in range(1,101,2):
    sum=sum+i
print("1~100的所有奇數的和:",sum)

P38 輸出列表中的各個元素

#輸出列表中各個元素
lst=["apple","banana","peach"]
n=len(lst)
for index in range(n):
    print("當前水果:",lst[index])

P39 親身體驗 利用len()函數輸出"Python3"各個字符

s="Python3"
n=len(s)
for i in range(n):
    print(s[i])

P39 隨堂練習1

#通過成員資格運算符輸出列表元素
program=["Java","Python","Visual Basic"]
for w in program:
    print(w,len(w))

輸出應填
Java 4
Python 6
Visual Basic 12

P39 隨堂練習2

#通過索引遍歷輸出列表元素
program=["Java","Python","Visual Basic"]
n=len(program)
for i in range(n):
    print(i,program[i]) 

輸出應填
0 Java
1 Python
2 Visual Basic

第9課 for循環的應用實例

P42 數麥粒

#n表示棋盤的格子數
n=int(input("請輸入棋盤格子數:"))
p=1     #第1格麥粒數p置初值1
s=0     #累加器s初始化為0
#通過for語句循環累加,並輸出麥粒總數
for i in range(1,n+1):
    s=s+p
    p=p*2
    print("當前格子序號:",i,",當前格子麥粒數:",int(p/2))
print("棋盤格子數為:",n,"麥粒總數:",s)

P43 利用麥粒數估算重量

s=(s*0.03)/(1000*1000)

P44 尋找水仙花數

lst=[]
for __________
    a=i%10
    b=(i//10)%10
    c=i//100
    if (a**3+b**3+c**3)==i:
        lst.append(i)
print(lst)

空處應填i in range(100,1000,1):

第10課 循環結構--while循環

P46 多個數求和

#計數器和累加器置初值0
s=0
i=0
#輸入需循環計算的數,並給出結束循環的條件
xstr=input("請輸入數【直接按回車則】:")
while xstr!="":
    x=float(xstr)
    s=s+x
    i=i+1
    xstr=input("請輸入數【直接按回車則】:")
print("\n輸入個數為:",i)
print("輸入和為:",format(s,".2f"))

P47 開動腦筋,輸入"quit"退出循環

while xstr!="quit":

P47 登錄程序

user=""
psd=""
while True:
    if user!="admin":
        user=input("請輸入賬號:")
        continue
    psw=input("請輸入密碼:")
    if psw=="Python@16":
        break
print("賬號密碼正確,登陸成功!")

P38 隨堂練習1 閱讀程序

x=0
while x<50:
    x=(x+2)*(x+3)
print(x)

輸出結果為72
P38 隨堂練習2 閱讀程序

x=0
while x<10:
    x=x+1
    if x%2==0:
        continue
    print(x)

輸出結果為
1
3
5
7
9

第11課 while循環的應用實例

P51 猜數游戲

num=66
i=0
while True:
    guess=int(input("請輸入猜測的數:"))
    if guess<num:
        print("偏小")
        i=i+1
    elif guess>num:
        print("偏大")
        i=i+1
    else:
        print("正確,共猜測次數:",i+1)
        break

P51 隨堂練習 儲蓄問題

#儲蓄年數n置初值0
n=0
#p是本金金額
p=float(input('請輸入本金金額:'))
#q是預期數額
q=float(input('請輸入預期金額:'))

while __________:
    p=p+p*0.03
    n+=1
print("需要儲蓄(年數):",n)

空處應填p<q或q>p

第三單元 算法與程序設計

第12課 Python的函數

P55 內建len()函數

>>> st="Python"
>>> len(st)

輸出結果為6

lst=['HUAWEI','OPPO','VIVO','XIAOMI']
len(lst)

輸出結果為3

P56 調用函數打印姓名和年齡

#定義printinfo函數
def printinfo(name,age):
    print("Name:",name)
    print("Age:",age)

#調用printinfo函數
printinfo("miki",50)
printinfo(age=50,name="miki")

輸出結果為
Name: miki
Age: 50
Name: miki
Age: 50

P58 斐波那契數列的前n個元素

#定義fib函數,n為形參
def fib(n):
    a,b=1,1
    for i in range(3,n+1):
        a,b=b,a+b
    return b

#輸入月數
n=int(input('請輸入第n個月:'))
#調用fib函數,i值為實參
for i in range(1,n+1):
    print(fib(i),end=' ')

P59 隨堂練習2 第幾天

#定義函數 fcount()
def fcount (year, month, day):
    sum=0
    #判斷該年是否為閏年
    if year%400==0 or (year%4==0 and year%100!=0):
        lst=[31,29,31,30,31,30,31,31,30,31,30,31]
        for i in range(month-1):
            sum=sum+lst[i]
        return sum+day
    else:
        lst=[31,28,31,30,31,30,31,31,30,31,30,31]
        for i in range(month-1):
            sum=sum+lst[i]
        return sum+day

#輸入年月日
year=int(input("請輸入年份:"))
month=int(input("請輸入月份:"))
day=int( input("請輸入日期:"))
# 調用函數fount(),並輸出天數
sum=_____________
print(year,"年", month,"月",day,"日","是今年的第",sum,"天!")

空處應填fcount(year, month, day)

第13課 Python的模塊

P61 導入整個模塊的文件

>>> import math
>>> math.sqrt(2)

只導入模塊中的指定函數

from math import pow
pow(2,3)

P64 利用蒙特卡羅方法計算π的值

import random
import math
num = int(input("請輸入投點數:"))
point = 0
for i in range(1, num+1):
    x, y = random.random(), random.random()
    dist = math.sqrt(x ** 2 + y ** 2)
    if dist <= 1.0:
        point = point + 1
Pi = 4.0 * (point/num)
print("Pi值是:",Pi)

P65 隨堂練習1 觀察輸出結果

>>> import random
>>> dir(random)
>>> help(random)
>>> random.random()
>>> random.randint(1,10)

P65 隨堂練習2 列表元素循環左移問題
定義函數left(),並保存到模版文件move.py

# 模塊文件 move.py
# 將列表循環左移K位
def left(lst,k):
    temp=lst
    for i in range(k):
        temp.append(temp.pop(0))
    return temp

新建“列表元素的循環左移”文件lst_move.py,程序代碼如下,請填寫空缺的代碼。

import __________
p = [1,2,3,4,5,6]
n=3
print(__________)

空處應分別填
move
move.left(p,3)

第14課 枚舉算法

P70 百錢買百雞

count=0 #循環計數
for x in range(21):
    for y in range(34):
        count = count + 1
        if 5*x+3*y+(100-x-y)/3==100:
            print("公雞:",x,"母雞:",y,"小雞:",100-x-y)
print("循環運行次數:",count)

P70 隨堂練習1 零錢兌換

count=0 #循環計數
for x in range(21):
    for y in range(11):
        sy=100-(5*x+10*y)
        if sy>=0 and sy%20==0:
            count = count + 1
print("兌換方法數:",count)

P71 隨堂練習2 尋找完全數

# 初始化空列表
lst = []
for n in range(2,10001):
    s=0
    for i in range(1,n-1):
        if n%i==0:
            _____________
    if s==n:
        lst.append(n)
print("2~10000中的完全數有:",lst)

空處應填s=s+i

第15課 Python的圖形界面設計

P73 沒有組件的GUI程序

import tkinter #導入tkinter模塊
win=tkinter.Tk() #生成一個主窗體對象
win.geometry("250x130")
win.title("沒有組建的窗體")

win.mainloop() #進入消息循環

P73 "退出"按鈕的程序代碼

import tkinter as tk #導入tkinter模塊重名為tk
win=tk.Tk() #生成一個主窗體對象
win.title("沒有組建的窗體")
win.geometry("250x130") #窗體大小
def my_quit():
    win.quit()
    # win.destroy()

but_quit=tk.Button(win,text="退出",
        commad=my_quit(),width=10,height=2)

but_quit.pack()

win.mainloop() #進入消息循環

P76 tkinter實現登錄

#設計基本框架
import tkinter as tk
import tkinter.messagebox
win=tk.Tk()
win.title("用戶登錄")
win.geometry("250x130")

#---功能代碼開始---
#一設計功能函數--
#設置變量
var_Name=tk.StringVar() #設置變里為StringVar對象
var_Name.set('')   #初始和重置時的清空
var_Pwd=tk.StringVar()
var_Pwd.set('')
# 按鈕處理函數
def login():
    name=var_Name.get()  #獲取用戶名
    pwd=var_Pwd.get()  #獲取密碼
    if name=='admin' and pwd =='python@16':
        tk.messagebox.showinfo(title="用戶登錄", message="成功!")
    else:
        tk.messagebox.showinfo(title="用戶登錄", message="失敗!")

def cancel():
    var_Name.set('')#清空用戶名
    var_Pwd.set('')#清空密碼
def quit():
    win.quit()
    #win.destroy()

#一登錄窗口各組件設計一
#設計2個提示標簽
labname=tk.Label(win,text="賬號",width=80)
labpwd=tk.Label(win,text="密碼",width=80)
#設計2個輸入框( textvariable為文本框的值,並關聯變里 var_Name)
entname=tk.Entry(win, width=100, textvariable=var_Name)
entpwd=tk.Entry(win, show='*', width=100, textvariable=var_Pwd)
#設計3個按鈕
but_Ok=tk.Button(win,text="登陸", command=login)
but_Cancel=tk.Button(win,text="重置", command=cancel)
but_quit=tk.Button(win,text="退出", command=quit)
#---登錄窗口各組件布局---
#組建的窗口布局
labname.place(x=20, y=10, width=80, height=20)
labpwd.place(x=20, y=40, width=80, height=20)
entname.place(x=120,y=10,width=80, height=20)
entpwd.place(x=120, y=40, width=80, height=20)
but_Ok.place(x=30, y=80, width=50, height=20)
but_Cancel.place(x=100,y=80,width=50, height=20)
but_quit.place(x=170, y=80, width=50, height=20)
win.mainloop()

P76 隨堂練習 溫度轉換的tkinter程序

from tkinter import *
from tkinter import messagebox

def cancel():
    swdVar.set('')
    hwdVar.set('')

def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        return False

def FToC():
    if is_number(hwdVar.get()):
        # 華氏溫度轉化為攝氏溫度
        s = 5 / 9.0 * (float(hwdVar.get()) - 32)
        swdVar.set('{:.2f}'.format(s))
    else:
        messagebox.showinfo(title="錯誤", message="請輸入數字!")

def CToF():
    if is_number(swdVar.get()):
        # 攝氏溫度轉換為華氏溫度
        h = 9 / 5.0 * float(swdVar.get()) + 32
        hwdVar.set('{:.2f}'.format(h))
    else:
        messagebox.showinfo(title="錯誤", message="請輸入數字!")
win = Tk()
win.title('溫度轉換')
win.geometry('250x150')

# 攝氏溫度變量
swdVar = StringVar()
lb1 = Label(win, text="攝氏溫度C")
lb1.place(x=20, y=10, width=80, height=20)
swd = Entry(win, textvariable=swdVar)
swdVar.set('')
swd.place(x=100, y=10, width=100, height=20)

# 華氏溫度變量
hwdVar = StringVar()
lb1 = Label(win, text="華氏溫度C")
lb1.place(x=20, y=50, width=80, height=20)
hwd = Entry(win, textvariable=hwdVar)
hwdVar.set('')
hwd.place(x=100, y=50, width=100, height=20)
but_FToC=Button(win,text="C轉F", command=CToF)
but_FToC.place(x=50, y=80, width=50, height=20)

but_Cancel=Button(win,text="重置", command=cancel)
but_Cancel.place(x=50, y=110, width=50, height=20)

but_FToC=Button(win,text="F轉C", command=FToC)
but_FToC.place(x=150, y=80, width=50, height=20)
#退出按鈕
but_quit=Button(win,text="退出", command=win.destroy)
but_quit.place(x=150, y=110, width=50, height=20)
win.mainloop()

P78 閱讀材料 Python第三方庫的使用
數值計算NumPy、圖像處理PIL、2D圖形繪制Matplotlib、數據分析pandas和Python的Web開發框架Django,對應的包名分別為numpy、pillow、matplotlib、pandas和django。
可以直接在命令行下pip install或者切換到Python安裝目錄下的scipts目錄中執行命令

> pip install pillow

如果下載太慢,可以加上-i https://pypi.tuna.tsinghua.edu.cn/simple 使用清華的源來安裝

使用import關鍵字來導入第三方庫中的對象,PIL庫包含21個與圖像處理相關的對象,最常用的是Image和ImageFilter對象,可以按如下方式導入。

>>> from PIL import Image
>>> from PIL import ImageFilter

將一張BMP圖片生成其JPEG格式的縮略圖

#將一張圖片,生成其縮略圖
from PIL import Image                 #導入PIL庫中的Image對象
img = Image.open("麗江山水.bmp")       #加載圖像文件
img.thumbnail((128,128))              #創建文件的縮略圖
img.save("麗江山水縮略圖.jpg","JPEG")   #以JPEG格式保存圖像文件
print("處理結束!")

將圖片處理成浮雕效果

#將圖片處理成浮雕效果
from PIL import Image                 #導入PIL庫中的Image對象
from PIL import ImageFilter           #導入PIL庫中的ImageFilter對象
img = Image.open("麗江山水.bmp")       #加載圖像文件
omg=img.filter(ImageFilter.EMBOSS)    #生成圖像的浮雕效果
omg.save("麗江山水浮雕效果.bmp")         #保存圖像文件
print("處理結束!")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM