首页 > 编程语言 >Python函数介绍

Python函数介绍

时间:2023-12-04 15:36:12浏览次数:35  
标签:函数 形参 Python 介绍 print input avg def

1.函数

1.1 函数概述

  • 函数定义和优势
    • 不同形状正方形打印
# 2个
for i in range(0, 2):
    for j in range(0, 2):
        print("*", end="")
    print()
# 3个
for i in range(0, 3):
    for j in range(0, 3):
        print("*", end="")
    print()
# 4个
for i in range(0, 4):
    for j in range(0, 4):
        print("*", end="")
    print()
  • 改写后:
# 定义函数,函数名称为print_xx
def print_xx(x):
    for i in range(0, x):
        for j in range(0, x):
            print("*", end="")
        print("")
        
# 函数调用
print_xx(2)
print_xx(3)
print_xx(4)
  • 优点有哪些?

1.2 函数定义和调用

函数定义

img

函数调用

  • 格式:函数名([参数列表])

img

  • 调用过程:
    1. 程序在调用函数的位置暂停执行。
    2. 将数据传递给函数参数。
    3. 执行函数体中的语句。
    4. 程序回到暂停处继续执行。

作业1:改写

  1. 改写平均数成def
  2. 改写闰年判断
# 平均数字
def avg_input(x, y, z):
    sum = x + y + z
    avg = sum / 3
    print("avg = ", avg)

# 判断闰年
def judge_rn(year=2008):
    # 1能被400整除
    if year % 400 == 0:
        print(f"{year}是闰年")
    # 2能被4整除但不能被100整除
    elif year % 4 == 0 and year % 100 != 0:
        print(f"{year}是闰年")
    else:
        print(f"{year}不是闰年")

#函数调用
# 1 求平均值
a = eval(input("a="))
b = eval(input("b="))
c = eval(input("c="))
avg_input(a, b, c)
# 2 判断闰年
judge_rn(2012)

img

1.3 参数传递

  • 形参:定义函数时的参数
  • 实参:调用函数时使用的参数
  • 参数传递:实参——>形参

位置参数传递:

  • 概念:第一个实参传递给第一个形参,将第二个实参传递给第二个形参

img

关键字参数传递:

  • 概念:“形参=实参”形式

img

默认参数传递:

  • 默认参数:指的是形参的默认值

img

参数的打包与解包

打包

  • 函数在定义时无法确定需要接收多少个数据,那么可以在定义函数时为形参添加“”或“**”:

    • *—— 接收以元组形式打包的多个值

    • #定义
      def test(*args):
          print(args)
      #调用
      test(11, 22, 33, 44, 55)
      #结果
      #(11, 22, 33, 44, 55)
      
    • **—— 接收以字典形式打包的多个值

    • #定义
      def test(**kwargs):
          print(kwargs)
      #调用
      test(a=11, b=22, c=33, d=44, e=55)
      #结果
      #{'a': 11, 'b': 22, 'c': 33, 'd': 44, 'e': 55}
      

解包

  • 实参是元组 → 可以使用“*”拆分成多个值 → 按位置参数传给形参

  • 形参已经知道有多少个参数

    • #定义
      def test(a, b, c, d, e):
          print(a, b, c, d, e)
      #调用
      nums = (11, 22, 33, 44, 55)
      test(*nums)
      #结果
      #{'a': 11, 'b': 22, 'c': 311 22 33 44 553, 'd': 44, 'e': 55}
      
  • 实参是字典 → 可以使用“**” 拆分成多个键值对 → 按关键字参数传给形参

作业2:
# 平均数:计算n个参数的平均值

# n个数字的平均值函数,*args代表元组
def avg_input(*args):
    sum = 0
    for i in args:
        sum += i
    avg = sum / len(args)
    print("avg = ", avg)


# 调用
avg_input(1, 1, 1, 1, 1)
avg_input(1, 2, 3, 4, 5)
avg_input(4, 5)
作业3:
# 从键盘一直获取数字,当输入0000退出,
# 计算之前获取的值的平均值

# 定义函数,计算平均值
def avg_input(mylist):
    sum = 0
    for i in mylist:
        sum += i
    avg = sum / len(mylist)
    print(f"平均值是:{avg}")


# 获取n个数字
list_nums = []
while (True):
    x = eval(input("请输入数字:"))
    if x == 0000:
        break
    else:
        list_nums.append(x)
# 调用
avg_input(list_nums)

