一,什么是函数?

函数的定义与调用

s = 'fkdsagadfdsagfdsagg'
count = 0
for i in s:
count += 1
print(count) l1 = [1,2,3,4,5,6,5,4,3]
count = 0
for i in l1:
count += 1
print(count)
重复使用
代码可读性差
def my_len(): #def 关键字,定义函数, 空格 函数名(变量)
l1 = [1, 2, 3, 4, 5, 6, 5, 4, 3]
count = 0
for i in l1:
count += 1 my_len() # 函数名 + () 执行此函数 函数是以功能为导向,函数内部尽量不要有print l1 = [1,2,3,4,5,6,5,4,3]
ret = len(l1)
print(ret)

函数的定义

定义:def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。

   def 是固定的,不能变,他就是定义函数的关键字。

   空格 为了将def关键字和函数名分开,必须空(四声),当然你可以空2格、3格或者你想空多少都行,但正常人还是空1格。

   函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便起,但我们给函数起名字还是要尽量简短,并能表达函数功能

   括号:是必须加的,先别问为啥要有括号,总之加上括号就对了!

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

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

二,函数的返回值。

def my_len():  # def 关键字,定义函数, 空格 函数名(变量)
l1 = [1, 2, 3, 4, 5, 6, 5, 4, 3]
count = 0
for i in l1:
count += 1 my_len() # 函数名 + () 执行此函数 函数是以功能为导向,函数内部尽量不要有print l1 = [1,2,3,4,5,6,5,4,3]
ret = len(l1)
print(ret) return 1:遇到return 此函数结束,不在向下进行.
2 ,return 返回值
不写return 返回 None
return None 返回 None
return 单个值 返回此单个值
return 多个值 将多个值包在元组中,返回给调用者此元组
def my_len():
l1 = [1, 2, 3, 4, 5, 6, 5, 4, 3]
print(1111)
print(222)
return 遇到return 此函数结束,不在向下进行
print(333)
def my_len():
l1 = [1, 2, 3, 4, 5, 6, 5, 4, 3]
count = 0
for i in l1:
count += 1
return count
ret = my_len()
print(ret) def my_len():
l1 = [1, 2, 3, 4, 5, 6, 5, 4, 3]
count = 0
for i in l1:
count += 1
return 1,2,[123,2] ret1,ret2,ret3 = my_len() # (1,2,[123,2])
print(ret1,ret2,ret3)
ret = my_len()
ret1 = ret[0]
ret2 = ret[1]
ret3 = ret[2]

但是咱们写的这个函数,并不会得到这样的结果,如何让他和len函数一样,有返回值呢?

那就是在函数的最后加上一个return,return 后面写你需要的返回值就可以了。

#函数定义
def mylen():
"""计算s1的长度"""
s1 = "hello world"
length =
for i in s1:
length = length+
return length #函数调用
str_len = mylen()
print('str_len : %s'%str_len) return返回值

return关键字的作用:

return关键字的作用

  return 是一个关键字,在pycharm里,你会看到它变成蓝色了。你必须一字不差的把这个单词给背下来。

  这个词翻译过来就是“返回”,所以我们管写在return后面的值叫“返回值”

要研究返回值,我们还要知道返回值有几种情况:分别是没有返回值、返回一个值、返回多个值

没有返回值

  不写return的情况下,会默认返回一个None:我们写的第一个函数,就没有写return,这就是没有返回值的一种情况。 

#函数定义
def mylen():
"""计算s1的长度"""
s1 = "hello world"
length = 0
for i in s1:
length = length+1
print(length) #函数调用
str_len = mylen()
#因为没有返回值,此时的str_len为None
print('str_len : %s'%str_len) 没有return

三,函数的参数。

函数的两种类型的参数:一种是函数定义里的形参,另一种是调用函数的实参。在调用函数的时候,函数内部,实参会赋值给形参,。

s = 'fdsafsda'
l2 = [1, 2, 3, 4, 5, 6, 5, 4, 3, 3, 'alex']
函数的传参 def my_len(x): #形参:形式参数
count = 0
for i in x:
count += 1
return count
ret = my_len(l2) # 实参:实际参数
print(ret)
len(s) 从实参的角度:
按位置传参
按关键字传参
混合传参 关键字参数永远在位置参数后面
def my_len(x,y,z): #形参:形式参数
count = 0
for i in x:
count += 1
return count
ret = my_len(l2,s,'alex') # 按位置传参
print(ret)
len(s) def func(x):
if len(x) > 2:
return True
else:return False
print(func('alex'))

