python入到到实战--第八章

第八章 函数

定义函数

关键字def

def get_name():

  print("测试函数代码")

调用函数

get_name()

向函数传递信息------在函数的括号内添加需要传递的信息

实参和形参

在函数定义时,函数括号内的参数是形参;

在调用函数时,函数括号内的参数是实参;

传递参数----还可以使用列表和字典

位置实参:实参的顺序和形参的顺序相同---------顺序很重要,如果顺序错误,则实际结果会跟预期结果差别

关键字实参:每个实参由变量名和值组成;

位置实参

def test1(abc, bcd):

  print(abc + " " + bcd)

test("1111","222")  >>>1111 2222

关键字实参:

def test2(abc, bcd):
print(abc + " " + bcd)

test2(abc = "1111",bcd = "222") >>>1111 2222

默认值:

编写函数时,可以给每个形参指定默认值,调用函数时,如果提供了实参,则使用指定的参数,否则将使用形参的默认值。

def test3(abc="00000"):

  print(abc)

test3()  >>>00000

test3("789") >>>789

当有多个形参,而实参个数少与形参个数时,根据实参顺序和形参顺序进行匹配。

可混合使用位置实参、关键字实参和默认值,

避免实参错误:

调用函数时,未指定任何实参

出现traceback 错误时,请确保函数调用和函数定义匹配。

返回值:函数返回的值称为返回值

调用有返回值的函数时,需要提供一个变量,用户存储返回的值。

让实参变为可选的--------在定义函数时,给形参添加使用默认值。

返回字典:

def build_person(first_name, last_name):
"""返回一个字典, 其中包含有关一个人的信息"""
   person = {‘first‘: first_name, ‘last‘: last_name}
   return person

musician = build_person(‘jimi‘, ‘hendrix‘)
print(musician)

结合使用函数和while 循环 :

def get_formatted_name(first_name, last_name):
  """返回整洁的姓名"""
  full_name = first_name + ‘ ‘ + last_name
  return full_name.title()

# 这是一个无限循环!
while True:
   print("\nPlease tell me your name:")

  f_name = input("First name: ")
  l_name = input("Last name: ")
  formatted_name = get_formatted_name(f_name, l_name)
  print("\nHello, " + formatted_name + "!")

=========================

增加循环退出条件

def get_formatted_name(first_name, last_name):
"""返回整洁的姓名"""
  full_name = first_name + ‘ ‘ + last_name
  return full_name.title()
while True:
  print("\nPlease tell me your name:")
  print("(enter ‘q‘ at any time to quit)")
  f_name = input("First name: ")
  if f_name == ‘q‘:
    break
  l_name = input("Last name: ")
    if l_name == ‘q‘:
  break
  formatted_name = get_formatted_name(f_name, l_name)
  print("\nHello, " + formatted_name + "!")

=========================

传递列表

def greet_users(names):
"""向列表中的每位用户都发出简单的问候"""
  for name in names:
    msg = "Hello, " + name.title() + "!"
    print(msg)

usernames = [‘hannah‘, ‘ty‘, ‘margot‘]
greet_users(usernames)

在函数中修改列表:

将列表传递给函数后, 函数就可对其进行修改。 在函数中对这个列表所做的任何修改都是永久性的, 这让你能够高效地处理大量的数据。
禁止函数修改列表 :向函数传递列表的副本而不是原件; 这样函数所做的任何修改都只影响副本, 而丝毫不影响原件
要将列表的副本传递给函数, 可以像下面这样做 :function_name(list_name[:])     ----------切片表示法[:] 创建列表的副本。

传递任意数量的实参 --预先不知道函数需要接受多少个实参,python函数允许函数从调用语句中收集任意数量的实参。
def make_pizza(*toppings):
"""打印顾客点的所有配料"""
  print(toppings)
make_pizza(‘pepperoni‘)
make_pizza(‘mushrooms‘, ‘green peppers‘, ‘extra cheese‘)

解释:形参名*toppings 中的星号让Python创建一个名为toppings 的空元组, 并将收到的所有值都封装到这个元组中。

结合使用位置参数实参和任意实参:

如果要让函数接受不同类型的实参, 必须在函数定义中将接纳任意数量实参的形参放在最后。

使用任意数量的关键字实参

将函数存储在模块中
导入整个模块 import module_name

调用模块的函数:module_name.function()

模块 是扩展名为.py的文件 。
导入特定的函数  from module_name  import function_name001, function002

调用函数:直接函数名调用,不需要使用模块名.函数名的方式调用

使用as 给函数指定别名 -----函数名太长或者函数名冲突时,方便使用

from module_name import function_name as  f_n

使用as 给模块指定别名 ---import module_name as  m_n

