萌妹子Python入门指北(五)

简介: def isprime(n): //isprime是函数名,n是需要判断的数 for i in range(2, n): if n%i == 0: //这里如果被i整除了看到不是素数了,素数的定义就是因子只有1和它本身 return False return True

这次我们来谈谈python中的函数,首先说一点,这里的函数和数学中的函数完全没有任何关系。在数学中,函数可能代表这一个数学公式,哎呀! 想想就头疼,但在程序猿的世界,函数就是实现某个功能的一段代码,比起for循环、if判断来说好理解多了。

 为啥在编程语言中要有函数这个东西,其实还是为了代码能够复用,加快你写代码的速度,降低你代码的复杂度。为了让你能更深刻的理解函数带来的好处,本文会全程贯穿上篇文章输出乘法口诀表的例子,也算是对上文的一次复习。

Round 1:输出一个乘法口诀表

for i in range(1,10):
    for j in range(1, i+1):
        print ("%d*%d=%d"%(j,i,i*j)),  
    print ""


简直完美

Round 2:输出两个乘法口诀表,简单 上面代码复制一遍就好了,我知道你肯定会怎么做。 所以我让你输出10000个乘法口诀表,难道你要复制上面这段代码10000遍吗? 其实在外层再加一个循环就好。


for x in range(1,10001):
    for i in range(1,10):
        for j in range(1, i+1):
            print ("%d*%d=%d"%(j,i,i*j)),  
        print ""


不过这里依旧没有用的函数。

Round 3:我这次不要1-9乘法口诀表,我1-5,4-9,1-8,1-7,2-6,3-7,5-7……各要一个,哈哈,崩溃了吧!!

 这次我们没法做循环,看似每次只能把最上面的代码复制一个,改巴改巴来输出x-y的乘法表,所以可能会导致代码非常长。 如果我们有一段代码专门来做这事,而且还有一个很简单的名字就好了,这就引出了函数。   


def fun(s, e):
    for i in range(s,e+1):
        for j in range(s, i+1):
            print ("%d*%d=%d"%(j,i,i*j)),  
        print ""


 这样我们就有个了一个叫fun的东西,专门来做输出从s到e的乘法表。比如我要输出从2到9的乘法表,我现在可以直接这么写了。


fun(2,9)

 原来的五行代码变成一行,而且还可以复用,我这里这个例子很简单,其实函数里的代码可以做更复杂的事。上文说了一个函数的例子,我们来说下函数的格式。

 def 这个是必须要写的,后面fun是函数名字,这个可以随便起,只要不和已有函数名和变量名冲突就行。 函数名后的()的必须的,但里面内容可有可无,也不仅限2个,多个也可以。这里面的内容可以在函数里用到。 然后就是和if while一样的格式要求,末尾必须加冒号 下一行开始必须缩进4个空格,这是python的语法要求,必须遵守,负责代码执行会出错。 下面我写一个函数的例子,改函数功能是判断一个数是否是素数(同质数)。


def isprime(n): //isprime是函数名,n是需要判断的数
    for i in range(2, n):
        if n%i == 0:      //这里如果被i整除了看到不是素数了,素数的定义就是因子只有1和它本身
            return False
    return True
目录
相关文章
|
1月前
|
Java Python 开发者
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
线程池详解与异步任务编排使用案例-xian-cheng-chi-xiang-jie-yu-yi-bu-ren-wu-bian-pai-shi-yong-an-li
78 2
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
|
1月前
|
存储 安全 API
【Python 基础教程 21】Python3 文件操作全面指南:从入门到精通的综合教程
【Python 基础教程 21】Python3 文件操作全面指南:从入门到精通的综合教程
82 0
|
4天前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
|
4天前
|
存储 索引 Python
Python从入门到精通——1.3.1练习编写简单程序
Python从入门到精通——1.3.1练习编写简单程序
|
4天前
|
开发框架 前端开发 数据库
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
|
4天前
|
数据采集 数据可视化 数据处理
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
|
4天前
|
Java 数据库连接 数据处理
Python从入门到精通:3.1.2多线程与多进程编程
Python从入门到精通:3.1.2多线程与多进程编程
|
4天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
10天前
|
机器学习/深度学习 数据可视化 数据挖掘
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
《Python 简易速速上手小册》第9章:数据科学和机器学习入门(2024 最新版)
19 1
|
10天前
|
人工智能 数据挖掘 程序员
《Python 简易速速上手小册》第1章:Python 编程入门(2024 最新版)
《Python 简易速速上手小册》第1章:Python 编程入门(2024 最新版)
35 0