Python入门4
函数
函数其实在日常的编码过程中,你都在使用,比如print()、input()、len()等函数,只不过这些都是python给你写好的内置函数,供你是用,内置的函数数量有限,想让python为我们做更多的事情,就需要自己设计符合的函数
1、减少重复代码
2、使程序变的可扩展
3、使程序变得易维护
开始创建函数:
创建函数之前,我们先对创建函数的语法进行了解,见下图
1、def 是关键字,不可缺少
2、函数名可以自己定义,不可缺少
3、参数:可选
4、retrun:可选
示例:
def hello():
print('hello world')
函数的调用
函数在定义完成后,自身无法进行允许,必须进行调用,比如我们把上边的函数进行执行
hello() # 输出
hello world
函数的参数
在调用函数的时候,我们会往里面传入一些值,放在函数的括号内,这个就叫参数,比如书写如下函数:
def hello(name):
print('hello ' + name) hello('Tom')
hello('Jerry') # 输出
hello Tom
hello Jerry
1、位置参数:
位置参数就是在调用函数的时候,形参和实参一一对应,不多也不少,这就是位置参数
def calc(x, y):
print(x * y) calc(2, 3)
2、关键参数
在有的时候,我们希望在调用的时候明确,我要把实参的值赋予给谁的时候,就需要是用关键参数,这个时候,你的参数顺序可以随意更换。
def calc(x, y):
print(x * y) calc(x=2, y=3)
3、非固定参数--*args
若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数
def test(*args):
print(args) test('arg1', 'arg2', 'arg3') # 输出
('arg1', 'arg2', 'arg3')
4、非固定参数--**kwargs
def test(**kwargs):
print(kwargs) test(name='tom', age=18) # 输出
{'age': 18, 'name': 'tom'}
局部变量和全局变量
在被调用的函数内部使用的变量,属于局部变量,处于该函数的"局部作用域",这个时候的变量,不能被外部是用,例如:
def test():
count = 1 print(count) # 输出
NameError: name 'count' is not defined
调用全局变量
count = 1 def test():
print(count) test()
递归
递归(recursion):通俗的说,程序调用自身的编程技巧。函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。
递归特性:
1. 必须有一个明确的结束条件
2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)
def func(num):
if num == 1:
return 1
return num * func(num - 1) x = func(7)
print(x)
Python入门4的更多相关文章
- python入门简介
Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...
- python入门学习课程推荐
最近在学习自动化,学习过程中,越来越发现coding能力的重要性,不会coding,基本不能开展自动化测试(自动化工具只是辅助). 故:痛定思痛,先花2个星期将python基础知识学习后,再进入自动化 ...
- Python运算符,python入门到精通[五]
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.例如:2+3,其操作数是2和3,而运算符则是“+”.在计算器语言中运算符大致可以分为5种类型:算术运算符.连接运算符.关系运算符.赋值运 ...
- Python基本语法[二],python入门到精通[四]
在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...
- Python基本语法,python入门到精通[二]
在上一篇博客Windows搭建python开发环境,python入门到精通[一]我们已经在自己的windows电脑上搭建好了python的开发环境,这篇博客呢我就开始学习一下Python的基本语法.现 ...
- visual studio 2015 搭建python开发环境,python入门到精通[三]
在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo, ...
- python入门教程链接
python安装 选择 2.7及以上版本 linux: 一般都自带 windows: https://www.python.org/downloads/windows/ mac os: https:/ ...
- Python学习【第二篇】Python入门
Python入门 Hello World程序 在linux下创建一个叫hello.py,并输入 print("Hello World!") 然后执行命令:python hello. ...
- python入门练习题1
常见python入门练习题 1.执行python脚本的两种方法 第一种:给python脚本一个可执行的权限,进入到当前存放python程序的目录,给一个x可执行权限,如:有一个homework.py文 ...
- Python入门版
一.前言 陆陆续续学习Python已经近半年时间了,感觉到Python的强大之外,也深刻体会到Python的艺术.哲学.曾经的约定,到现在才兑现,其中不乏有很多懈怠,狼狈. Python入门关于Pyt ...
随机推荐
- Xcode下的批量编辑
说明:目前为止我找到三种查找与替换功能,如果有更多的方式,请在下面留言 第一种:我们常用的查找以及查找与替换功能 在Windows下,使用Ctrl+f 快捷键查找.用Ctrl+h来进行查找与替换功能. ...
- vi & vim复制,粘贴,剪切文本
我经常用vi编辑器,但基本上还是windows的习惯,没有系统的学过其功能,今天遇到了文本的复制这没有办法了,查看一下解决如下: 引用文本: ----------------------------- ...
- u-boot链接脚本分析
eclipse 64位下载地址:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release ...
- vi学习 常用命令-新建-复制-剪切-粘贴
mkdir /home/brandon.du/desktop/mylinux/test_1.txt ---------mkdir新建文件夹 rm /home/brandon.du/desktop/ ...
- 第五章 搭建 S3C6.410 开发板的 测试环境
一.简介: 对于嵌入式驱动开发者来说,你必须要了解什么是开发板:它与我们经常用的手机类似, 包含了显示屏. 键盘. Wi-Fi. 蓝牙等模块等,是开发者必备的硬件设备.但与手机不同的是:在开发板上安装 ...
- 富文本编辑器kindeditor配置
<!--富文本编辑器kindeditor配置↓ --> <link type="text/css" rel="stylesheet" href ...
- wordpress视频教程
wordpress还不错的一套自动赚钱视频教程 http://www.ggfenxiang8.com/?p=256
- Maven修改本地仓库路径
仓库知识参考 http://www.cnblogs.com/luotaoyeah/p/3785044.html 1. 修改配置文件settings.xml 假设你的maven位置在 D:\apache ...
- Github注册账户过程
首先打开网站https://github.com/ 第一个是输入用户名第二个是邮箱第三个是自己的密码然后点 sign up for github 此时会有个邮箱注册的验证进入注册的邮箱点击认证. ...
- IOS懒加载
1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 ...