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. resteasy简单实例

    1.建一个maven web项目 新建一个maven项目,next,第一个框不要勾选 选择maven-archetype-webapp,建一个web项目 键入项目组织id与项目id 一般此时搭建的只是 ...

  2. 张高兴的 Windows 10 IoT 开发笔记:串口红外编解码模块 YS-IRTM

    This is a Windows 10 IoT Core project on the Raspberry Pi 2/3, coded by C#. GitHub: https://github.c ...

  3. Android ROM包定制(解包,增删模块,打包)

    1. 解包 假设有一个名为update.zip的ROM包,我们要在Ubuntu下对它进行定制.首先把system.transfer.list和system.new.dat.br(有些旧版的系统的镜像可 ...

  4. .net core 注入机制与Autofac

    本来是要先出注入机制再出 管道 的,哈哈哈……就是不按计划来…… 这里扯扯题外话:为什么要注入(DI,dependency-injection),而不用 new 对象? 可能我们都很清楚,new 对象 ...

  5. MFC多语言程序版本,在不同的windows系统上的使用

    如何使MFC程序界面支持多国语言?这次使用后给自己做一个总结. 我们使用vc6.0的版本来试验 1. 切换到资源视图,右键Dialog->Insert Copy 2. ok后,会出来一个语言的选 ...

  6. [dotnet] 封装一个同时支持密码/安全密钥认证的SFTP下载器,简单易用。

    前言 最近在开发订单对账系统,先从各种支付平台获取订单销售数据,然后与公司商城订单数据进行对账兜底.总体上,各个支付平台提供数据的方式分为两类,一般以接口的方式提供实时数据,比如:webservice ...

  7. MySQL 复制 - 性能与扩展性的基石 3:常见问题及解决方案

    主备复制过程中有很大可能会出现各种问题,接下来我们就讨论一些比较普遍的问题,以及当遇到这些问题时,如何解决或者预防问题发生. 1 数据损坏或丢失 问题描述:服务器崩溃.断电.磁盘损坏.内存或网络错误等 ...

  8. 用node探究http缓存

    用node搞web服务和直接用tomcat.Apache做服务器不太一样, 很多工作都需要自己做.缓存策略也要自己选择,虽然有像koa-static,express.static这些东西可以用来管理静 ...

  9. CSS fixed 定位元素失效的问题

    一个示例 考察下面的代码: <head> <title>css filter issue</title> <style> body { height: ...

  10. 内部类、异常以及 LeetCode 每日一题

    1 内部类 内部类的作用: 内部类提供了更好的封装,可以把内部类隐藏于外部类之内,不允许同一个包中的其他类访问该类.(例如给“牛”这个类组合一个“牛腿”,则可以把牛腿定义成内部类,因为牛腿脱离了牛没有 ...