一、函数的初识
1、如何定义函数:
def 函数名():
  代码...

例如:
def my_len():
  l = [1, 2, 3, 4]
  count = 0
  for i in l:
    count += 1
  print(count)

2、函数的优点:
1,减少代码的重复率。
2,增强代码的阅读性。

3、函数到底是什么?
函数最主要的目的:封装一个功能。

4、函数如何调用:函数名 ()
my_len()

5、总结
定义:def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。
   def 是固定的,不能变,他就是定义函数的关键字。
   空格 为了将def关键字和函数名分开,必须空,当然你可以空2格、3格或者你想空多少都行,但正常人还是空1格。
   函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便起,但我们给函数起名字还是要尽量简短,并能表达函数功能。
   括号:是必须加的!

注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面第一行。以增强代码的可读性。

调用:就是 函数名() 要记得加上括号。

二、函数的返回值:return
1、函数中如果遇到retrun,则直接结束函数。

2、给函数的执行者返回值。
1,不写return和只写return              返回None
2,return 单个值                              原封不动的返回(返回的数据类型也一致)
3,return 多个值                              返回一个元组,所有的返回值作为元组的每一个元素

(1)不写return
def func1():
  print(111)
  print(222)
print(func1())      #111 222 None

(1-2)只写return
def func1():
  print(111)
  print(222)
  return
print(func1())     #111 222 None

(2)return 单个值
def fun1():
  a = 1
  b = 'hello'
  c = [1,2,3]
  return a
print(fun1())      # 1

(3)return 多个值
def fun1():
  a = 1
  b = 'hello'
  c = [1,2,3]
  return a,b,c
print(fun1())      #(1, 'hello', [1, 2, 3])

注意:工作中,函数中尽量不要出现print,这里只是为了展示函数的用法才使用的

三、函数的参数
1、用一个例子简单了解一下:
#函数定义
def mylen(s):
  """计算s的长度"""
  length = 0
  for i in s:
    length += 1
  return length

#函数调用
str_len = mylen("hello world")
print('str_len : %s' %(str_len))

这里我们要告诉mylen函数要计算的字符串是谁,这个过程就叫做传递参数,
简称传参,我们调用函数时传递的这个“hello world”和定义函数时的s就是参数。

这个“hello world”被称为实际参数,因为这个是实际的要交给函数的内容,简称实参。

定义函数时的s,只是一个变量的名字,被称为形式参数,因为在定义函数的时候它只是一个形式并不是真正的数据,
表示这里有一个参数,简称形参。 

2、实参
1,位置参数:按照顺序,一一对应

def func1(x,y):
  print(x,y)
func1(1,2)      #位置参数,1对应传给x,2对应传给y

2,关键字传参:可以不按照顺序,但是必须一一对应
def func1(x,y):
  return x+y
print(func1(y=100,x=99))      #关键字参数,我们写实参的时候直接声明了形参y对应100,x对应99

3,混合传参:关键字参数一定要在位置参数后面
def func1(a,b,x,y):
  return b+y

print(func1(100,200,y=100,x=99))    #300

3、形参
1,位置参数 按照顺序,一一对应
def func(x,y,z):
  print(x,y,z)
func(1,2,3)

2,默认参数:给其传值,将原默认参数覆盖掉,不传值,不报错,使用默认值。
应用场景:不经常改变的参数,但是一直在用。
def func1(x,y,a=666):
  print(x,y,a)
func1(1,2)              #1 2 666
func1(1,2,333)       #1 2 333

注意:
默认参数一般设置为不可变的数据类型(str,int,tuple等),
若默认参数设置为可变的数据类型(list,dict等),那么执行一次后,这个可变的数据类型它始终用的是同一个。
def fun1(x,l1=[]):
  l1.append(x)
  return l1

res = fun1(20)
print(res,id(res))       #[20] 2192007779592

res1 = fun1(100)
print(res1,id(res1))   #[20, 100] 2192007779592

