编写函数实现员工信息录入和输出_高中信息技术【必修1】2.4可以复用的代码...

学习目标

★了解函数的作用。
★学会函数的定义和调用方法,并能熟练使用函数解决问题。

★学会发布共享代码的常见方法,并能熟练使用模块解决问题。

本课要点

任务一  用自定义函数实现火柴摆数字问题846f773c5668465ce8e4ff49ba19f72b.png

活动1 用流程图表述问题解决的思路

有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。

7621ee547f1fa9336df3f75186eb345b.png

要找出这些数,可以从0到111依次判断这些数是不是恰巧需要6根火柴棒。为什么是0到111呢?观察上图可知,在0~9这十个数字中,摆出“1”只需要2根火柴棒,是需要火柴棒数最少的数字。因此6根火柴棒能摆放的最大数就是111。将自己的想法用流程图表示出来。

00ad05e1b5c51d20521cd79d5f35baf7.png

如何计算一个数需要多少根火柴棒呢?可以将这个数的每个数位上的数字所需要的火柴棒数加起来。实现方法是将这个数除以10取余,求得个位数;然后将这个个位数需要的火柴棒数累加;接着将这个数除以10取整,去掉个位数;重复以上步骤直到这个数为0。

092ea5097d85237f9ea356cddcdace48.png

活动2 完善程序实现问题解决

如果遇到一个需求多次出现,可以先思考,有没有内置函数提供帮助。如果没有,则可以考虑寻找或自己编写一个自定义函数。“一个数字需要多少根火柴棒”的问题可以通过函数计算来实现。

一、函数

函数可分为系统函数和用户自定义函数两种类型。

系统函数即函数库中的标准函数,是程序设计语言或操作系统提供给用户的一系列已经编制好的程序。在前面单元使用过的print()和input()函数都是系统函数。前者用于将字符串按指定格式输出到屏幕上;后者用于接收键盘的输入,并存储于相应变量中。

常见的系统函数有以下几种:

●数学运算类函数

●数据转换类函数

●字符串操作类函数
●输人输出函数

●文件操作类函数

●其他类函数

用户自定义函数则是用户自己编写的一段程序。函数一般包括函数名、参数、返回值和函数体等四部分。其中,函数名和函数体是必不可少的,参数和返回值可根据需要进行定义。定义函数的基本格式如下。

1226ef0972d1ee9d348602ef6ea5719f.png

参数是用来向函数传递值的,当有多个参数时,各个参数之间用逗号分隔开。函数执行完成后,由return语句将表达式值返回给调用者,结束函数。函数的调用采用函数名(参数)的方式。

用自定义函数求n!

def factorial(n):

  #求n!

  s=1

  for i in range(2,n+1):

    s=s*i

  return s

#调用factorial函数

total=factorial(4)

print(total)

列出所有能摆出的自然数。

def match_num(num):

    f=[6,2,5,5,4,5,6,3,7,6]# 0-9的数字分别需要多少根小棒

    if num==0:               # 火柴棒总数变量赋初值

        total=f[0]

    else:

        total=0

    while (num>0):

        x=num % 10# 取num除以10的余数,即num的个位数

        total=total+f[x]        # 所需火柴棒数累加

        num=num//10#num整除10,即去掉num的个位数

    return total#返回需要多少根火柴棒数

#以下为主程序   

snum=6 # 6根火柴棒

print("你可以拼出这些数字:")

for i in range(112):             

    if match_num(i)==snum: #如果i需要的火柴棒数等于现有火柴棒数

        print (i)

任务二  发布共享代码实现火柴棒摆数字问题

846f773c5668465ce8e4ff49ba19f72b.png

活动1 发布共享代码

任何人编写的代码都有可能帮到其他人,那么如何共享这些有价值的成果呢?常见的方法是发布代码。请将“计算一个数字需要多少根火柴棒”的函数match_num转换为模块,然后发布。

二、发布代码

  1. 在D盘创建一个名为mymodule的文件夹

  2. 在该文件夹内拷入两个文件:mymodule.py和setup.py

    98c346b1360689b0efe3db729a1d62af.png

    988f3296c1737bf3507209a9daa8eb9a.png

  3. 构建发布文件

    4d0d3ebcc3be1c75092bd05b4501b89b.png

  4. 安装到本地

    b8bc75ad45d4bb1ef775ac4b1beaf2da.png

三、导入模块并使用

import   mymodule           #导入模块    

snum=6  # 6根火柴棒                   

print("你可以拼出这些数字:")

for i in range(112):             

    if  mymodule.match_num(i)==snum: #调用模块内match_num()函数

        print (i)

四、拓展练习

实现输入一个人的出生年份(>=1900),输出他的生肖,直到输入0结束。

def shengxiao(year):

    #求生肖

    zodiac=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"]

    index=(year-1972)%12

    return zodiac[index]

 #以下为主程序

myyear=int(input("请输入出生年份,输入0结束:"))

while myyear!=0:  

    print("你的生肖是:",shengxiao(myyear))

    myyear=int(input("请输入出生年份,输入0结束:"))

求1!+2!+3!+……+10!的结果,要求用函数实现阶乘的计算。

def factorial(n):

  #求n!

  s=1

  for i in range(2,n+1):

    s=s*i

  return s

#调用factorial函数

total=0

for i in range(1,11):

  total=total+factorial(i)

print(total)

588f4d028c2b1c987d7d7fa5c2190bc3.png

备课素材包

链接:

https://pan.baidu.com/s/1G2PWUojD5k6i1RqZREDvNA

提取码:vewh

ec7dd97872448b0a43ec9678894eca61.png

往期精彩链接:

【视频讲解】山东省信息技术通用技术学业水平考试模拟试题讲解合集

【在线答题】山东省高中信息技术学业水平考试模拟试题1-10套

【试题文本】2020年高中学考信息技术15套和通用技术12套合集

高中信息技术【必修1】2.1计算机解决问题的过程

高中信息技术【必修1】2.2做出判断的分支

高中信息技术【必修1】2.3周而复始的循环

高中信息技术【必修1】3.2数据与结构

高中信息技术【必修1】3.1数据编码

高中信息技术【必修1】3.3数据与系统

高中信息技术【必修1】3.4加密与解密

高中信息技术【必修1】4.1算法及其特征

高中信息技术【必修1】4.2数值计算

高中信息技术【必修1】4.3非数值计算

高中信息技术【必修1】4.4综合问题的解决

高中信息技术【必修1】5.1走近数据分析

高中信息技术【必修1】5.2探秘人工智能

免责声明:本文转载于李雪梅名师工作室微信号,整理转发旨在传播优质信息资源,如涉及版权等问题,我们将立即更正或删除相关内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值