python有很多内置函数,可以直接调用。比如type(), len(), range(),max(), min(), filter().内置函数我们就先不多提,我们主要介绍自定义函数。

1. 函数的定义

函数的定义用def

def 函数名(参数1, 参数2, 参数3,......):

  函数体

  return 表达式


先来一个简单的函数:

 def greet():
print("Hello world") greet()

这个函数没有参数,接下来记录一下有参数的情况。

2. 函数参数

 # def greet():
# print("Hello world") '''
一个参数
'''
def sayHello(name):
print("Hi, "+name) '''
两个参数
'''
def greet(greet, name):
print(greet + "," + name) sayHello("yosef")
greet("你好", "yosef")

关于函数传递,有两点需要注意:

1. 调用函数传入的参数一定要跟函数定义的参数个数一样,否则会报错

2.传入的参数要和定义函数时的数据类型要一致。

3.  默认参数

如果我们在编写函数时,给函数形参一个默认值。在调用函数时,如果不传参,就使用默认的值;传了参数,就使用传的参数。

 #!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time :2018/11/27 13:32
# @Author :yosef
# @Email :wurz529@foxmail.com
# @File: :class14.py
# @Software :PyCharm Community Edition def sayHello(name="visitor"):
print("hello "+name) sayHello()
sayHello("Yosef")

接下来是几个例子:

 #!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time :2018/11/27 13:32
# @Author :yosef
# @Email :wurz529@foxmail.com
# @File: :class14.py
# @Software :PyCharm Community Edition # def sayHello(name="visitor"):
# print("hello "+name)
#
#
# sayHello()
# sayHello("Yosef") """
编写print_info()函数,打印一个句子,指出这一节学了什么,调用这个函数,确认打印显示的消息正确无误。 """
def print_info():
print("我学习了函数!") print_info() """
编写favourite_book();
"""
def favourite_book(bookname = "Linux从删库到跑路"):
print("我最喜欢的书是:"+bookname) favourite_book("Python从入门到放弃")
favourite_book()

4. 位置参数与默认参数

第三节说的是只有一个参数,如果有多个参数该怎么做呢?

假设一个函数叫sum(a, b=3,c=5),如果调用的时候sum(1);sum(1,2),sum(1,2,3)有什么效果呢

 def sum(a,b=3,c=5):
print(a+b+c) sum(1) # a=1 b=3 c=5
sum(1,2) # a=1 b=2 c=5
sum(1,2,3) # a=1 b=2 c=3

当只传一个参数的时候,默认给第一个参数赋值。传2个就给前2个参数赋值,传N个就给前N个参数赋值。

如果我想给第二个以及第五个值传参,其他默认,该怎么搞呢?

假设abcde五个参数,abcde的默认值为1;可以sum(b=2,e=3)即可,直接声明参数以及值。

 def sum(a=1,b=1,c=1,d=1,e=1):
print(a+b+c+d+e)
sum(b=2,e=5)

练习:

 #!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time :2018/11/27 13:59
# @Author :yosef
# @Email :wurz529@foxmail.com
# @File: :class16.py
# @Software :PyCharm Community Edition
def make_shirt(size, words):
print("T恤的size是%s,字样是'%s'" %(size,words)) make_shirt("xl","帅") def describle_city(city="shanghai",country="China"):
print("%s is in %s" %(city,country)) describle_city()
describle_city("nanjing")
describle_city("beijing")
describle_city("北海道","日本")

python之函数(一)的更多相关文章

  1. python的函数

    函数一词起源于数学,但是在编程中的函数和数学中的有很大不同.编程中的函数式组织好的,可重复使用的,用于实现单一功能或相关联功能的代码块. 我们在学习过程中已经使用过一些python内建的函数,如pri ...

  2. python strip()函数 介绍

    python strip()函数 介绍,需要的朋友可以参考一下   函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除 ...

  3. python split()函数

    Python split()函数 函数原型: split([char][, num])默认用空格分割,参数char为分割字符,num为分割次数,即分割成(num+1)个字符串 1.按某一个字符分割. ...

  4. Python数学函数

    1.Python数学函数 1.abs(x):取绝对值,内建函数 2.math.ceil(x):向上取整,在math模块中 3.cmp(x,y):如果 x < y ,返回-1:如果 x == y ...

  5. Python回调函数用法实例详解

    本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...

  6. Python之函数与变量

    本节内容 函数介绍及其作用 函数的定义与调用 函数的参数说明 全局变量与局部变量 值传递和引用传递 一.函数的介绍及其作用 编程语言中的函数与数学中的函数是有区别的:数学中的函数有参数(输入),就会有 ...

  7. Python基础-函数篇

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数  函数与函数式编程 1.面向对象: 华山派-- ...

  8. 【C++实现python字符串函数库】strip、lstrip、rstrip方法

    [C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...

  9. 【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith

    [C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...

  10. 【C++实现python字符串函数库】一:分割函数:split、rsplit

    [C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...

随机推荐

  1. C++11中lock_guard和unique_lock的区别

    c++11中有一个区域锁lock_guard,还有第二个区域锁unique_lock. 区域锁lock_guard使用起来比较简单,除了构造函数外没有其他member function,在整个区域都有 ...

  2. BootstrapValidator:表单验证神器

    前言:做Web开发的我们,表单验证是再常见不过的需求了.友好的错误提示能增加用户体验.博主搜索bootstrap表单验证,搜到的结果大部分都是文中的主题:bootstrapvalidator.今天就来 ...

  3. 一,安装python

    在Windows上安装Python 首先,从Python的官方网站www.python.org下载最新的2.7.9版本,地址是这个: http://www.python.org/ftp/python/ ...

  4. java就业指南 zookeeper分布式系统 zookeeper实现分布式锁 有用

    目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题.分布式的CAP理论告诉我们“任何一个 分布式系统都无法同时满足一致性(Consistency).可用性 ...

  5. C/C++ 经典面试题汇总

    面试题1:变量的声明和定义有什么区别 ? 为变量分配地址和存储空间的称为定义,不分配地址的称为声明.一个变量可以在多个地方声明,但是只在一个地方定义.加入extern修饰的是变量的声明,说明此变量将在 ...

  6. 2.sql分类

    SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法.但是 SQL 语言也包含用于更新.插 ...

  7. WCF把书读薄(3)——数据契约、消息契约与错误契约

    上一篇:WCF把书读薄(2)——消息交换.服务实例.会话与并发 十二.数据契约 在实际应用当中数据不可能仅仅是以int Add(int num1, int num2)这种简单的几个int的方式进行传输 ...

  8. oracle数据库之数据插入、修改和删除

    作为一合格的测试人员对数据库的单表查询.多表查询.分组查询.子查询等等这些基本查询方法还是要会的.不然到企业中,容易被一些人鄙视,或者说如果数据库学不好,表查不明白,那么对自己能力来说也是一种侮辱,因 ...

  9. Qt工程文件Pro介绍(转)

    转载请注明:http://blog.163.com/hu_cuit/blog/static/122849143201127104232142/ 我也才开始学习QT的菜鸟.但是前几天有同学叫我给他讲一下 ...

  10. win7桌面鼠标右键过慢的解决方案

    由于Intel显卡驱动在桌面右键的加载项造成.解决方案:清理注册表中桌面右键加载项,点击开始,输入regedit,找到HKEY_CLASSES_ROOT\Directory\Background\sh ...