4、参数总结
实参:
位置参数:按照顺序,一一对应
关键字参数:可以不按照顺序,但是必须一一对应
混合参数:关键字参数一定要在位置参数后面

形参
位置参数:按照顺序,一一对应
默认参数:给其传值,将原默认参数覆盖掉,不传值,不报错,使用默认值

小知识点:只针对于简单的if else 这样的结构,才可以使用。
def fun(x,y):
  if x > y:
    return x
  else:
    return y
print(fun(1,2))

上面代码可以下成下面的代码:
def fun(x,y):
  return x if x > y else y
print(fun(1,2))

python之函数初识的更多相关文章

  1. 9.Python初窥门径(函数初识)

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

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

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

  3. 《Python》 函数初识

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

  4. day08 python之函数初识

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

  5. python笔记 函数初识

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

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

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

  7. python函数-函数初识

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

  8. 【python 3】 函数 初识

    函数初识 1.函数的定义.调用.返回值 函数的定义.调用.返回值 def demo(): ## 定义函数 (def + 空格 + 函数名 + () + 冒号) ## 如下为函数体 return a # ...

  9. Python函数初识

    一.函数是什么 ​ 计算机语言中的函数是类比于数学中的函数演变来的,但是又有所不同.前面的知识中我们学会了运用基础语法(列表.字典)和流程控制语句貌似也能处理一些复杂的问题,但是相对于相似的大量重复性 ...

随机推荐

  1. 简易仿ios菊花加载loading图

    原文链接:https://mp.weixin.qq.com/s/wBbQgOfr59wntNK9ZJ5iRw 项目中经常会用到加载数据的loading显示图,除了设计根据app自身设计的动画loadi ...

  2. DVWA 黑客攻防演练(八)SQL 注入 SQL Injection

    web 程序中离不开数据库,但到今天 SQL注入是一种常见的攻击手段.如今现在一些 orm 框架(Hibernate)或者一些 mapper 框架( iBatis)会对 SQL 有一个更友好的封装,使 ...

  3. ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用

    一.前言 1.本文主要内容 使用dotnet cli创建基于解决方案(sln+csproj)的项目 使用Visual Studio Code开发基于解决方案(sln+csproj)的项目 Visual ...

  4. C#的自动拼接Sql语句Insert方法及思路

    思路: 1.想想插入语句,大概是这样的一个框架:INSERT INTO 表名 (数据库列名) values (值) 2.这里要3个变量是不固定的,分别是:表名.数据库列名.值: a.表名我们这里很容易 ...

  5. 多线程--wait()和notify(),Thread中的等待和唤醒方法

    package com.thread.test; public class SimpleMN { final static Object object = new Object(); public s ...

  6. 【Python 05】Python开发环境搭建

    Python3安装和使用 1.安装 Python管方下载地址 选择Customize installation安装,并且勾选Add Python 3.X to PATH. 勾选Documentatio ...

  7. bsp 总结正规流程

    1. do boot 之类下载boot的都是将 uboot.bin里的内容下载到flash 0x0位置 => nand dump 0x0Page 00000000 dump: 14 00 00 ...

  8. SpringBoot学习笔记(2) Spring Boot的一些配置

    外部配置 Spring Boot允许使用properties文件.yaml文件或者命令行参数作为外部配置 使用@Value注解,可以直接将属性值注入到你的beans中,并通过Spring的Enviro ...

  9. Cordova入门系列(三)Cordova插件调用

    版权声明:本文为博主原创文章,转载请注明出处 上一章我们介绍了cordova android项目是如何运行的,这一章我们介绍cordova的核心内容,插件的调用.演示一个例子,通过cordova插件, ...

  10. Linux内核入门到放弃-虚拟文件系统-《深入Linux内核架构》笔记

    VFS的任务并不简单.一方面,它用来提供了一种操作文件.目录及其他对象的统一方法.另一方面,它必须能够与各种方法给出的具体文件系统的实现达成妥协,这些实现在具体细节.总体设计方面都有一些不同之处. 文 ...