Python编程从入门到实践笔记——函数

#coding=gbk
#Python编程从入门到实践笔记——函数
#8.1定义函数 def 函数名(形参):
# [缩进]注释+函数体
#1.向函数传递信息
#2.形参、实参概念和其余语言的概念相同
def greet_user(username):
"""显示简单的问候语"""
print("Hello!"+username) greet_user("Mike") #8.2传递实参
#1.位置实参(注意顺序)
def describe_user_info(username,password):
"""得到用户名和密码"""
print("\nUsername:"+username)
print("Password:"+password) describe_user_info("admin","")
describe_user_info("meng","") #2.关键字实参(注意形参名)
describe_user_info(username="admin",password="") #3.默认值
def describe_user_info_1(username,password=""):
"""得到用户名和密码"""
print("\nUsername:"+username)
print("Password:"+password) describe_user_info_1(username="admin") #4.等效的函数调用
describe_user_info_1('john')
describe_user_info_1('john','') describe_user_info_1('john','')
describe_user_info_1(username='john',password='')
describe_user_info_1(password='',username='john') #5.避免实参错误 #8.3返回值
#1.返回简单值
def get_user_info(username,password):
"""返回用户名和密码"""
user_info = username + ' ' +password
return user_info xiaoming = get_user_info('xiaoming','')
print(xiaoming) #2.让实参变成可选的
def get_formatted_name(first_name, last_name, middle_name=''):
"""返回整洁的姓名"""
if middle_name:
full_name = first_name + ' ' + middle_name + ' ' + last_name
else:
full_name = first_name + ' ' + last_name
return full_name.title() musician = get_formatted_name('jimi', 'hendrix')
print(musician)
musician = get_formatted_name('john', 'hooker', 'lee')
print(musician) #3.返回字典
def build_person(first_name, last_name, age=''):
"""返回一个字典, 其中包含有关一个人的信息"""
person = {'first': first_name, 'last': last_name}
if age:
person['age'] = age
return person player = build_person('Kylian', 'Mbappé', age=19)
print(player) #4.结合使用函数和while循环 #8.4传递列表
def greet_users(names):
"""向列表中的每位用户发出问候"""
for name in names:
msg = "Hello,"+ name.title() + "!"
print(msg) usernames=['kevin','wayne','robert']
greet_users(usernames) #1.在函数中修改列表
#第一个版本
# 首先创建一个列表, 其中包含一些要打印的设计
unprinted_designs = ['iphone case', 'robot pendant', 'dodecahedron']
completed_models = []
# 模拟打印每个设计, 直到没有未打印的设计为止
# 打印每个设计后, 都将其移到列表completed_models中
while unprinted_designs:
current_design = unprinted_designs.pop()
#模拟根据设计制作3D打印模型的过程
print("Printing model: " + current_design)
completed_models.append(current_design) # 显示打印好的所有模型
print("\nThe following models have been printed:")
for completed_model in completed_models:
print(completed_model) #定义函数进行改版
def print_models(unprinted_designs, completed_models):
"""
模拟打印每个设计, 直到没有未打印的设计为止
打印每个设计后, 都将其移到列表completed_models中
"""
while unprinted_designs:
current_design = unprinted_designs.pop()
# 模拟根据设计制作3D打印模型的过程
print("Printing model: " + current_design)
completed_models.append(current_design) def show_completed_models(completed_models):
"""显示打印好的所有模型"""
print("\nThe following models have been printed:")
for completed_model in completed_models:
print(completed_model) #主函数看这里,功能一目了然
unprinted_designs = ['iphone case', 'robot pendant', 'dodecahedron']
completed_models = [] print_models(unprinted_designs, completed_models)
show_completed_models(completed_models) #2.禁止函数修改列表
#有时候需要禁止修改列表。可以将列表的副本传递给函数 function_name(list_name[:])
#在上例中,如果不想清空未打印的设计列表,可以这样调用:print_modules(unprinted_designs[:],complete_modules) #8.5传递任意数量的实参
def greet_magicians(*magicians_names):
print(magicians_names) print("*****************greet_magicians*******************")
greet_magicians('liu')
greet_magicians('liu','qian') #1.结合使用位置实参的任意数量实参 * #2.使用任意数量的关键字实参 **
#编写函数的时候,可以以各种方式混合使用位置实参、关键字实参和任意数量的实参。 #8.6将函数存储在模块中
#1.导入整个模块
#模块是拓展名为.py的文件,包含要导入到程序中的代码。
#import module_name #2.导入特定的函数
#from module_name import function_name #3.使用as给函数指定别名(跟SQL语言中as挺像)
#from module_name import function_name as fn #4.使用as给模块指定别名
#import module_name as mn #5.导入模块中的所有函数
#from module_name import *
#使用非自己编写的大型模块时,最后不要采用这种导入方法 #8.7函数编写指南
#给函数指定描述性名称,做到见名知意,且只在其中使用小写字母和下划线。
#给形参指定默认值时, 等号两边不要有空格: def function_name(parameter_0, parameter_1='default value')

