Python(函数初识)

一、初识函数

  • 面向过程缺点 : 代码重复,代码描述性不高
  • 函数 : 函数是以功能为导向,一个函数封装一个功能.
  • 函数的优点 : 减少代码重复性,增强了代码的可读性

二、函数的结构

# 结构
def 函数名():
内容
# def : 定义一个函数,def关键字后紧跟一个空格
# def 函数名() : 函数名命名方式与变量命名规范一致

三、函数的调用

# 结构
def 函数名():
内容
函数名()
# 函数名() : 函数的执行
---------------------------------
# 函数的执行写多少次,执行多少次
lis=[1,2,3,4,5,6,7,8,9]
def new_len():
count=0
for i in lis:
count+=1
print(count)
for i in range(3):
new_len() # 执行结果 三次9

四、函数的返回值

return 作用1 : 只能在函数中用,可用于结束函数

lis=[1,2,3,4,5,6,7,8,9]
def new_len():
count=0
for i in lis:
count+=1
print("少林")
return
print("武当")
new_len() # 少林

return 作用2 : 给函数的执行者返回具体的值(三种情况)

  1. 函数中没有return或只写一个return,函数的执行者得到的是None

    lis=[1,2,3,4,5,6,7,8,9]
    def new_len():
    count=0
    for i in lis:
    count+=1
    return
    print(new_len()) # None
  2. 函数中return后跟单个值,则返回这个值,不改变值得类型

    lis=[1,2,3,4,5,6,7,8,9]
    def new_len():
    count=0
    for i in lis:
    count+=1
    return [1,2,3,4,5]
    print(type(new_len())) # <class 'list'>
  3. 函数中return后跟多个值,函数的执行者得到的是一个元组

    lis=[1,2,3,4,5,6,7,8,9]
    def new_len():
    count=0
    for i in lis:
    count+=1
    return [1,2,3,4,5],123,"123"
    print(type(new_len())) # <class 'tuple'>

五、函数的传参

定义 : 在函数调用时,那实参的值赋值给形参的过程叫做传参.

目的 : 函数可扩展性

def new_len(a): # 定义函数时的参数:形参
count=0
for i in a:
count+=1
return count
l1=[1,2,3]
s1="dsadsadsadsad"
print(new_len(l1)) # 3 函数的调用者参数:实参
print(new_len(s1)) # 13 函数的调用者参数:实参

实参分类(三种)

  1. 位置参数 : 按照位置为形参赋值,按照顺序一一对应

    def meet(sex,age,job):# 位置参数从左到右,形参与实参按照顺序一一对应
    print("寻找性别%s,年龄%s岁,工作%s"%(sex,age,job))
    meet("女","20-25","老师")
  2. 关键字参数 : 按照位置为形参赋值,可不按照顺序一一对应

    # 位置参数从左到右,形参与实参可不按照顺序一一对应
    def meet(sex,job,age):
    print("寻找性别%s,年龄%s岁,工作%s"%(sex,age,job)) # 这里要按照顺序
    meet(job="老师",age="20-25",sex="女")
  3. 混合参数

    # 关键字参数一定要在位置参数后面,一一对应
    def meet(job,age,weight,sex):
    print("寻找性别%s,年龄%s岁,工作%s,体重%s"%(sex,age,job,weight)) # 这里要按照顺序
    meet("老师","20-25",sex="女",weight="120")

形参角度(四种)

  1. 位置参数 : 与实参角度位置参数一致

  2. 默认参数 : 默认参数一定在位置参数后面,不传参数即沿用默认的参数,更改默认参数可以用位置或指定的方式更改默认参数.

    def meet(job,age,weight,sex="女"):
    print("寻找性别%s,年龄%s岁,工作%s,体重%s"%(sex,age,job,weight)) # 这里要按照顺序
    meet("老师","20-25",weight="120")
    ---------------------------------
    # 更改默认参数,第一种
    def meet(job,age,weight,sex="女"):
    print("寻找性别%s,年龄%s岁,工作%s,体重%s"%(sex,age,job,weight)) # 这里要按照顺序
    meet("老师","20-25",sex="女",weight="120")
    # 更改默认参数,第二种
    def meet(job,age,weight,sex="女"):
    print("寻找性别%s,年龄%s岁,工作%s,体重%s"%(sex,age,job,weight)) # 这里要按照顺序
    meet("老师","20-25","120","男")

以下两种函数进阶会讲到

  1. 动态参数

  2. 仅限关键字参数

