python学习9 函数的基础知识

1.函数的定义

  def  func():

2.函数的调用

  func()

3.函数的返回值

#1.没有返回值
#     (1)不写return
#      (2)只写return后面的代码不在继续执行,返回空,代表结束一个函数,跳到整个函数外面
#                                                     break 只是跳出函数内的循环内容
#     (3)return None  结束   这个不常用
# 2.返回一个值
#     (1) 可以返回任何数据类型
#     (2)只要返回了,就可以接收了
#     (3)如果一个程序有多个return 只返回一个
# 3.返回多个值
#     多个返回值用多个变量接收,有多少返回值,就用多少变量接收
#     用一个变量接收,返回元组
# def func():
#     l = [‘金老板‘,‘二哥‘]
#     for i in l:
#         if i == ‘金老板‘:
#             return None
#     print(‘==========‘)
# ret = func()
# print(ret)
#
#
#
# def func():
#     #return [1,2,3,4]
#     return False
# print(func())
#
# def func2():
#     return 1,2
# print(func2())
#
# r1,r2 = func2()
# print(r1,r2)

3.函数的参数

函数定义和调用的时候

位置参数,*args,默认参数,**kwargs
1.没有参数,定义和调用函数时,括号内都不写内容2.1个参数,传什么就是什么3.多个参数    站在实参角度长        位置参数        按照关键字传        位置传和关键字传可以混用,必须先按照位置传参,然后按照关键字        ret = my_sum(a = 5,2)是不对的        不能给同一个变量传多个值    站在形参的角度上        位置参数:必须传,且有几个参数传几个,多传和少传都报错, 4.动态参数          *args接收按照位置传参的值,组织成一个元组          **args接收按照关键字传参的值,组织成一个字典        可以接收任意多个参数        *args 加*变成动态参数,参数名之前加*,习惯参数名用args         按照关键字传不行           如果有多个关键字参数需要调用,虚参用**kwargs 5.顺序  必须先定义位置参数,然后定义args,最后定义位置参数          参数名之前加**,习惯参数名kwargs

# def my_sum(a,b):
#     res = a + b
#     return resd
# ret = my_sum(1,2)
# print(ret)
# ret = my_sum( 3,b = 6)
# print(ret)
# def classmate(name,sex = ‘男‘):  #默认参数,如果不传就用默认参数,如果传了,就传递传的值+
#                                     #只有调用函数的时候
#                                         #按照位置传: 直接写参数的值
#                                         #按照关键字: 关键字 = 值
#                                     #定义函数的时候:
#                                         #位置参数:直接定义参数
#                                         #默认参数:关键字参数: 参数名 = ’默认值‘-0
#                                     #定义函数的时候,必须先定义位置参数,后定义默认参数
#     print(‘{0}同学是{1},我爱{0}‘.format(name,sex))
# classmate(‘二哥‘)
# classmate(‘苍‘,‘女‘)

#   *args  动态参数
def sum(*args):
    n = 0
    for i in args:
        n += i
    print(n)
sum(1,2)
sum(1,2,3)
sum(1,2,3,4)

#########
def func(**kwargs):
    print(kwargs)

func(a = 1,b = 2,c = 4)

def func(*args,default = 2,**kwargs):   #先位置参数,后关键字参数,即args必须在kwargs之前
    print(args,kwargs)
func(1,2,3,4,5,default = 1, va = ‘asdkfj;als‘,b = ‘dsfjl‘)

  

动态参数的另外一种传参方式

def func(*args):   #站在形参的角度上,给变量加上*,就是组合所有传来的值
    print(args)
func(1,2,3,4,5)
l = [1,2,3,4,5]
func(*l)  #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散

def func(**kwargs):
    print(kwargs)
func(a = 1,b = 2)
d = {‘a‘ : 1,‘b‘ : 2}
func(**d)

函数的注释

def func():
    ‘‘‘
    这个函数实现了什么功能
    参数1:
    参数2:
    :return:是字符串或者列表的长度
    ‘‘‘

#默认参数的陷阱问题

原文地址:https://www.cnblogs.com/benbenxiaofeifei/p/9362583.html

时间: 2024-08-04 20:57:01

python学习9 函数的基础知识的相关文章

[Python学习] 专题四.文件基础知识

        前面讲述了函数.语句和字符串的基础知识,该篇文章主要讲述文件的基础知识(与其他语言非常类似). 一. 文件的基本操作         文件是指存储在外部介质(如磁盘)上数据的集合.文件的操作流程为: 打开文件(读方式\写方式)->读写文件(read\readline\readlines\write\writelines)->关闭文件 1.打开文件 调用函数open打开文件,其函数格式为: file_obj=open(filename[, mode[, buffering]])

