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. BZOJ_1875_[SDOI2009]HH去散步_矩阵乘法

    BZOJ_1875_[SDOI2009]HH去散步_矩阵乘法 Description HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但 是同时H ...

  2. BZOJ_3307_雨天的尾巴_线段树合并+树上差分

    BZOJ_3307_雨天的尾巴_线段树合并 Description N个点,形成一个树状结构.有M次发放,每次选择两个点x,y 对于x到y的路径上(含x,y)每个点发一袋Z类型的物品.完成 所有发放后 ...

  3. BZOJ_3011_[Usaco2012 Dec]Running Away From the Barn _可并堆

    BZOJ_3011_[Usaco2012 Dec]Running Away From the Barn _可并堆 Description 给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于l的 ...

  4. Lucene 源码分析之倒排索引(三)

    上文找到了 collect(-) 方法,其形参就是匹配的文档 Id,根据代码上下文,其中 doc 是由 iterator.nextDoc() 获得的,那 DefaultBulkScorer.itera ...

  5. 干货!分享一款windows下的磁盘分析神器。

    作为开发人员的你,肯定遇到过这样的情况,120G SSD系统盘居然满载了,到底是被哪些程序占用了,包含哪些大文件,这个时候脑袋里就开始回忆了.....这对平时没有养成规范化记录安装软件好习惯的同学而言 ...

  6. quillJS 富文本编辑器源码分析系列1

    quillJS 富文本编辑器目前是一款很火富文本编辑器,使用广泛,github 上面的 star 有 22,492,虽然说不以 star 论英雄,不过这可以说明它还是比较受欢迎的: 它的特点是:轻量, ...

  7. "元素隐式具有 “any” 类型,因为类型“Shared”没有索引签名"问题解决思路

    最近在构建一个typescript项目时如下代码在项目框架里vscode报错元素隐式具有 "any" 类型,因为类型“Shared”没有索引签名;很有意思的是当我们单独的把这段代码 ...

  8. .net core 在网络高并发下提高JSON的处理效率

    现有的webapi一般都基于JSON的格式来处理数据,由于JSON是一个文本类的序列化协议所以在性能上自然就相对低效一些.在.net中常用Newtonsoft.Json是最常用的组件,由于提供简便基于 ...

  9. C# 语音合成

    1. 引用System.Speech 2. 通过SpeechSynthesizer类朗读文本 new SpeechSynthesizer().SpeakAsync("我们都是好孩子We're ...

  10. spring boot 2.0 Feign的客户端

    1.pom.xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId ...