Python零基础学习7.1—Python自定义函数的定义和调用

这篇具有很好参考价值的文章主要介绍了Python零基础学习7.1—Python自定义函数的定义和调用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()。但我们也可以自己创建函数来实现一些功能,这被叫做用户自定义函数。

下面来看几个例题:

第1关:闰年的判断函数

任务描述

本关任务:编写一个函数,能判断年份n是否是闰年,并调用该函数判断输入的年份是否为闰年。

相关知识

为了完成本关任务,你需要掌握:1.如何定义函数,2.如何调用函数,3.如何判断年份是闰年。

函数的定义

def 函数名([形式参数列表]):

        函数体

        [return 返回值列表]

函数的调用三种形式

(1)作为语句形式出现(直接写在一行中) 

(2)在表达式中出现(此时函数需要有返回值)

(3)作为另一个调用函数的实际参数出现(此时函数需要有返回值)

如何判断闰年

能被4整除却不能被100整除或能被400整除的年份是闰年

测试说明

平台会对你编写的代码进行测试:

测试输入: 2021

预期输出: False

测试输入: 2020

预期输出:True

代码解析

def isleapyear(n):  
    if (n%4 == 0 and n%100 != 0) or n %400 == 0:
        return True
    else:
        return False
n=int(input())
print(isleapyear(n))

第2关:匿名函数的应用1

任务描述

本关任务:输入学生数据列表,要求:

(1)按年龄降序排列输出

(2)按姓名降序排列输出

相关知识

为了完成本关任务,你需要掌握:1.列表排序方法sort,2.lambda函数。

排序方法sort

list.sort( key=None, reverse=False )

key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。

reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

lambda函数

lambda匿名函数:用于定义简单的、能够在一行内表示的函数,返回一个函数类型。 格式如下: 函数名 = lambda 形式参数列表: 表达式

测试说明

平台会对你编写的代码进行测试:

测试输入:

请输入若干个学生姓名与年龄字典[{'name':'Tom','age':20},{'name':'Rose','age':22}]

测试输出:

[{'name': 'Rose', 'age': 22}, {'name': 'Tom', 'age': 20}]

[{'name': 'Tom', 'age': 20}, {'name': 'Rose', 'age': 22}]

代码解析

lst = eval(input("请输入若干个学生姓名与年龄字典"))
lst1 = sorted(lst,key = lambda x: x['age'],reverse = True)
lst2 = sorted(lst,key = lambda x: x['name'],reverse = True)
print(lst1)
print(lst2)

题目中说用list.sort()应该也可以,那就是这样:

print(lst.sort(key = lambda x: x['age'],reverse = True))
print(lst.sort(key = lambda x: x['name'],reverse = True))

第3关:匿名函数的应用2

任务描述

本关任务:

(1)从键盘输入一个数字列表list1

(2)计算列表list1所有元素的平方,组成新的列表list2

(3)选取列表list1中的所有偶数,组成新的列表list3

测试说明

平台会对你编写的代码进行测试:

测试输入:

输入一个列表:[1,2,3,4,5,6]

预期输出:

[1, 4, 9, 16, 25, 36]

[2, 4, 6]

代码解析

这里我们可以使用map()函数:

map()函数

map() 函数会根据提供的函数对指定序列做映射,与lambda函数类似,也是可以自定义的一种匿名函数,不过一般要用到诸如list()这类的函数来强制转化生成一个你所需要的序列

我们先来看这一题的代码再来对map()函数进行更详细的解释:

lst = eval(input("输入一个列表:"))
l = []
for x in lst:
    if x%2 == 0:
        l.append(x)
print(list(map(lambda x: x**2,lst)))
print(l)

当我们输出第一个列表时,我们希望将lst列表里的每一个元素都平方处理,那么map()函数的第一个参数就可以是进行平方操作的lambda自定义函数,第二个参数就是你要操作的可迭代对象lst。

关于map()函数详情还请看下一章内容。

第4关:统计字符个数函数

任务描述

本关任务:编写函数,计算字符串中的数字、字母、空格以及其他字符的个数。调用函数,传入从键盘上输入的任意字符串,求其中数字、字母、空格和其他字符的个数。

相关知识

为了完成本关任务,你需要掌握:1.函数的定义,2.函数的调用,3.字符判断与统计。

字符判断与统计

统计数字、字符、空格和其他字符的问题实质是累加问题。 遍历字符串中的字符,判断是否数字、字符和空格可以采用字符串的方法isdigit()、isalpha()和isspace()。

测试说明

平台会对你编写的代码进行测试:

测试输入: 4WOcUT$DL7E lG@5

预期输出:

数字3

字母10

空格1

其他字符2

代码解析

