Python编程从入门到实践笔记——函数
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编程从入门到实践笔记——函数的更多相关文章
- Python编程从入门到实践笔记——用户输入和while循环
Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...
- Python编程从入门到实践笔记——异常和存储数据
Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...
- Python编程从入门到实践笔记——文件
Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...
- Python编程从入门到实践笔记——类
Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...
- Python编程从入门到实践笔记——字典
Python编程从入门到实践笔记——字典 #coding=utf-8 #字典--放在{}中的键值对:跟json很像 #键和值之间用:分隔:键值对之间用,分隔 alien_0 = {'color':'g ...
- Python编程从入门到实践笔记——if语句
Python编程从入门到实践笔记——if语句 #coding=utf-8 cars=['bwm','audi','toyota','subaru','maserati'] bicycles = [&q ...
- Python编程从入门到实践笔记——操作列表
Python编程从入门到实践笔记——操作列表 #coding=utf-8 magicians = ['alice','david','carolina'] #遍历整个列表 for magician i ...
- Python编程从入门到实践笔记——列表简介
Python编程从入门到实践笔记——列表简介 #coding=utf-8 #列表——我的理解等于C语言和Java中的数组 bicycles = ["trek","cann ...
- Python编程从入门到实践笔记——变量和简单数据类型
Python编程从入门到实践笔记——变量和简单数据类型 #coding=gbk #变量 message_1 = 'aAa fff' message_2 = 'hart' message_3 = &qu ...
随机推荐
- POJ_3342_Party at Hali-Bula_树形DP
POJ_3342_Party at Hali-Bula_树形DP 题意:直接上司和本人不能同时参加,求最多参加人数,并回答是否唯一解. 分析:常规树形DP,需要再维护一下选/不选当前点取得最大值时是否 ...
- ArcGIS API for JavaScript 入门教程[0] 目录
随时翻看. 转载注明出处,博客园/CSDN/B站:秋意正寒. Part 1 必看 ArcGIS API for JavaScript 入门教程[1] 渊源 你还真不一定知道这是啥.非得学吗? ArcG ...
- openoffice excel word 转换pdf 支持本地调用和远程调用
OpenOffice.org 是一套跨平台的办公室软件套件,能在Windows.Linux.MacOS X (X11)和 Solaris 等操作系统上执行.它与各个主要的办公室软件套件兼容.OpenO ...
- 使用Entity Framework Core访问数据库(Oracle篇)
前言 哇..看看时间 真的很久很久没写博客了 将近一年了. 最近一直在忙各种家中事务和公司的新框架 终于抽出时间来更新一波了. 本篇主要讲一下关于Entity Framework Core访问ora ...
- 你真的知道final关键字吗?
概述 final在英文中是最终的,不可更改的.在Java中final修饰变量,函数和类,就像这个单词的意思,一旦使用赋值之后不可更改. final修饰的变量不可以被改变 finalTest类 publ ...
- WebApi管理和性能测试工具WebApiBenchmarks
说到WebApi管理和测试工具其实已经非常多的了,Postman.Swagger等在管理和维护上都非常出色:在性能测试方面也有不少的工具如:wrk,bombardier,http_load和ab等等. ...
- xamarin android如何将Java.Lang.Object类型转成C#类型
问题起源 其实这个标题也可以换一个更准确一点,因为我遇到的问题是: xamarin android中的Class继承了Java.Lang.Object ,将json序列化成c#类型时发现无法赋值,序列 ...
- 使用Keepalived构建LVS高可用集群
LVS的DR模型配置+Keepalive部署 介绍 下图为DR模型的通信过程,图中的IP不要被扑结构中的IP迷惑,图里只是为了说明DR的通信原理,应用到本例中的拓扑上其工作原理不变. 拓扑结构 服务器 ...
- 带你找到五一最省的旅游路线【dijkstra算法推导详解】
前言 五一快到了,小张准备去旅游了! 查了查到各地的机票 因为今年被扣工资扣得很惨,小张手头不是很宽裕,必须精打细算.他想弄清去各个城市的最低开销. [嗯,不用考虑回来的开销.小张准备找警察叔叔说自己 ...
- Java基础练习3(重载和重写)
1.(多选题)给定java代码如下所示,在1处新增下列()方法,是对show()方法的重载 public class Test{ public void show(int x, int y, int ...