习题18:命名,变量,代码,函数

函数可以做三样事情:

1. 它们给代码片段命名,就跟‘变量’给字符串和数字命名一样

2. 它们可以接受参数,就跟之前的脚本argv一样

3. 通过使用#1和#2,它们可以让你创建‘微型脚本’或者‘小命令’

可以使用def新建函数,练习代码如下

# coding: utf-8
__author__ = 'www.py3study.com'
def print_two(*args):
    arg1, arg2 = args
    print("arg1:{},agr2:{}".format(arg1, arg2))

def print_two_again(arg1, arg2):
    print("arg1:{},arg2:{}".format(arg1, arg2))

def print_one(arg1):
    print("arg1:{}".format(arg1))

def print_none():
    print("I got nothin.")

print_two("Zed", "Tom")
print_two_again('Zed', 'Tom')
print_one('First!')
print_none()

print_two解析一下,这个函数和你写脚本的方式差不多,因此看上去会比较眼熟

1. 首先告诉python创建一个函数,使用的命令是def,也就是定义(define)的意思

2. 紧接着def的是函数的名称,上面的例子中它的名称是print_two,名字可以随便取,xxx,yyy随意,不过最好写的名称是有含义的,不然时间一下,哪里还记得xxx,yyy是什么东西,最好函数的名称能够体现出函数的功能来

3. 然后告诉函数我们需要*args,这和脚本的argv非常相似,参数必须放在括号中才能正常工作

4. 接着用冒号: 结果本行,然后开始下一行缩进

5. 使用4个缩进的行都是属于print_two这个函数的内容,其中第一行的作用是将参数解包,这和脚本参数解包原理一样

6. 把解包后的每个参数打印出来,和之前的练习相似

函数print_two的问题是: 它并不是创建函数最简单的方法。在python函数中可以跳过整个参数解包的过程,直接使用()里边的名称作为变量名,这就是print_two_again实现的功能

接下来的例子是print_one,它演示了函数如何接受单个参数

最后例子是print_none,它演示了函数可以不接受任何参数

应该看到的结果

常见问题

函数名称有什么规则?

和变量名一样,只要以字母数字以及下划线组成,而且不是数字开始,就可以了

*args的*是什么意思?

它的功能是告诉python把函数的所有参数都接受进来,然后放到名字叫做args的列表中去

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏青玉伏案

窥探Swift编程之错误处理与异常抛出

在Swift 2.0版本中,Swift语言对其错误处理进行了新的设计,当然了,重新设计后的结果使得该错误处理系统用起来更爽。今天博客的主题就是系统的搞一下Swi...

21650
来自专栏微信公众号:Java团长

理解Java虚拟机体系结构

  众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下...

14860
来自专栏微信公众号:Java团长

Java虚拟机类加载机制

看到这个题目,很多人会觉得我写我的java代码,至于类,JVM爱怎么加载就怎么加载,博主有很长一段时间也是这么认为的。随着编程经验的日积月累,越来越感觉到了解虚...

10920
来自专栏python3

python列表

"C:Program Files (x86)python3.6python.exe" D:/python3_study/list1.py

13030
来自专栏java一日一条

Java类的生命周期详解

最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题 讲明白的,主要是因为...

16830
来自专栏视觉求索无尽也

【Python】Python知识点总结

字典{key:value,key:value},dict(key=value,key=value):

50510
来自专栏后端技术探索

实用篇-无处不在的Location

location配置是nginx模块化配置中最出色的一个设计,几乎所有nginx的业务场景都要通过书写多个location配置来顺应业务需要。语法配置和执行规则...

12520
来自专栏个人随笔

论 Java 的访问权限

Java中成员访问权限 Java中的访问权限控制符有四个: 作用域_____当前类____同一package___子孙类____其他package publi...

41380
来自专栏xingoo, 一个梦想做发明家的程序员

数字按照不同格式转换成字符串

  如果自己写函数,不使用itoa怎么判断呢?   我们用通常的办法,对数字进行每位的除商,得到后与字符'0'相加。 flag = 0; ...

217100
来自专栏农夫安全

【weakfilescan】敏感文件扫描工具

weakfilescan 基于爬虫,动态收集扫描目标相关信息后进行二次整理形成字典规则,利用动态规则的多线程敏感信息泄露检测工具,支持多种个性化定制选项,包括...

49380

扫码关注云+社区

领取腾讯云代金券