python函数-函数初识

1.函数的定义

语法
def 函数名(参数1,参数2,参数3,...):
'''注释'''
函数体
return 返回的值

2.函数的使用原则---先定义后调用

#定义阶段
def foo():
print('from foo')
bar()
def bar():
print('from bar')
#调用阶段
foo()

3.函数的返回值  

 3.1返回值的种类

  (1)没有返回值,返回None

    ·只有return:结束一个函数的继续

    ·没有return

    ·有return None:不常用

 

#只有一个return
def func():
s = '人生苦短我用python'
count = 0
for i in s:
count += 1
return
res = func() # 函数名加括号进行调用:func()
print(res)

  

# 没有return
def func():
s = '人生苦短我用python'
count = 0
for i in s:
count += 1
res = func() # 函数名加括号进行调用:func()
print(res)

  

# 有return None:不常用

def func():
s = '人生苦短我用python'
count = 0
for i in s:
count += 1
return None
res = func() # 函数名加括号进行调用:func()
print(res)

  

  (2)有一个返回值

          ·可以返回任何数据类型

    ·只要返回就可以接收到

    ·如果在一个函数中有多个return,只返回第一个

def func():
s = '人生苦短我用python'
count = 0
for i in s:
count += 1
return count
return #'这是第二个return 不返回' res = func()
print(res) >>>12

(3)返回多个值

  • 用多个变量接收:有多少返回值就要有多少变量接收
  • 用一个变量接收:接收到的是一个元组
def func():
s = '人生苦短我用python'
count = 0
for i in s:
count += 1
return s, count
res = func() # 函数名加括号进行调用:func()
print(res)
>> > ('人生苦短我用python', 12) res1, res2 = func()
print(res1, res2)
>>> 人生苦短我用python 12

4.函数的参数  

1、参数的概念  

1.没有参数:定义函数和调用函数时括号里都不写内容

2.有一个参数:传什么就是什么

3.有多个参数:位置参数

==顺序:位置参数,*args,默认参数,**kwargs==

2.参数的种类

1.形参的角度:

  • 位置参数:必须传,且有几个就必须传几个
  • * args:接收的是按照位置传参的值,组织成一个元组
  • 默认参数:可传可不传,不传就按默认值
  • ** kwargs:接收的是按照关键字传参的值,组织成一个字典
# 位置参数
def name_sex(name, sex):
print('姓名是:' + name + '\n性别是:' + sex)
name_sex('乔','男')
>>>姓名是:乔
>>>性别是:男 # 默认参数
def name_sex(name, sex='男'):
print('姓名是:' + name + '\n性别是:' + sex)
name_sex('乔')
>>>姓名是:乔
>>>性别是:男 # *args---元组
def name_sex(*args):
print(args)
name_sex('乔','男')
>>>('乔', '男') # **kwargs---字典
def name_sex(**kwargs):
print(kwargs)
name_sex(姓名='乔',性别='男')
>>> {'姓名': '乔', '性别': '男'}

2.实参的角度

  

  • 按位置传参:
  • 按关键字传参:
  • 按位置、按关键字混合传参:必须按照位置参数,再按照关键字传参,不能将参数赋予多个值
# 按位置传参
def name_sex(name, sex):
print('姓名是:' + name + '\n性别是:' + sex)
name_sex('乔', '男')
>>>姓名是:乔
>>>性别是:男 # *按关键字传参
def name_sex(name, sex):
print('姓名是:' + name + '\n性别是:' + sex)
name_sex(sex='男',name='乔')
>>>姓名是:乔
>>>性别是:男 # *按位置、按关键字混合传参 必须按照位置参数,再按照关键字传参,不能将参数赋予多个值
def name_sex(name, sex):
print('姓名是:' + name + '\n性别是:' + sex)
name_sex('乔',sex='男')
>>>姓名是:乔
>>>性别是:男

5、动态参数的另一个传参方式

