函数

函数是指用于进行某种计算的一系列语句的有名称的组合。

type(32) 就是一个函数调用的例子

类型转换函数

python提供了一些可将某个值从一种类型转换为另外一个类型的内置函数

int(32) 将浮点转换成整数类型

float(32) 将整数转换成浮点类型

str(32) 将参数转换为字符

数学函数

python有一个数学模块 提供了常用的数学函数

要想使用math 必须先引入运行环境。

import math  #引入math模块

math模块的具体函数 可以查看文档。

定义新函数

到现在为止,我们了解了变量/表达式/语句,还没有将他们合理的组合起来。

def 表示接下来定义一个函数

def print_text():
print "some text" #接下来执行这个函数
print_text()

执行流程

为了保证函数的定义先于其首次调用执行,你需要知道程序中语句的执行顺序,即执行流程

程序总是从程序的第一行开始,按顺序,每次执行一条语句。

函数定义并不会改变程序的执行流程,函数语句并不会立即执行,需要等待调用。

函数调用的时候并不会直接执行 下一句,而是调到函数体内部 依次执行语句。

形参和实参

type()这个函数就需要传入参数,才能给出类型判断。

函数内部,实参会被赋值给形参。

在函数内部,变量跟形参是局部的,只存在于这个函数内部。

有返回值和无返回值

result = math.sqrt(5) #有返回值的函数 

#我们定义了一个无返回值的函数
def print_cat():
print "cat"

为什么要有函数

  • 新建一个函数,可以让你有机会给一组语句明明,可以让代码更易读和更易调试
  • 函数可以通过减少重复代码是程序更短小。 可复用。
  • 将一长断程序拆分成几个函数以后,可以对每一个函数单独进行调试。再讲他们封装起来成为完整的产品

导入模块

impot math 该方式我们已经使用过。

from math import pi 从math里面导入 pi模块。

术语表(新手建议阅读并尝试理解)

  • 函数(function): 一个有名称的语句序列,可以进行某种有用的操作。函数可以接收或者不接受参数。
  • 函数定义(function definition):一个用来创建新的函数的语句,指定函数名称参数以及它的执行序列。
  • 函数对象(function object): 函数定义所创建的值。函数名可以用作变量来引用一个函数对象。
  • 函数头(header):函数定义的第一行
  • 函数体(body):函数定义内的语句序列
  • 形参(parameter):函数内使用的用来引用作为实参传入的值的名称。
  • 函数调用(function call):执行一个函数的语句。它由函数名称和参数列表组成。
  • 实参(argument):当函数调用时,提供给他的值。这个值会被赋值给对应的形参。
  • 局部变量(local variable):函数内部定义的变量。局部变量只能在函数体内使用。
  • 返回值(return value):函数的结果。如果函数被当做表达式调用,返回值就是表达式的值
  • 有返回值函数(fruitful function):返回一个值的函数
  • 无返回值函数(void function): 没有返回值的函数
  • 模块(module):一个包含相关函数以及其他定义的集合的文件
  • import语句(import statement):读入一个模块文件,并创建一个模块对象的语句。
  • 模块对象(module object):使用import语句时创建的对象,提供对模块定义的值的访问。
  • 句点表示法(dot notation):调用另一个模块中的函数的语法,使用模块名加上一个句点符号,再加上函数名。
  • 组合(composition):使用一个表达式作为更大的表达式的一部分,使用语句作为更大的语句的一部分
  • 执行流程(flow of execution):程序运行中语句执行的顺序

