• 初中信息技术(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("处理结束!")
    
    大佬您太强了,还请多多指教哎
  • 相关阅读:
    数据抓去之初次接触
    PHP学习
    git预览项目
    正在加载中动画链接 css左右、关闭按钮
    正则表达式
    【独家】K8S漏洞报告|近期bug fix解读&1.11主要bug fix汇总
    关于k8s这项大动作,预示着边缘计算迎来“开源”发展的新周期……
    idou老师教你学istio :基于角色的访问控制
    K8s爆严重安全漏洞?有何应对措施与建议
    【容器魔方解读】AWS Re:Invent 2018大会
  • 原文地址:https://www.cnblogs.com/BobHuang/p/15531908.html
Copyright © 2020-2023  润新知