1、站在形参的角度上,给变量加上*,就是组合所有传来的  
def func(*args):
print(args)

 2、站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散

unc(1,2,3,4,5)
l = [1,2,3,4,5]
func(*l)

6、默认参数的陷阱:默认参数是一个可变数据类型

一、
def qqxing(l = []):
l.append(1)
print(l)
qqxing()
qqxing([])
qqxing()
qqxing() 二、
def qqxing(k,l = {}):
l[k] = 'v'
print(l)
qqxing(1)
qqxing(2)
qqxing(3)

  

  

 

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

  1. python基础 (初识函数&函数进阶)

    函数基础部分 .什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率. 2.定义函数 定义:def 关键词开头,空格之后接函数名 ...

  2. python基础之 初识函数&函数进阶

    函数基础部分 1.什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率. 2.定义函数 定义:def 关键词开头,空格之后接函数名 ...

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

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

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

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

  5. Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数

    Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数 内容大纲 1.函数的初识 2.函数的定义 3.函数的调用 4.函数的返回值 5.函数的参数 1.函数初识 # def ...

  6. python之函数初识

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

  7. Python 函数的初识

    1.函数的初识 函数的作用:以功能为导向 减少代码重复 # 函数试编程 # 函数以功能(完成一件事)为导向,登录 注册, # 一个函数就是一个功能,一个函数只能写一个功能 # 何时需要 何时调用,随调 ...

  8. Python进阶-I 初识函数(function)

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

  9. python记录_day09 初识函数

    一.认识函数 函数:对动作或者功能的封装 格式: 函数声明     def  函数名(): 函数体 函数调用     函数名() #定义函数 def xiao(): print("你的笑像一 ...

随机推荐

  1. GNS3 ProxyArp(查看路由器是否具有转发功能)

    R2是否可以把R1的数据转发出去,参看http://www.cnblogs.com/qq76211822/p/5129134.html 命令:show ip interface f0/0

  2. 【pwnable.tw】 starbound

    此题的代码量很大,看了一整天的逻辑代码,没发现什么问题... 整个函数的逻辑主要是红框中两个指针的循环赋值和调用,其中第一个指针是主功能函数,第二个数组是子功能函数. 函数的漏洞主要在main函数中, ...

  3. 冰蝎动态二进制加密WebShell基于流量侧检测方案

    概述 冰蝎是一款新型动态二进制加密网站工具.目前已经有6个版本.对于webshell的网络流量侧检测,主要有三个思路.一:webshell上传过程中文件还原进行样本分析,检测静态文件是否报毒.二:we ...

  4. other#一些问题的列表

    centos7及以后修改hostname, hostnamectl set-hostname centos7 centos7之前修改hostname, vi /etc/sysconfig/networ ...

  5. Redis详解(五)——主从复制

    Redis详解(五)--主从复制 面临问题 机器故障.我们部署到一台 Redis 服务器,当发生机器故障时,需要迁移到另外一台服务器并且要保证数据是同步的.而数据是最重要的,如果你不在乎,基本上也就不 ...

  6. 043、Java中逻辑运算之实现位与操作

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  7. 024、Java中字符串连接字符串拼接

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  8. Centos7忘记mysql的root用户密码

    1.先停止mysql服务 ​[root@CentOS ~]# ps -ef | grep mysql root : pts/ :: /bin/sh /usr/local/mysql/bin/mysql ...

  9. 虚拟机安装centos6.5出现Error processing drive:pci-0000:00:10-scsi-0:0:0:0问题

    vmware安装linux系统出现Error processing drive:pci-0000:00:10-scsi-0:0:0:0问题 问题出现原因:我给虚拟机的内存太小了,只给了512M 解决办 ...

  10. [LeetCode] 932. Beautiful Array 漂亮数组

    For some fixed N, an array A is beautiful if it is a permutation of the integers 1, 2, ..., N, such ...