混合传递

  • 优先级:

    1. 优先按位置参数传递的方式。
    2. 然后按关键字参数传递的方式。
    3. 之后按默认参数传递的方式。
    4. 最后按打包传递的方式。
  • 注意事项

    在定义函数时:
    带有默认值的参数必须位于普通参数之后。
    带有“*”标识的参数必须位于带有默认值的参数之后。
    带有“**”标识的参数必须位于带有“*”标识的参数之后
    

作业4:

image-20231204112313928

1.4 函数的返回值

  • return函数:

1.5 变量作用域

1.6 实训案例

  • 角谷猜想
  • 饮品自动售货机

1.7 特殊函数

1.7.1 递归函数

1.7.2 匿名函数

2.模块

标签:函数,形参,Python,介绍,print,input,avg,def
From: https://www.cnblogs.com/shangzhijian/p/17875046.html

相关文章

  • python之字符编码
    【字符编码的发展史】一家独大:ASCII(识别英文字符)-------------诸侯割据(ASCII/GBK/Shift_JIS)---------------一统天下(存在所有语言中的所有字符与数字的一一对应关系,即兼容万国字符,unicode) 字母对应ASCII表A-Z:65-90a-z:97-1220-9:48-57小写字母对应的数字一定大于大写字母 ......
  • Java开发者的Python快速实战指南:探索向量数据库之图像相似搜索-文字版
    首先,我要向大家道个歉。原本我计划今天向大家展示如何将图片和视频等形式转换为向量并存储在向量数据库中,但是当我查看文档时才发现,腾讯的向量数据库尚未完全开发完成。因此,今天我将用文本形式来演示相似图片搜索。如果您对腾讯的产品动态不太了解,可以查看官方网址:https://cloud.t......
  • Python 实现Word转HTML
    将Word转换为HTML能将文档内容发布在网页上,这样,用户就可以通过浏览器直接查看或阅读文档而无需安装特定的软件。Word转HTML对于在线发布信息、创建在线文档库以及构建交互式网页应用程序都非常有用。以下是使用Python将Word转换为HTML网页的攻略,包含两个示例。使用Python将Word......
  • MySQL部分函数
    单行函数数值函数基本函数函数用法ABS(x)返回x的绝对值SIGN(X)返回X的符号。正数返回1,负数返回-1,0返回0PI()返回圆周率的值CEIL(x),CEILING(x)返回大于或等于某个值的最小整数FLOOR(x)返回小于或等于某个值的最大整数LEAST(e1,e2,e3…)返回......
  • python处理Excel文件
    一.读取Excel文件在Python中,你可以使用pandas库来读取Excel文件。首先,确保你已经安装了pandas和openpyxl库。如果没有安装,可以使用以下命令进行安装:pipinstallpandasopenpyxl安装完成后,你可以使用以下代码来读取Excel文件:importpandasaspd#读取Excel文件fil......
  • python实现Excel指定区域截图
    方法一:xlwingsimportos.pathimporttimeimportuuidfromioimportBytesIOfromtypingimportUnionimportxlwingsasxwfromPILimportImageGrabdefexcel_grab(excel_path,sheet_name:Union[str,int]=0,cell_area=None,pic_path=None,visible=False,......
  • Python——第五章:模块和包
    什么是模块?在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多代码按功能分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就可以称......
  • 无涯教程-Erlang - sin函数
    此方法返回指定值的正弦值。sin-语法sin(X)X - 为正弦函数指定一个值。sin-返回值返回值是代表正弦值的浮点值。-module(helloLearnfk).-import(math,[sin/1]).-export([start/0]).start()->Sin=sin(45),io:fwrite("~p~n",[Sin]).当我们运行上......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-35-处理web页面定位toast-上篇
    1.简介在使用appium写app自动化的时候介绍toast的相关元素的定位,在WebUI测试过程中,也经常遇到一些toast(出现之后一闪而过,不留下一点点痕迹),那么这个toast我们这边如何使用playwright进行定位测试呢?今天宏哥就分两篇介绍一下。2.什么是toast?Android中的Toast是一种简易的消......
  • TPC-DS工具介绍及性能测试
    一. Hive-testbench工具介绍TPC-DS:https://www.cnblogs.com/webDepOfQWS/p/10544528.html由于原生态工具生产测试数据表存在bug,后续引进hive-testbench,可参考:https://bbs.huaweicloud.com/blogs/260840可在WPS共享文档https://yundoc.fin-shine.com/drive/group/442074/325659......