9.Python初窥门径(函数初识)的更多相关文章

  1. 从入门到自闭之Python基础——函数初识

    1. 文件操作: 读操作: 格式:f = open("文件路径",mode = "r",encoding = "utf-8") f : 代表 ...

  2. 《Python》 函数初识

    一.函数: 1.函数初识: def 关键字 函数名 # def my_len() 函数名的命名规则跟变量一样,要具有描述性. 函数的优点: 减少代码的重复率 增强代码的阅读性 函数的主要目的:封装一个 ...

  3. python之函数初识

    一.函数的初识1.如何定义函数:def 函数名(): 代码... 例如:def my_len(): l = [1, 2, 3, 4] count = 0 for i in l: count += 1 ...

  4. day08 python之函数初识

    一,什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print(),len( ...

  5. 11.Python初窥门径(函数名,可迭代对象,迭代器)

    Python(函数名,可迭代对象,迭代器) 一.默认参数的坑 # 比较特殊,正常来说临时空间执行结束后应该删除,但在这里不是. def func(a,l=[]): l.append(a) return ...

  6. 10.Python初窥门径(函数进阶)

    Python(函数进阶) 一.函数的传参(接上期) 形参角度(一共四种,后两种) 动态参数(万能参数)* # 定义一个函数时,*所有的位置参数聚合到一个元组中 def func(*args): # * ...

  7. python笔记 函数初识

    1. 函数: 封装一个功能 def    my_len(形参):          ->  def  声明定义一个函数   my_len 函数名命名规则同变量 ······          - ...

  8. 孤荷凌寒自学python第十七天初识Python的函数

    孤荷凌寒自学python第十七天初识Python的函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 函数是能够完成指定运算并返回运算结果的代码块.是结构化编程重要的结构. 我首先发现pyt ...

  9. python函数-函数初识

    python函数-函数初识 1.函数的定义 语法 def 函数名(参数1,参数2,参数3,...): '''注释''' 函数体 return 返回的值 2.函数的使用原则---先定义后调用 #定义阶段 ...

随机推荐

  1. java多线程系列 JUC原子类 CAS及原子类

    根据数据类型,可以将JUC包中的原子操作类可以分为4类. 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;2. 数组类型: AtomicInteg ...

  2. android 内存泄漏问题【转】

    本文转载自:http://www.voidcn.com/article/p-hbnuyfwz-ee.html 内存泄露问题在一些压力测试的场景很容易暴露,例如一些常用应用场景反复操作(eg:反复切换前 ...

  3. 一篇文章了解相见恨晚的 Android Binder 进程间通讯机制【转】

    本文转载自:https://blog.csdn.net/freekiteyu/article/details/70082302 Android-Binder进程间通讯机制 概述 最近在学习Binder ...

  4. BZOJ 1230 [Usaco2008 Nov]lites 开关灯:线段树异或

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1230 题意: 有n盏灯,一开始全是关着的. 有m次操作(p,a,b).p为0,则将区间[a ...

  5. mac快速正确的安装 Ruby, Rails 运行环境

    Mac OS X 任意 Linux 发行版本(Ubuntu,CentOS, Redhat, ArchLinux ...) 强烈新手使用 Ubuntu 省掉不必要的麻烦! 以下代码区域,带有 $ 打头的 ...

  6. codeforces 610D D. Vika and Segments(离散化+线段树+扫描线算法)

    题目链接: D. Vika and Segments time limit per test 2 seconds memory limit per test 256 megabytes input s ...

  7. HihoCoder1642 : 三角形面积和([Offer收割]编程练习赛37)(求面积)(扫描线||暴力)(占位)

    描述 如下图所示,在X轴上方一共有N个等腰直角三角形.这些三角形的斜边与X轴重合,斜边的对顶点坐标是(Xi, Yi). (11,5) (4,4) /\ /\(7,3) \ / \/\/ \ / /\/ ...

  8. HihoCoder1652 : 三角形面积和2([Offer收割]编程练习赛38)(几何)(不会几何,占位)

    描述 如下图所示,在X轴上方一共有N个三角形.这些三角形的底边与X轴重合,底边上两个顶点的坐标分别是(Li, 0)和(Ri, 0),底边的对顶点坐标是(Xi, Yi).其中Li ≤ Xi ≤ Ri 且 ...

  9. MSTAR GAMMA

    1.读取系统GAMMA值 2.在此基础上微调 3.导出Gamma.txt->导入系统.“Gamma12BIT_256.c”或者“Gamma12BIT_1024.c”. Read 微调&写 ...

  10. I/O:Unit1

    编程,从键盘读入学生成绩(0~100分),共15名学生,计算并显示总分.平均成绩.单的学生成绩 ; sum: avg: DATA1 SEGMENT STU DB ,,,,,,,,,,,,,, SUM ...