python教程(三)·函数与模块
函数,这和数学中的函数有点关联,但又不是完全等价
概念
不说的这么官方,我就已自己的理解来表达 ^_^
在数学中,把一个或多个值(输入x)进行一定的计算或者映射,得到一个值(输出y),这个计算或者映射的过程就叫做函数,可以表达成:y=f(x)
,其中f就是一个函数。
计算机中的函数和数学中的函数是很像的,把一定的输入(x),传递到一个函数中,进行某些操作,最后也可返回结果(y)。这里说的是“也”,意味着,在计算机中,函数是可以没有输出(y)的。
我们把函数的输入称为 “参数”,函数输出称为 “返回值”
我们可以把一段重复使用的代码定义成函数,要用的时候只需要调用即可,不需要每次都写那么大段的代码,这是一种“懒惰的智慧”。
函数的使用
在python中,有很多内置的函数,我们常用的print就是一个函数,在使用时,括号里的就是我们的参数,而这个函数是没有返回值的。
对了 ╰( ̄▽ ̄)╭
,其实在python中没有返回值的函数,都隐式地返回了一个None
空值,这打脸真快 (°ー°〃)
在这里以print函数为例,讲解函数的使用。
我们可以这样调用print函数,而不用自己编写print函数内部的大量代码:
# 传递一个字符串'hello world'作为参数给print函数
print('hello world!')
# 传递多个参数,默认以空格分开输出每个参数,其它类型的值自动转换成字符串类型
print('1', 2, '3')
在调用函数的时候,只需写出函数名,并跟一对括号,括号里的填写函数所需的参数即可。
现在再来看另一个例子,前面曾介绍过使用幂运算符**
来计算乘方,现在我们可以用pow函数来替代这个运算符,下面是计算23:
>>> 2**3
8
>>> pow(2,3)
8
>>>
显然,第一个参数是底数,第二个参数是幂,函数返回值为计算的结果8,这个pow函数就很符合数学中的函数的特征了,有输入(参数),有输出(返回值),我们还可以结合函数调用和运算符做更复杂的语句,像下面这样,不用**
运算符计算 1 + 210:
>>> 1 + pow(2,10)
1025
>>>
获取用户输入
到目前为止,我们还没学过怎么获取用户的输入,早就该提了,可是博主认为还是应该理解函数之后再接触较好,所以只能拖到现在了,真是不好意思
好了,废话不多说,现在来介绍主角:input函数,上代码!
print("下面计算a+b")
a = int(input("请输入a:"))
b = int(input("请输入b:"))
print("a + b = ", a+b)
由于需要交互,用文字不好表达,现在放上一张动图自己感受感受!
input函数接受一个字符串参数,并输出这个参数,等待用户的输入,按下回车后,输入的这一行字符串作为返回值返回出去。
上面的input函数调用是放在int()
中的,意味着我们用int()
将字符串转换成整数类型,这样才可以进行整数运算,如果我们输入的字符串不是数字,那么转换就会失败,强烈建议读者亲自尝试一下!
其它有用的函数,这里直接给出例子,具体看注释:
>>> abs(-10) # 取绝对值
10
>>> round(1.5) # 四舍五入
2
>>> sum([1,2,3,4,5]) # 将一个列表或者类似的数据类型中的所有元素加起来
15
>>>
round函数用于四舍五入,有时候我们需要把数值向下取整,我们可以利用int()
转换成整数时截断小数来实现,也可以使用一个叫floor的函数实现,这个函数不能直接使用,它存在于一个模块中。
模块
我们可以把功能类似的函数,比如用于数学运算的函数,放到一个模块中统一管理,python有很多优秀的内置模块,其中还真有一个数学相关的模块,称为math。
我们可以使用关键字import导入模块,像下面这样使用前面提到的floor函数对数值向下取整:
>>> import math # 导入模块
>>> math.floor(1.9) # 使用math模块中的floor函数
1
>>>
如果不想每次调用函数都在前加上模块名字的话,可以使用以下的形式:
>>> from math import ceil
>>> ceil(12.1) # 向上取整
13
>>>
像上面那样,使用 from 模块 import 函数1,函数2,函数3
这种形式的import语句,可以直接使用函数的名字进行调用,但是要确保不要存在同名的函数,如果存在同名的函数,使用的是后导入的函数。
还有一种形式的import语句,添加as
关键字可以为函数或者模块设置别名,比如:
# 把floor导入使用fl作为别名,把ceil导入并使用ce作为别名
from math import floor as fl,ceil as ce
print('fl(12.9) is', fl(12.9)) # 向下取整
print('ce(14.1) is', ce(14.1)) # 向上取整
# 导入math模块,使用别名m
import math as m
print('m.floor(12.9) is', m.floor(12.9))
print('m.ceil(14.1) is', m.ceil(14.1))
print('m.sqrt(4) is', m.sqrt(4)) # 计算4的平方根
小提示:其实,我们还可以把函数赋值给一个变量,使用变量来调用函数,比如func=math.floor
,然后就可以使用func(12.9)
来调用floor函数对12.9向下取整了
总结
这一节我们学习了函数和模块的概念,并使用input函数获取输入,增加程序的交互,下一节将介绍如何自己创建函数,并在结束函数的学习后,做一个像样的小例子,敬请期待 ヾ( ̄▽ ̄)Bye~Bye~
python教程(三)·函数与模块的更多相关文章
- 简明python教程三-----函数
函数通过def关键字定义.def关键字后跟一个函数的表标识符名称,然后跟一对圆括号. 圆括号之中可以包括一些变量名,该行以冒号结尾.接下来是一块语句,它们是函数体. def sayHello(): p ...
- Python:笔记(2)——函数与模块
Python:笔记(2)——函数与模块 Python函数 关于函数 1.我们可以使用Help来查看函数的帮助信息 2.调用函数的时候,如果传入的参数数量或者类型不符合均会报错. 3.函数名其实就是一个 ...
- Python进阶(三)----函数名,作用域,名称空间,f-string,可迭代对象,迭代器
Python进阶(三)----函数名,作用域,名称空间,f-string,可迭代对象,迭代器 一丶关键字:global,nonlocal global 声明全局变量: 1. 可以在局部作用域声明一 ...
- Python基础三. 函数、lambda、filter、map、reduce
一.概述 函数, 就是用一些语句组织起来实现一组特定的功能, 用来重复调用. 函数的作用及意义:最大化的重用代码和最小化的代码冗余以及对流程的分解. Python中有哪些函数: 内建的函数 第三方模块 ...
- Python基础之函数和模块
函数的基本使用 函数的定义:把具有独立功能的代码块组织成一个小模块,在需要的时候调用.或者说,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数的使用:1.定义函数:2.调用函数 ...
- Python 利用三个简易模块熟悉前后端交互流程
准备工作 在学习Django之前,先动手撸一个简单的WEB框架来熟悉一下前后端交互的整体流程 本次用到的模块: 1.wsgiref,这是一个Python自带的模块,用于构建路由与视图 2.pymysq ...
- python内置函数 和模块函数总结
1.内置函数(无需导入)long() 函数将数字或字符串转换为一个长整型.len() 统计元素个数print() 打印,输出input() 输入,或阻塞程序运行type 获取类型range 产生连续的 ...
- python第三十七课——模块
3.模块(m) 概念:在python中.py结尾的文件,我们就称为模块,可以将类.函数.属性...等内容定义在模块中 分类: 1).标准库模块:安装完python环境就有的模块,这些模块都是最常用的模 ...
- 通过cmd命令查看Python库、函数和模块的帮助文档与介绍
dir函数式可以查看对象的属性 使用方法很简单,举os类型为例,在Python命令窗口输入 dir(‘os’) 即可查看os模块的属性 打开cmd命令窗口 输入python(注意:计算机需要有Pyth ...
- 写给.NET开发者的Python教程(三):运算符、条件判断和循环语句
本节会介绍Python中运算符的用法,以及条件判断和循环语句的使用方法. 运算符 运算符包括算术运算符.赋值运算符.比较运算符.逻辑运算符等内容,大部分用法和C#基本一致,下面我们来看一下: 算数运算 ...
随机推荐
- MySQL案例02:ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
MySQL在授权用户时出现报错信息,具体信息如下: 一.错误信息 执行命令: GRANT SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SH ...
- windows server 2003安装Oracle webtier 32位因环境变量原因报错
在服务中启动Oracle processer manager时报错:错误1053:服务没有及时响应启动或控制请求 原因是本系统还安装过BI和Oracle数据库等产品 解决方法:删除和本次安装无关的环境 ...
- U-Mail邮件群发如何过滤无效地址?
U-Mail邮件群发平台可以自动过滤掉无效和重复地址,过滤效果如下图 U-Mail邮件群发平台会将客户已经确认好是无效地址的加入无效地址库,下次再导入改无效地址就直接拒绝.邮件格式不正确的也会直接过滤 ...
- 1100 final standings
http://acm.timus.ru/problem.aspx?space=1&num=1100 link to the problem make a fast stable sorting ...
- vbox安装 ubuntu server 后 安装增强包
用vbox安装虚拟机系统如果不装增强包, 有很多东西就有点不好用-用vbox安装ubuntu server时,点击菜单中的安装增强功能.因为ubuntu server版本没有ui,所以不能很方便滴找到 ...
- c++由string组成的struct初始化崩溃
struct _UserInfo { string username; string password; string ip; string port; } _UserInfo str={}; 这样就 ...
- IBM websphere MQ远程队列的简单配置
原理: 1.远程队列分发送方和接收方 2.接收方配置: 接收方配置要先拿到对方的发送通道配置,接收方的队列名称必须和远程发送方的队列名称一致,告诉远程发送方,你的地址,队列管理器名称等信息,在通道中建 ...
- 用画小狗的方法来解释Java中的值传递
在开始看我画小狗之前,咱们先来看道很简单的题目: 下面程序的输出是什么? Dog myDog = new Dog("旺财"); changeName(myDog); System. ...
- [19/03/25-星期一] 容器_Collection(集合、容器)之Set(集合、安置,无顺序不可重复)
一.概念&方法 Set接口继承自Collection,Set接口中没有新增方法,方法和Collection保持完全一致.. Set容器特点:无序.不可重复.无序指Set中的元素没有索引,只能遍 ...
- Linux入门基础介绍
概述: 1. linux是一个开源.免费的操作系统,其稳定性.安全性.处理多并发已经得到业界的认可,目前很多企业级的项目 都会部署到Linux/unix系统上. 2. 常见的操作系统(w ...