导入模块的所有函数---from module_name import *

函数编写指南

1、给函数指定描述性名称,只使用小写字母和下划线

2、每个函数应该包含简要阐述其功能的注释,注释位置应该是定义函数的后面

3、给形参指定默认值时,等号两边不要有空格

4、函数调用时,关键字实参的等号两边不要有空格

5、形参列表比函数体多缩进一层

6、使用4个空格缩进

原文地址:https://www.cnblogs.com/beidou93/p/9909885.html

时间: 2024-08-01 12:01:13

python入到到实战--第八章的相关文章

python入到到实战--第九章

第九章  类 面向对象编程 是最有效的软件编写方法之一. 在面向对象编程中, 你编写表示现实世界中的事物和情景的类, 并基于这些类来创建对象. 编写类时, 你定义一大类对象都有的通用行为. 基于类创建对象 时, 每个对象都自动具备这种通用行为, 然后可根据需要赋予每个对象独特的个性. 根据类来创建对象被称为实例化 , 这让你能够使用类的实例. 创建和使用类 class Dog():  """一次模拟小狗的简单尝试"""  def __init__

Python数据科学精华实战课程|Python数据科学视频教程

Python数据科学精华实战课程网盘地址:https://pan.baidu.com/s/1j6o8qNw2qhBkJYOKW-YrYw 提取码: 67in备用地址(腾讯微云):https://share.weiyun.com/56gifEp 密码:qbta8q 课程规划全面.涵盖基础知识.爬虫采集.数据处理.可视化.数据建模,难得一见的Python体系全面数据科学课程,起步之路有高度:精品质量.课程设计环节紧凑,循循善诱:课堂教学如行云流水,让人受益匪浅 第一章:Python与数据科学应用第二

Python10分钟入门教程,Python入门神图一张

这篇文章主要介绍了Python 10分钟入门教程,分享一张Python入门神图一张,具有一定的参考价值,感兴趣的小伙伴们可以参考一下| 初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(CheatSheet)之间,因此只会包含一些基本概念.很显然,如果你希望真正学好一门语言,你还是需要亲自动手实践的.在此,我会假定你已经有了一定的编程基础,因此我会跳过大部分

Python数据分析案例(实战)视频教程

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

Python高级爬虫开发实战视频

Python高级爬虫开发实战视频1.人人都爱列表_2016-11-24_2204322.递归和共享代码_2016-11-26_2211493.共享你的代码_2016-11-29_2215324.模块完结Video_2016-12-01_2227515.文件处理Video_2016-12-03_2240146.爬虫基础-上京东-找狗粮Video_2016-12-06_2301487.爬虫-更简单的方式-京东Video_2016-12-08_2244408.使用python找工作Video_2016

树莓派Python编程入门与实战 PDF

树莓派Python编程入门与实战 链接:https://pan.baidu.com/s/1y2-912g7VknVzXKAdzUPpA 密码:rzbz 原文地址:https://www.cnblogs.com/luoshuifusheng/p/9376025.html

(数据科学学习手札47)基于Python的网络数据采集实战(2)

一.简介 马上大四了,最近在暑期实习,在数据挖掘的主业之外,也帮助同事做了很多网络数据采集的内容,接下来的数篇文章就将一一罗列出来,来续写几个月前开的这个网络数据采集实战的坑. 二.马蜂窝评论数据采集实战 2.1 数据要求 这次我们需要采集的数据是知名旅游网站马蜂窝下重庆区域内所有景点的用户评论数据,如下图所示: 思路是,先获取所有景点的poi ID,即每一个景点主页url地址中的唯一数字: 这一步和(数据科学学习手札33)基于Python的网络数据采集实战(1)中做法类似,即在下述界面: 翻页

分享《Python数据可视化编程实战》中文版PDF+英文版PDF+源代码

下载:https://pan.baidu.com/s/17-gPTIYJsHc4Xn_f5sVYXw <Python数据可视化编程实战>中文版PDF+英文版PDF+源代码 中文版PDF,带目录和书签:英文版PDF,带目录和书签:中英文两版可以对比学习.配套源代码:经典书籍,讲解详细:中文版如图: 原文地址:http://blog.51cto.com/3215120/2311995

《Python数据可视化编程实战》中文版PDF+英文版PDF+源代码

资源链接:https://pan.baidu.com/s/1XqN3YBmL5Y1jknUbaiv-Qg<Python数据可视化编程实战>中文版PDF+英文版PDF+源代码中文版PDF,带目录和书签:英文版PDF,带目录和书签:中英文两版可以对比学习.配套源代码:经典书籍,讲解详细:中文版如图: 原文地址:http://blog.51cto.com/14063572/2318482