#自定义函数统计字符串s中数字、字母、空格及其他字符的个数
def statistics(s):
    sum_number = 0
    sum_char = 0
    sum_space = 0
    sum_other = 0
    for x in s:
        if 48<=ord(x)<=57:
            sum_number += 1
        if 65<=ord(x)<=90 or 97<=ord(x)<=122:
            sum_char += 1
        if ord(x) == 32:
            sum_space += 1
        if 33<=ord(x)<=47 or 58<=ord(x)<=64 or 91<=ord(x)<=96 or 123<=ord(x)<=126:
            sum_other += 1
    return "数字{}\n字母{}\n空格{}\n其他字{}".format(sum_number,sum_char,sum_space,sum_other)
#从键盘输入一字符串 
s1=input()
#调用自定义函数,实参为s1。输出结果
print(statistics(s1))

这个是用的ASCII码来做判断。题目要求要用字符串的方法,当然会更加简单,这里就不做赘述了。

第5关:字典键值对调

任务描述

本关任务:编写函数reverse_dict(),功能是交换字典的key值和value值(不允许重复),并按照key值降序输出新字典的内容,返回新的字典。

测试说明

平台会对你编写的代码进行测试:

测试输入:

请输入一个字典: {"alice":1001,"john":1003,"kate":1002}

预期输出:

1003 john

1002 kate

1001 alice文章来源地址https://www.toymoban.com/news/detail-762370.html

代码解析

#自定义函数reverse_dict,交换字典dic的键和值
def reverse_dict(dic):
    new = {}
    for key,val in dic.items():
        new[val] = key
    return new
#从键盘接受一个字典,存入dic字典变量
dic = eval(input("请输入一个字典:"))
#调用函数
new = reverse_dict(dic)
new = sorted(new.items(),key = lambda x: x[0],reverse = True)
for x in new:
    print(f"{x[0]} {x[1]}")

到了这里,关于Python零基础学习7.1—Python自定义函数的定义和调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 函数的定义与调用

    ✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 函数的定义与调用 Python 中使用 def 语句创建函数,其一般的格

    2024年01月25日
    浏览(45)
  • python-自定义函数(定义调用、默认参数、返回值)

    本篇文章讲解了python中自定义函数的一些知识点,包括了函数的定义和调用,默认参数,函数返回,其中也添加了比较高级的用法,能适应任何场合 函数是什么:函数是一段可执行的代码块,用于执行特定的任务或完成特定的操作。它由函数名、参数(可选)和函数体组成。

    2024年02月09日
    浏览(43)
  • Python 函数:定义、调用、参数、递归和 Lambda 函数详解

    函数是一段代码块,只有在调用时才会运行。您可以将数据(称为参数)传递给函数。 函数可以返回数据作为结果。 在Python中,使用def定义函数: 示例 要调用函数,请使用函数名称后跟括号: 示例 可以将信息作为参数传递给函数。参数在函数名称后面的括号内指定

    2024年02月08日
    浏览(78)
  • 学习-定义和调用求x的n次幂的函数

    任务描述 本关任务:定义求x的n次幂的函数,并返回计算结果。 相关知识 为了完成本关任务,你需要掌握如何定义函数。 函数的本质是一段可以重复使用的代码,每一个函数用来实现一个特定的功能,这段代码被提前编写好了,放到了指定的文件中,使用时直接调取即可。

    2024年02月08日
    浏览(24)
  • vscode python 自定义函数无法跳转到定义处,且定义处无法展示所有调用该函数的位置

    在vscode中编写python代码,在自定义类的forward函数中调用该类的成员函数,但在调用处无法通过ctrl+鼠标左键直接跳转到该成员函数的定义中,系统显示找不到函数声明。同时 ,在该函数的定义处无法通过 ctrl+鼠标左键展示项目中所有调用了该函数的位置和跳转链接。     

    2024年02月10日
    浏览(43)
  • Python函数——函数的基础定义语法

    在Python编程中,函数是构建高效代码的关键。通过创建可重用的代码块,我们可以使程序更加清晰、易读且易于维护。在本文中,我们将深入了解Python函数的基本概念、特性以及如何在编程实践中灵活运用它们。 1、函数的定义: 函数是一段具有特定功能的代码块,它可以接

    2024年02月20日
    浏览(42)
  • 【Python基础】- 自定义函数和匿名函数

      🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。   函数能提高

    2024年02月14日
    浏览(48)
  • python入门基础(13)--类、对象、全局函数,类内部调用

        面向过程的编程语言,如C语言,所使用的数据和函数之间是没有任何直接联系的,它们之间是通过函数调用提供参数的形式将数据传入函数进行处理。 但可能因为错误的传递参数、错误地修改了数据而导致程序出错,甚至是崩溃。当需要修改或维护程序时要从程序提供

    2024年02月08日
    浏览(45)
  • Python基础List列表定义与函数

    如何定义一个非空的列表? 列表的特点: 1.列表是有序的 2.可以存放多个元素 3.每个元素可以是任何数据类型 定义一个空列表 访问列表中的元素 通过索引值来访问列表中的元素,索引从0开始 获取列表中的长度,内置函数len() 修改列表中的元素 列表切片,步长 说明:列表

    2024年02月09日
    浏览(43)
  • 【Python基础】- 自定义函数和匿名函数(文末送书3本)

      🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。   函数能提高

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包