Python编程从入门到实践笔记——函数的更多相关文章

  1. Python编程从入门到实践笔记——用户输入和while循环

    Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...

  2. Python编程从入门到实践笔记——异常和存储数据

    Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...

  3. Python编程从入门到实践笔记——文件

    Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...

  4. Python编程从入门到实践笔记——类

    Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...

  5. Python编程从入门到实践笔记——字典

    Python编程从入门到实践笔记——字典 #coding=utf-8 #字典--放在{}中的键值对:跟json很像 #键和值之间用:分隔:键值对之间用,分隔 alien_0 = {'color':'g ...

  6. Python编程从入门到实践笔记——if语句

    Python编程从入门到实践笔记——if语句 #coding=utf-8 cars=['bwm','audi','toyota','subaru','maserati'] bicycles = [&q ...

  7. Python编程从入门到实践笔记——操作列表

    Python编程从入门到实践笔记——操作列表 #coding=utf-8 magicians = ['alice','david','carolina'] #遍历整个列表 for magician i ...

  8. Python编程从入门到实践笔记——列表简介

    Python编程从入门到实践笔记——列表简介 #coding=utf-8 #列表——我的理解等于C语言和Java中的数组 bicycles = ["trek","cann ...

  9. Python编程从入门到实践笔记——变量和简单数据类型

    Python编程从入门到实践笔记——变量和简单数据类型 #coding=gbk #变量 message_1 = 'aAa fff' message_2 = 'hart' message_3 = &qu ...

随机推荐

  1. 【dfs+连通分量】Bzoj1123 POI2008 BLO

    Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n&l ...

  2. BZOJ_4196_[Noi2015]软件包管理器_树链剖分

    BZOJ_4196_[Noi2015]软件包管理器_树链剖分 题意: Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助 ...

  3. C#进度框

    1.方法一:使用线程 功能描述:在用c#做WinFrom开发的过程中.我们经常需要用到进度条(ProgressBar)用于显示进度信息.这时候我们可能就需要用到多线程,如果不采用多线程控制进度条,窗口 ...

  4. C++实现离散数学的关系类,支持传递闭包运算

    #include <vector> #include <cassert> #include <iostream> using namespace std; clas ...

  5. MIP 技术进展月报:储存功能全新上线,MIP-Cache域名升级,校验更严谨

    集 ** 瞬时触达用户.高转化率.炫酷闪电标.优质展现形式 ** 等诸多特性为一体的 MIP 页面吸引了众多站点进行改造.为了更好地服务于广大站长,更快地倾听站长们的声音,MIP 技术团队特推出< ...

  6. 微服务架构 - 巧妙获取被墙的Docker镜像

    在国内由于种种原因,有些Docker镜像直接是获取不到的,特别是k8s中的一些镜像.本人在部署k8s中的helm组件时需要获取tiller镜像,如果直接用如下命令: docker pull gcr.i ...

  7. SpringSecurityOauth RCE (CVE-2016-4977) 分析与复现

    目录 0x00 前言 0x01 调试分析 0x02 补丁分析 0x03 参考 影响版本: 2.0.0-2.0.9 1.0.0-1.0.5 0x00 前言 这个漏洞与之前那个SpringBoot的SpE ...

  8. Wmyskxz文章目录导航附Java精品学习资料

    前言:这段时间一直在准备校招的东西,所以一晃眼都好长时间没更新了,这段时间准备的稍微好那么一点点,还是觉得准备归准备,该有的学习节奏还是要有..趁着复习的空隙来整理整理自己写过的文章吧..好多加了微信 ...

  9. synchronized关键字简介 多线程中篇(十一)

    前面说过,Java对象都有与之关联的一个内部锁和监视器 内部锁是一种排它锁,能够保障原子性.可见性.有序性 从Java语言层面上说,内部锁使用synchronized关键字实现 synchronize ...

  10. 第11章 创建请求URLs - IdentityModel 中文文档(v1.0.0)

    该RequestUrl是创建与查询字符串参数,例如URL的帮手: var ru = new RequestUrl("https://server/endpoint"); // pr ...