windows上Python开发--3.Django的基础知识

最近两天下了班,没事学习了django的开发,今天做个总结.其实大家可以从百度,google搜到一些django的入门视频,初步了解一下django的框架.学习一些基础的概念和知识.本篇主要是对自己这两天做的做个总结. 1.创建第一个views.py 上一篇文章我们在windows上搭建好了django的开发环境并建立一个测试demo. 在settings.py的同级目录下新建views.py目录.并输入以下代码 from django.http import HttpResponse def

APUE 学习笔记(一) Unix基础知识

1. Unix 体系结构 内核的接口被称为系统调用 公用函数库构建在系统调用接口之上 应用软件既可以调用公用函数库,也可以直接进行系统调用 2. 文件和目录 目录操作函数:opendir---> readdir---> closedir struct dirent 结构体 stat 系统调用 3.程序.进程.线程 程序:存放在磁盘上.并处于某个目录中的一个可执行文件.使用exec系列函数将程序从磁盘读入存储器,并使其执行 进程:程序的执行实体.进程控制的3个函数:fork.exec.waitp

Day3: Python学习笔记之计算机基础——网络片

Day3: Python学习笔记之计算机基础--网络片 什么是互联网协议以及为何要有互联网协议? ?互联网协议本质上是为了方便连接两台计算机而指定的一系列统一的标准. osi五层模型 计算机之间要实现数据传输必须要经过以下五层协议: ? 模型 ,协议 ,硬件 ? 应用层, http协议.用户自定义协议 ? 传输层, TCP/UPD协议 ,四层交换机.四层路由器 ? 网络层, IP协议, 三层交换机.路由器 ? 数据链路层, 以太网.电信号分组, 网桥.以太网交换机.网卡 ? 物理层, 传递电信号

Python学习一:序列基础详解

作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7858473.html 邮箱:[email protected] 日期:2017-11-18 Python学习一:序列基础详解 一:序列介绍 Python中一些类型的变量,就像容器一样,收纳多个数据,序列就像一个有序的队伍,像整齐的万里长城,存储着各种各样的数据,他们按照一定的秩序排列在一起,很威武,很美观,所以说序列是有序的数据集合.序列包含的一

【Java菜鸟学习总结】Java基础知识(类)

目录 [Java菜鸟学习总结]Java基础知识(类) 1.面向对象编程 2.类 3.static关键字 4.final关键字 [Java菜鸟学习总结]Java基础知识(类) 1.面向对象编程 1.1.面向对象编程的特征 面向对象编程(OOP)的三大特征 { 封装; 继承; 多态; } 1.2.类与对象概述 类与对象是面向对象的核心概念. 类与对象 { 类; // 类是对于一类事物的描述,是抽象的.概念的定义. 对象; // 对象是实际存在的该类事物的每个个体,因而也别称为实例. } 2.类 2.

[Python学习] 专题一.函数的基础知识

        最近才开始学习Python语言,但就发现了它很多优势(如语言简洁.网络爬虫方面深有体会).我主要是通过<Python基础教程>和"51CTO学院 智普教育的python视频"学习,在看视频中老师讲述函数知识的时候觉得非常不错,所以就写了第一篇Python学习的文章分享给大家.主要内容:         1.Python安装与基本输入输出,print()函数和raw_input()函数简单用法. 2.我根据视频中学到的知识,讲解函数的基本知识: (1).系统提

Python学习第一天----计算机基础

一.学习计算机基础的目的 再高级的编程语言都是运行在操作系统之上的,而操作系统又是运行在硬件基础之上.所以在开始学习编程之前需要深刻的了解并熟知计算机的基础知识.包括硬件基础及操作系统基础. 二.计算机硬件发展史 计算机的定义:是现代用于高速计算的一种电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能. 发展史: 原型或者说灵感起源于中国 1946年2月14日情人节这天,世界上第一台电子计算机"电子数字积分计算机ENIAC"在美国宾夕法尼亚大学问世. 电子管时代--

Python学习之旅—面向对象进阶知识:类的命名空间,类的组合与继承

前言 上篇博客笔者带领大家初步梳理了Python面向对象的基础知识,本篇博客将专注于解决三个知识点:类的命名空间,类的组合以及面向对象的三大特性之一继承,一起跟随笔者老看看今天的内容吧. 1.类的命名空间 在上一篇博客中,我们提到过对象可以动态添加属性,一起来回忆下昨天的知识点,看如下的代码: class A: pass a = A() a.name = 'alex' print(a.name) 这里我们手动为a对象添加了一个属性name,然后直接打印可以得到a对象的名称.通过这个例子,我们可以