python怎么求列表的乘积
python如何定义函数?
python如何定义函数?
一、定义一个最简单的函数
函数定义用def,必须要有函数名和函数体。下图中,函数名是sayHello,函数体是print语句。函数不被调用是不会执行的,调用时用函数名 括号的格式,即sayHello()
二、函数的参数
1、位置参数
位置参数,是必填的,调用函数时不传会报错。
我们写一个简单的函数,实现计算乘法的功能。下图中的a和b就是位置参数。
a,b叫做形参,也就是形式参数。调用函数calc时,传的7和8叫实参,也就是实际参数。
我们可以看到传参数时,7传给了a,8传给了b。也就是说传参顺序不能错。那么,当参数很多的时候,很难准确的记住各参数位置,就很容易出现错误,可以用 形参名实参 的方式传参。
例,操作数据库的函数。传参没有按顺序,采用了port 3306这种方式,很适合多参数的函数。
def op_mysql(host,port,username,password,db,sql): print(连接数据库:%s,host:%s,端口为:%s%(db,host,port)) print(%s where username%s and pwd %s%(sql,username,password)) op_mysql(sqlselect * from user, host192.158.11.1, usernamesdfdsfs, passwordsdf123, dbtest_data, port3306 )运行结果为:
2、默认值参数
默认值参数是非必填的,如果不填,会采用默认值。
例:写一个函数,实现文件读写的功能。
# 操作文件的函数,如果传内容参数,则将对应内容写入文件。没有传内容,就读取文件原来的内容。def op_file(file_name,contentNone): f open(file_name, a , encodingutf-8) (0) if content:#不为空代表写 f.write(content) f.flush() else: res () return res ()# 不传content,读文件stu_info op_file(username)print(stu_info)# 传content,将content写入文件infos xiaohei,123456,beijing,188888888888op_file(new_info,infos)这里介绍一下return,return有两个作用:(1)调用完函数后,将结果返回;(2)函数里面遇到return就立即结束。
另外,如果只写一个return,后面什么也不加,就返回None;如果不写return,也默认返回None。
小练习:写一个判断是否为小数的函数。
分析:(1)判断小数点个数;(2)如果是正小数,小数点左边和右边都是纯数字;(3)负小数,左边以‘-’开头,其他部分是数字,右边是数字。
def is_float(s): s str(s) if (.) 1: left s.split(.)[0]#小数左边 right s.split(.)[1]#小数右边 if () and (): return True# 正小数 elif (-) and (-) 1 and left.split(-)[1].isdigit() and (): return True# 负小数 else: return False else: return False num input(请输入:) res is_float(num)print(res)3、参数组
参数组的参数处用“*args”表示。参数组特点:(1)参数是非必填的;(2)没有限制参数的个数;(3)传过来的参数放到args参数里,不限格式
如果定义函数时,写成 def aaa(a,*args),则a是必传参数,*args是非必填的
4、关键字参数
关键字参数用“**kwargs”表示。特点:(1)参数是非必填;(2)没有限制参数个数;(3)所传参数必须是字典格式。
同样的,如果def aaa(time,**kwargs),则time参数必传。其中,time20180912是第一个参数time的值,因此输出kwargs时,没有time这一项。
三、局部变量和全局变量
1、局部变量
函数里面定义的变量都是局部变量,只能在函数里面用,出了函数就不能用了。
例如,第二节的小练习里,判断是否是小数的函数,left和right就是局部变量。
2、全局变量
全局变量是公共的变量,都可以用的变量。一般不推荐用全局变量,因为全局变量有以下2个缺点:(1)不安全,因为所有人都可以改;(2)会一直占着内存。
修改全局变量,需要先声明,用global声明。
下图中,name是一个全局变量,修改之前需要先声明:global name
四、内置函数
内置函数就是python里自带的一些函数,有很多,比如:
五、递归
递归就是函数自己调用自己。
建议少用递归,因为递归效率不高,而且最多递归999次。由下面的函数能够很直观的看出递归次数上限。
六、函数的返回值
前面已经简单介绍过return,return有两个作用:(1)调用完函数后,将结果返回;(2)函数里面遇到return就立即结束。
有的函数不只有一个返回值,函数如果返回多个值的话,会把这几个值放到一个元组里。另外,也可以用多个值来接收。
例:
七、匿名函数
匿名函数的功能很简单,只用一次。下面就定义了一个匿名函数。
用lambda定义匿名函数,冒号前面是返回值,后面是函数体,也就是函数的处理逻辑。
即入参是x,然后执行x 1,把x的值返回。
---------------河南新华
怎样学好python?
Python语言这几年大火,在世界编程语言排行中Python也位居第四名,相比2017上升了一位,上面只有Java/C/C ,可以说python凭借自身的简单便捷、面向对象的优势力压了php和js这些同样大热的语言。
而学习Python有很多好处,无论是大数据、人工智能、、爬虫、安全渗透工具都离不开Pyhton的使用,下面就推荐一下Pyhton的学习方式,帮助更多有兴趣的朋友更好的入门。
01 思想大于代码从思想层面要知道,编程最终最重要的是编程思维,不是代码命令。就是拿到一个项目要怎么做,逻辑怎么设计,这是需要人脑来想象的,其他代码层面忘了可以查文档,初期的练习中一定要结合大量的实践训练,理论初期会比较抽象,没有实操很难掌握,个人建议看下基础知识后直接寻找小项目进行编程练习,碰到难点在去查资料。
基础知识就是先大概了解下Pyhton的核心知识,比如:数据类型(数字,字符串,列表,元组,字典,集合),条件循环,文件对象,错误异常,函数,模块,面向对象编程,这些基本概念,不需要全记住,先过一遍即可,然后进行大量的项目实操。
02 实战大于理论千万不要一个点一个点的死扣,就算看懂了所有知识点,你也不知道如何结合起来,这是编程的大忌,就像学英语一样,你背了5000个单词,自我感觉良好,让你写个文章就不行了,根本不知道如何组合使用才是地道的。
建议从小项目入手,初期可以使用些简单练习题,比如:你有10000元人们币,存储多少年能达到2万元人们币,一个个小的练习题开始稳固自己的知识和代码能力,然后慢慢使用更大的项目,比如用Django搭建个小型的CMS和BLOG,你会慢慢知道整个web的框架,数据库的调用,前端html/css/img/js的简单调用,这对于以后有很大的帮助。
03 学习资料分享当然,说这么多要有足够的学习资料支撑,所以特意分享一些网站给读者参考,内容都算不错的。
知识体系架构的搭建可以看下这个网站,将Python的基础知识做成了14张思维导图,对学习者很有帮助。
r
Python教程——廖雪峰,行业里有点口碑的老师,讲的确实不错,比较细致。
r
runoob是一个常用的网站,里面会有详细代码解释和小练习,做实践稳固基础。
r