穷举法、for循环、函数、作用域、斐波那契数
1.穷举法
枚举所有可能性,直到得到正确的答案或者尝试完所有值。
穷举法经常是解决问题的最实用的方法,它实现起来热别容易,并且易于理解。
2.for循环
for语句一般形式如下:
for variable in sequence:
code block
for后面的变量被绑定到序列中的第一个值,并执行下面的代码块,然后变量被赋值给序列中的第二个值,在此执行代码块。该过程一直继续,知道穷尽这个序列或者执行到代码中的break语句。
绑定变量的值通常由内置函数range生成,他会返回一系列整数。
range接受三个整数参数:START、stop、step。
3.函数
在Python中,函数定义如下
def name of function(list of formal parameters):
body of function
def是个保留字,告诉Python要定义一个函数;
函数名后边中的一系列名称是函数的形式参数,使用函数时,形参在函数调用时被绑定到事迹参数;
函数体是任何一段Python代码,但是有个特殊的return语句,只能用在函数体中。
函数调用是个表达式,和所有表达式一样,它也有一个值,这个值就是被调用函数返回的值
关键字参数和默认值
在Python中,两种方法可以将形参绑定到实参
1、位置参数:实参按照形参的位置传值
2、关键字参数:可以在实参列表中以任意顺序出现
注意:关键字参数放在非关键字参数后边是不合法的
4.作用域
实参和形参名称可以一样,但他们并不是同一个变量,每个函数都定义了一个命名空间,也称为作用域,形参作用域只在函数体内。
1>在最顶层,比如shell层,有一个符号表会跟踪记录这一层所有的名称定义和他们当前的绑定;
2>调用函数时,会建立一个新的符号表(常称为栈帧)。如果函数内又调用一个函数,就在建立一个栈帧。
3>函数结束时,它的栈帧也随之消失。
全局变量作用在当前文件中。
5.斐波那契数
def fib(n):
if n ==0 or n == 1:
return 1
else:
return fib(n-1) + fib(n-2)
for i in range(10):
print('fib of ',i ,'=',fib(i))
运行结果:
fib of 0 = 1
fib of 1 = 1
fib of 2 = 2
fib of 3 = 3
fib of 4 = 5
fib of 5 = 8
fib of 6 = 13
fib of 7 = 21
fib of 8 = 34
fib of 9 = 55
穷举法、for循环、函数、作用域、斐波那契数的更多相关文章
- 算法笔记_001:斐波那契数的多种解法(Java)
本篇文章解决的问题来源于算法设计与分析课程的课堂作业,主要是运用多种方法来计算斐波那契数.具体问题及解法如下: 一.问题1: 问题描述:利用迭代算法寻找不超过编程环境能够支持的最大整数的斐波那契数是第 ...
- DP:斐波纳契数
题目:输出第 n 个斐波纳契数(Fibonacci) 方法一.简单递归 这个就不说了,小n怡情,大n伤身啊……当n=40的时候,就明显感觉到卡了,不是一般的慢. //输出第n个 Fibonacci 数 ...
- HDU 1021(斐波那契数与因子3 **)
题意是说在给定的一种满足每一项等于前两项之和的数列中,判断第 n 项的数字是否为 3 的倍数. 斐波那契数在到第四十多位的时候就会超出 int 存储范围,但是题目问的是是否为 3 的倍数,也就是模 3 ...
- 力扣题目汇总(重复N次元素,反转字符串,斐波那契数)
重复 N 次的元素 1.题目描述 在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次. 返回重复了 N 次的那个元素. 示例 1: 输入:[1,2,3,3] 输出:3 ...
- golang 斐波那契数
golang 斐波那契数 package main import "fmt" /* 斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci) ...
- LeetCode.509——斐波那契数
问题描述: 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列.该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F(0) = 0, F(1) = 1 F(N) ...
- 数学算法(一):快速求斐波那契数第n项通过黄金分割率公式
有一个固定的数学公式= =,不知道的话显然没法应用 首先黄金分割率接近于这个公式, (以下为黄金分割率与斐波那契的关系,可跳过) 通过斐波那契数列公式 两边同时除以 得: (1) 注意后一项比前一项接 ...
- 用x种方式求第n项斐波那契数,99%的人只会第一种
大家好啊,我们又见面了.听说有人想学数据结构与算法却不知道从何下手?那你就认真看完本篇文章,或许能从中找到方法与技巧. 本期我们就从斐波那契数列的几种解法入手,感受算法的强大与奥妙吧. 原文链 ...
- UVA 11582 Colossal Fibonacci Numbers! 大斐波那契数
大致题意:输入两个非负整数a,b和正整数n.计算f(a^b)%n.其中f[0]=f[1]=1, f[i+2]=f[i+1]+f[i]. 即计算大斐波那契数再取模. 一开始看到大斐波那契数,就想到了矩阵 ...
随机推荐
- 铺放骨牌 uva11270
题解: 插头dp裸题 没什么好说的啊就是n个二进制位表示状态 相比原先就是用2n个二进制位表示状态 蓝书上后面几题插头dp都挺烦的啊... 代码:
- vscode git
Git 全局设置: git config --global user.name "xxxx" git config --global user.email "123456 ...
- dns-prefetch,新打开页面预抓取
dns-prefetch 对性能提升有多大 转载2016-04-07 12:57:41 标签:网站推广dns-prefetch对性能提 dns-prefetch, 是DNS预获取,也是网页前端的优化的 ...
- 事件(Event)(onclick,onchange,onload,onunload,onfocus,onblur,onselect,onmuse)【转载】
ylbtech-Event:事件(Event)对象 事件(Event) HTML 4.0 事件属性 onclick onchange onload onunload onselect onmouse ...
- day31 网络编程,多进程多线程
今天的内容需要好好整理,概念性的东西比较多,都是需要理解的,这些是基层的理解,后期的很多知识都是要建立在今天的概念基础上的,以下两点是核心内容,必须要理解,自己把自己理解的注释加在里面: 进程就是程序 ...
- day20 模块-sys,time,collection
所有常用模块的用法: http://www.cnblogs.com/Eva-J/articles/7228075.html 前情回顾: # 常用模块 # 常用模块 —— 东西多 # 异常处理 # 什 ...
- scrapy之Crawspider 腾讯招聘实战案例
1. 在虚拟机中cd到项目目录,再运行下面代码创建spider文件: scrapy genspider -t crawl test www.baidu.com 2. spider.py代码 impor ...
- Shell学习之环境变量配置文件(三)
Shell学习之环境变量配置文件 目录 环境变量配置文件简介 环境变量配置文件作用 其他配置文件和登录信息 环境变量配置文件简介 环境变量配置文件简介 环境变量配置文件中主要是定义对系统操作环境生效的 ...
- 排列组合 HDU - 1521 -指数型母函数
排列组合 HDU - 1521 一句话区分指数型母函数和母函数就是 母函数是组合数,指数型母函数是排列数 #include<bits/stdc++.h> using namespace s ...
- Beautifulsoup关于find的测试
from bs4 import BeautifulSoup import requests url='https://book.douban.com/subject_search?search_tex ...