python 之 函数 面向过程 三元表达式 函数递归
5.11 面向过程编程思想
核心是'过程'二字,过程即解决问题的步骤,即先干什么,再干什么........ 基于面向过程编写程序就好比在设计一条流水线,是一种机械式的思维方式。
总结优缺点: 优点:复杂的问题流程化,进而简单化 缺点:修改一个阶段,其他阶段都有可能需要做出修改,牵一发而动全身,即扩展性极差 应用:用于扩展性要求低的场景
5.12 三元表达式
三元表达式仅应用于: 1、条件成立返回 一个值 2、条件不成立返回 一个值
- 条件成立的情况下返回的值 if 条件 else 条件不成立的情况下返回的值
- def max2(x,y):
- return x if x > y else y
- print(max2(10,11))
- def max2(x,y):
- if x > y:
- return x
- else:
- return y
- res=max2(10,11)
- print(res)
5.13 函数递归
递归分为两个阶段 1、回溯: 注意:一定要在满足某种条件结束回溯,否则的无限递归 2、递推
- items=[1,[2,[3,[4,[5,[6,[7,[8,[9,[10,]]]]]]]]]]
- def tell(l):
- for item in l:
- if type(item) is not list:
- print(item)
- else:
- tell(item)
-
- tell(items)
- def age(n):
- if n == 1:
- return 18
- return age(n-1)+2 #age(4)+2
-
- age(5)
总结: 1、递归一定要有一个明确地结束条件 2、每进入下一次递归,问题的规模都应该减少 3、在python中没有尾递归优化
python 之 函数 面向过程 三元表达式 函数递归的更多相关文章
- day17 生成器, 面向过程, 三元表达式, 生成式
1. 生成器 生成器:就是一种自定义的迭代器,是用来返回多次值自定义迭代器的好处:节省内存 return只能返回一次值,函数就立即结束了yield 1.可以挂起函数,保存函数的运行状态 2.可以用来返 ...
- python之路--day13---函数--三元表达式,递归,匿名函数,内置函数-----练习
1.文件内容如下,标题为:姓名,性别,年纪,薪资 egon male 18 3000 alex male 38 30000 wupeiqi female 28 20000 yuanhao female ...
- python第十二天, 三元表达式, 函数对象,名称空间与作用域,函数的嵌套定义
复习 1. 字符串的比较: 2. 函数的参数:形参与实参 3. 实参的分类:位置实参与关键字实参 4. 形参分类: 1.无值位置形参 2.有值位置形参 3.可变长位置形参 4.有无值关键字形参 5.可 ...
- python学习10—迭代器、三元表达式与生成器
python学习10—迭代器.三元表达式与生成器 1. 迭代器协议 定义:对象必须提供一个next方法,执行该方法或者返回迭代中的下一项,或者返回一个StopIteration异常,以终止迭代(只能往 ...
- python全栈开发-Day12 三元表达式、函数递归、匿名函数、内置函数
一. 三元表达式 一 .三元表达式 仅应用于: 1.条件成立返回,一个值 2.条件不成立返回 ,一个值 def max2(x,y): #普通函数定义 if x > y: return x els ...
- python12--字符串的比较 函数的默认值的细节 三元表达式 函数对象 名称空间 作用域 列表与字典的推导式 四则运算 函数的嵌套
复习 1.字符串的比较; 2.函数的参数; ******实参与形参的分类: 3.函数的嵌套调用: # 字符串的比较# -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 ...
- xpinyin-函数返回多个值-lambda匿名函数-列表生成式-三元表达式
import xpinyinp=xpinyin.Pinyin() #实例化print(p.get_pinyin('小白','')) 函数返回多个值:1.函数如果返回多个值的话,它会把这几个值放到一个元 ...
- Python 迭代器-生成器-面向过程编程
上节课复习:1. 函数的递归调用 在调用一个函数的过程中又直接或者间接地调用了函数本身称之为函数的递归 函数的递归调用有两个明确的阶段: 1. 回溯 一层一层地调用本身 注意: 1.每一次调用问题的规 ...
- Python 面向对象和面向过程对比
# 大象装冰箱 # 脚本, 此时代码是最简单的. 不需要构思整个程序的概况 print("开门") print("装大象") print("关门&qu ...
随机推荐
- 微信小程序上传项目到github
Step1:点击使用版本控制 点击开发工具右上角的版本控制按钮 Step2:点击初始化本地仓库: 等待初始化结束 Step3:在github新建仓库 Step4: 配置git用户密码或ssh: Ste ...
- 【转】ios内联函数 inline
ios内联函数 inline 缘由 由于在学习使用UIScrollVew开发的过程中,碰到下面这个属性(设置内边距): @property(nonatomic) UIEdgeInsets scroll ...
- 在VS2015中的SDL2.0开发环境搭建
写本文的目的在于使用网络上的教程及官方的教程(如:http://www.willusher.io/sdl2%20tutorials/2013/08/15/lesson-0-visual-studio) ...
- Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals)
题目链接:http://codeforces.com/contest/828 A. Restaurant Tables time limit per test 1 second memory limi ...
- html-webpack-plugin 中使用 title选项设置模版中的值无效
原文地址:https://segmentfault.com/q/1010000004555431 webpack.config.js配置: var webpack = require("we ...
- Contiki 2.7 Makefile 文件(一)
一.主控Makefile 这里以hello-world例子为主线,从其工程Makefile开始,解析整个build过程.
- (1)WEB框架概念和struts2体验
Struts快速入门 day31 1.相关jar包 Struts2-core-lib(Struts2 的核心jar包) 代理的两种方式 JDK(简单,不稳定)和第三方 javaassist包——动态代 ...
- iOS开发 - 如何跳到系统设置里的各种设置界面
在iOS开发中,有时会有跳转系统设置界面的需求,例如提示用户打开蓝牙或者WIFI,提醒用户打开推送或者位置权限等.在iOS6之后,第三方应用需要跳转系统设置界面,需要在URL type中添加一个pre ...
- POJ 3744 Scout YYF I:概率dp
题目链接:http://poj.org/problem?id=3744 题意: 有n个地雷,位置为pos[i]. 在每个位置,你向前走一步的概率为p,向前走两步的概率为1-p. 你的初始位置为1. 问 ...
- highcharts 图例全选按钮方法
$('#uncheckAll').click(function(){ var chart = $('#container').highcharts(); var series = chart.seri ...