函数 day9的更多相关文章

  1. day9函数作业详解

    1.day9题目 1,整理函数相关知识点,写博客. 2,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者. 3,写函数,判断用户传入的对象(字符串.列表.元组 ...

  2. python全栈开发-Day9 函数对象、函数嵌套、名称空间与作用域

    一 .函数对象 一 .函数是第一类对象,即函数可以当作数据传递 可以被引用 可以当作参数传递 返回值可以是函数 可以当作容器类型的元素 二. 利用该特性,优雅的取代多分支的if def foo(): ...

  3. python全栈学习--day9(函数初始)

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

  4. python—day9 函数的定义、操作使用方法、函数的分类、函数的嵌套调用

    一.函数的定义 函数的四个组成部分: 函数名. 函数体. 函数返回值. 函数参数 1.概念:重复利用的工具,可以完成特定功能的代码块,函数是存放代码块的容器 2.定义: def:声明函数的关键词 函数 ...

  5. Python学习day9 函数Ⅰ(基础)

    函数Ⅰ(基础) 三目运算 基本结构 v =  前面  if 条件 else 后面    #条件为真v=前面,条件为假v=后面.​#等同于if 条件: v = '前面'else:    v = '后面' ...

  6. Day9 Python基础之函数基础(七)

    参考链接:https://www.cnblogs.com/yuanchenqi/articles/5828233.html 1.函数的定义 定义: 函数是指将一组语句的集合通过一个函数名封装起来,要想 ...

  7. day9.初始函数练习题

    1.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者. def new(args): a = [] for I in range(1,len(args),2) ...

  8. day9.初识函数

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

  9. DAY9 函数

    一.脚本文件的执行 1.存放当前文件作为脚本文件执行的参数们:[‘当前文件的绝对路径’,手动传入的参数们] 2.脚本文件执行:直接用python解释器运行该文件  print(sys.argv) # ...

随机推荐

  1. MTIM(中间人攻击)

    所谓的MITM攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情. 信息篡改 当主机A.和主机B通信时,都由主机C来为其“转发”,如图一,而A.B之间并没有真正意思上的直 ...

  2. 全面对比T-SQL与PL/SQL

    1)数据类型 TSQL PL/SQL numeric(p,s) numeric(p,s) or NUMBER(p,s) decimal(p,s) decimal(p,s) or NUMBER(p,s) ...

  3. ie11 调试工具不能使用

    使用ie11仿真ie8测试兼容性的时候,方便调试 dom和仿真都不能用 搜索 https://www.ludou.org/win7-ie-11-f12-bug.html也有相关问题 安装补丁 64位的 ...

  4. Nginx搭建hls流媒体服务器

    第一种方案:ffmpeg+nginx   新的ffmpeg已经支持HLS.(本人也参与了代码供献,给自己做个广告:))   点播:   生成hls分片:   ffmpeg -i <媒体文件> ...

  5. Oracle Oracle数据库 迁移到 SQL Server上

    原地址:https://blog.csdn.net/LongtengGensSupreme/article/details/81355181

  6. 判断素数(翁凯男神MOOC)

    从2到x-1测试是否可以整除 int isPrime(int x); int main(int argc, char **argv) { int x; scanf("%d",&am ...

  7. Linux 安装 iptables防火墙

    CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #先检查是否安装了iptables service iptables st ...

  8. sqlserver 事务嵌套

    参考 https://www.cnblogs.com/JentleWang/p/3654603.html https://blog.csdn.net/tuzhen007/article/details ...

  9. PHP使用UTF8编码读取ACCESS的乱码问题解决方案(转)

    PHP使用UTF8编码读取ACCESS的乱码问题解决方案 http://it.xwstudy.com/readnews.php?id=627 来源:本站编辑 发布日期:2013-05-27 已有 17 ...

  10. CSS:opacity:0,visibility:hidden,display:none的区别

    CSS中opacity=0,visibility=hidden,display=none的时候,三者有什么区别呢?? 参考了stackoverflow的博客,才发现区别如下所示: Here is a ...