穷举法、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]. 即计算大斐波那契数再取模. 一开始看到大斐波那契数,就想到了矩阵 ...
随机推荐
- 删除TFS中的项目
打开“Team Foundation Server 管理控制台”,选择应用层->团队项目集合->团队项目->点击项目集合名称,最后点击右侧出现的删除按钮
- 运维基础——Zabbix 设置Redis监控
https://blog.csdn.net/xundh/article/details/77604357
- 洛谷---小L和小K的NOIP考后放松赛
链接: https://www.luogu.org/contestnew/show/11805?tdsourcetag=s_pcqq_aiomsg 题解: 没人过的题我就没看 t2: 考虑每个点是朋友 ...
- Spring Boot配置文件放在jar外部
Spring Boot程序默认从application.properties或者application.yaml读取配置,如何将配置信息外置,方便配置呢? 查询官网,可以得到下面的几种方案: 通过命令 ...
- 【Android】性能优化的一些方法
1.采用硬件加速,在androidmanifest.xml中application添加 android:hardwareAccelerated="true".不过这个需要在and ...
- BZOJ4556 [Tjoi2016&Heoi2016]字符串 SA ST表 二分答案 主席树
原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ4556.html 题目传送门 - BZOJ4556 题意 给定一个长度为 $n$ 的字符串 $s$ . ...
- TreeSet集合的自然排序与比较器排序、Comparable接口的compareTo()方法
[自然排序] package com.hxl; public class Student implements Comparable<Student> { private String n ...
- sql union 列的字段不一样的时候
- 将linux系统目录挂载到其他分区,扩大系统可用空间
刚看到有小白用户说linux系统盘分区太小,不够用,问是不是要重装系统? 其实是不需要重装系统的,可以考虑把一些系统目录挂载到单独的分区. 比如将用户目录 /home 挂载到单独的分区: 1.首先打开 ...
- Dicom文件转mhd,raw文件格式
最近在整理与回顾刚加入实验室所学的相关知识,那会主要是对DICOM这个医疗图像进行相应的研究,之前有一篇博客已经讲述了一些有关DICOM的基本知识,今天这篇博客就让我们了解一下如何将Dicom文件转为 ...