《think in python》学习-3的更多相关文章

  1. 学习C++ Primer 的个人理解(一)

    <C++ Primer>这本书可以说是公认的学习C++最好的书,但我觉得不是特别适合作为教材,书中内容的顺序让人有些蛋疼.我个人认为初学此书是不能跳着看的.如果急于上手的话,我更推荐< ...

  2. 学习C++ Primer 的个人理解(九)

    这一章介绍顺序容器,在之前的第三章中,了解到的vector就属于顺序容器的一种. 一个容器就是一些特定类型对象的集合. 除了vector,还有哪些顺序容器? vector: 大小可变,随机访问的速度很 ...

  3. 学习C++ Primer 的个人理解(三)

    第三章,主要内容是字符串和数组.感觉作者的意图是希望读者可以早一点可以写出简单的小程序,并且可以早点接触迭代器这种思想. 在我看来,这种内容的难度并不大. 对于编程来说,最重要的应该是思想,类似vec ...

  4. 学习C++ Primer 的个人理解(二)

    本身就一定基础的读者我想变量常量这些概念应该已经不是问题了.但是本章还是有几个重点,需要特别留意一下的: 1.初始化和赋值是不同的操作 2.任何非0值都是true 3.使用新标准列表初始化,在有丢失精 ...

  5. 学习C++.Primer.Plus 11 使用类

    1.操作符重载 重载操作符的几个限制: a)         重载的至少有一个操作数是用户定义的类型,这将防止用户为标准类型重载操作符. b)         不能违反操作符原有来的句法规则. c)  ...

  6. 学习C++.Primer.Plus 10 对象和类

    1.类的声明和定义 类的声明和定义. 类声明的格式如下: class className { private://private 是类对象的默认访问控制,因此,可以省略 data member del ...

  7. 学习C++.Primer.Plus 8 函数探幽

    1. 内联函数 普通函数调用: 存储调用指令的地址->将函数参数复制到堆栈->跳到函数地址执行代码(返回值放到寄存器)->跳回调用指令处 2.  当代码执行时间很短,且会被大量调用的 ...

  8. 学习C++.Primer.Plus 7 函数

    C++的返回值类型不能是数组 函数原型中的变量名相当于点位符,因此不要求提供变量名. void cheers(int); C++中不指定参数列表时就使用活力号: void saybye(...); 通 ...

  9. 学习C++.Primer.Plus 6 分支语句和逻辑操作符

    ||. &&操作符是一个顺序点 < 操作符从左向右结合 ; < age < )//17<age为true, = 1,肯定 < 27.所以为整个条件为tru ...

  10. 学习C++.Primer.Plus 5 循环和关系表达式

    C++将赋值表达式的值定义为左侧成员的值 赋值操作符是自右向左结合的 cout.setf(ios:: boolalpha);//调用设置标记,命令cout输出true或false,而非1或0. 任何表 ...

随机推荐

  1. Eclipse被汉化后恢复EN模式

    问题描述: 在安装Flush builder 的时候安装了汉化包,导致Eclipse中功能显示为汉字. 问题解决: 在Eclipse快捷方式下“目标”路径中添加-nl "EN"即可 ...

  2. PIE(二分) 分类: 二分查找 2015-06-07 15:46 9人阅读 评论(0) 收藏

    Pie Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissio ...

  3. iOS伪实现打地鼠游戏

    打地鼠是一款可以用iOS知识来实现的一种游戏.其核心技术就是通过imageView来播放动画,点击button时来停止当前播放的动画开始击打地鼠的动画.话不多说直接上代码. 这是添加当前的背景图片,然 ...

  4. H面试程序(11): 判断字符串是否包含子串问题

    题目描述:                        如字符串str1为''abcdef'''                       字符串str2为'' bc''; 则字符串str1中含有 ...

  5. 移动web开发前准备知识了解(html5、jquery)笔记

    1.经常使用 插件工具  chrome插件:   Mobile & Tablet Emulator(用于常见移动端适配):(重点) Mobile Emulator is an useful o ...

  6. openfire研究之部署连接管理器(connection manager)

    http://blog.sina.com.cn/s/blog_7325f5150101bafh.html 一. Openfire Connection Manager 简介 Openfire Conn ...

  7. 详解Linq to SQL

    第一部分,什么是Linq to sql Linq to sql(或者叫DLINQ)是LINQ(.NET语言集成查询)的一部分,全称基于关系数据的 .NET 语言集成查询,用于以对象形式管理关系数据,并 ...

  8. Oracle入门学习笔记

    参考文献 中文教程     http://wenku.baidu.com/view/b425f404e87101f69e319566.html 经典教程     http://wenku.baidu. ...

  9. C# for循环 迭代法 穷举法应用

    迭代 //兔子生兔子 class Class5    { static void Main(string[] args) { int tu1 = 1, tu2 = 1; //tu1是倒数第一个月的兔子 ...

  10. Metafunction

    Metafunction is a more general idiom than type generator. Metafunctions that produce type(s) as a re ...