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 ...
随机推荐
- 【转】C#多线程
C#中的多线程编程 C#是.Net平台的通用开发工具,它能够建造所有的.Net应用.在.Net中所有线程都运行在应用程序域(AppDomain)中,这也许让你想到Win32进程,实际上它们还是有很大的 ...
- linux命令:df
1.命令介绍: df用来检测磁盘空间占用情况. 2.命令格式: df [选项] 文件 3.命令参数: 必要参数: -a 全部文件系统列表 -h 方便阅读方式显示 -H 等于“-h”,但是计算式,1K= ...
- caffe 基本知识简介
很多不错的网页: 1.http://alanse7en.github.io/caffedai-ma-jie-xi-1/ 主要介绍基本caffe知识 interace 接口 API中的‘I’ Caffe ...
- 软件工程总结(Final)
又到了学期末了,此时此刻软件工程课业接近尾声了.时间过得太快,仿佛昨天这学期的课才开始, 开学时,老师让我们提出了不少对这门课的问题和疑惑,通过一学期的努力学习,我可以试着解开我自己的疑问了. 下面是 ...
- Javascript之Prototype
1.原型设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展.我们称B的原型为A. 2.javascr ...
- ARM指令教程
ARM指令教程 ARM汇编程序特点: l 所有运算处理都是发生通用寄存器(一般是R0~R14)的之中.所有存储器空间(如C语言变量的本质就是一个存储器空间上的几个BYTE).的值的处理 ...
- powerdesigner 生成mysql PDM 的COMMENT注释
1powerdesigner 生成mysql PDM 的COMMENT注释 默认的pd没有生成注释,针对mysql5.0可以如下修改.在Database-->edit Current DBMS. ...
- iOS--难倒一大片的问题
// // main.m // 10.27***** // // Created by on 15/10/27. // Copyright (c) 2015年 . All rights re ...
- 时间改成24小时制 和pc mobile链接自动转化
1 2 <script type ="text/javascript"> function checkserAgent(){ var userAgentInfo=na ...
- day26_网络编程第一天
1.网络通信三要素(掌握) IP 端口号 协议(UPD&TCP) 2.UDP协议与TCP协议各自特点(掌握) UDP 1.不需要建立连接: 2.有数据大小限制,每个 ...