python基础知识(三)

(三)函数

1、函数

函数的语法:

 def 函数名():

       函数体

a、函数的关键字是def,函数体就是你希望这个函数帮你实现什么功能,函数名命名需要遵循的原则是以小写字母分开,由数字字母数字下划线组成,但是不能以数字开头,不同的字母之间用下划线隔开;函数内容以冒号起始,并且缩进;

例如:

 def han_shu():

       print("我是一个函数")

函数名后面的括号内放入的参数叫做形参/位置参数,括号内的参数可放可不放,根据实际需要决定;传入的参数还可以给定一个默认值,这样的参数就叫做默认参数,默认参数如果开始定义的时候给定了值的话,那后续调用函数的时候就可以不用传参了。注:如果存在多个参数的话,那么默认参数必须放在位置参数的后面,不然就会报错。

b、调用函数:函数名(),调用的函数括号内放入的参数叫做实参,如果有对应的参数需要传递的话,括号内就要放入对应个数的参数值,否则会报缺少参数的错误提示;

例如:

 def han_shu(name):

     print("函数的名字是{0}".format)

 han_shu("xiaozhu")
han_shu("xiaoxiaozhu")

打印出来的结果是:函数的名字是xiaozhu  函数的名字是xiaoxiaozhu

c、写函数需要遵循的原则

(1)先用代码实现基本功能,可以用一组数据来验证写的代码是否正确;

(2)变成函数,加def;

(3)想办法提升代码的复用性;

d、return函数

任何情况下当你调用这个函数的时候就会给你返回一个值,返回的值不会在控制台输出,但并不是所有的函数都需要用到这个函数,返回的这个值就是return后面的表达式;return后面接的语句都不会执行,因为return在函数里面就相当于一个结束符号,就表示函数到此为止,后面的代码都不会被执行。

例如:写一个函数,检查传入的列表长度,如果大于3,那就只保留前两个长度的内容,并将新内容返回

 def check_list(a):

       if len(a):>3

           new_list=a[0:2]

       return new_list

 L=[1,2,3,4,5]

 new_list=check_list(L)

 print(new_list)

打印出来的结果是[1,2]

2、动态参数/不定长参数 *args argumnets

必须要有*,不会限制输入的参数长度和个数,在函数内部作为元祖来进行传递

例如:

 def add_number(*L):

          sum=0

          for item in L:

               sum+=item

          print("相加的和是",sum)

 add_number(1,2,3,4,5)

打印出来的结果是:15

3、关键字参数 key=value的方式 **kwargs key word arguments

必须要有**,在函数里面体现为字典形式,可以接收任意多个参数,但是必须以key-value的形式

例如:

 def add(**kwargs):

        print(kwargs)

 add(x=1,y=2)

打印出来的结果是:{'x':1,'y':2}

4、变量作用域

全局变量:在整个模块里面都可以调用;如果相当某一个变量作为全局变量来进行使用的话需要用global来对其进行声明;

局部变量:函数的局部变量只能作用于该函数;

区别:作用范围不一样;当局部变量和全局变量同名且同时存在的时候,函数会优先调用局部变量;当局部变量没有的时候函数就会优先调用全局变量;

注:一般情况下最好是用局部变量,不要用全局变量。

5、引入模块

第一步:安装

(1)在线安装

a、打开终端,输入pip install 模块名;

b、使用国内源去进行安装,输入pip install 国内源地址 模块名;

c、打开pycharm——>file——>setting——>project interpreter——>点击+——>输入框输入你需要安装的模块,选中你需要安装的模块名之后点击下方的install package按钮就可以了

(2)离线安装

去python官网或者网上找到离线安装包下载下来,解压,拷贝解压后的文件到python安装路径下,在终端进入到安装包所在的文件路径,在终端输入python setup.py install 就可以了

注:安装之后文件的位置,Lib/lib目录下的是python自带的模块,site package目录下的是你在python安装的模块。

第二步:导入

有两种方法:

import

from...import(推荐使用):至少要具体到模块名

a、自己写的模块导入:一层一层的剥开,除了顶级目录,从平级目录一层一层往下进行导入

b、python自带的或者是后面安装的第三方库的引用:这个要比自己写的模块导入要简单一些

以上两种情况可以自行查资料了解或者直接在pycharm里面试一下,试一下你就知道了~

第三步:防止调用的模块名里面代码重复执行

为了防止调用的模块里面代码重复执行,为此可以在末尾加上一个主程序的执行入口  if __name__='__main__':  ,这样可以保证只有当你在当前模块下面执行的时候才会执行,其他模块调用再执行的时候代码不会再一次执行,可以起到测试的作用。

以上,第三部分到此结束~

Python-接口自动化(三)的更多相关文章

  1. python接口自动化三(登录绕开验证码及发帖)

    前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接). 获取不到也没关系,可以通过添加cookie的方式绕过验证码. 但是这里需要明确 ...

  2. python接口自动化(十)--post请求四种传送正文方式(详解)

    简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...

  3. python接口自动化-Cookie_绕过验证码登录

    前言 有些登录的接口会有验证码,例如:短信验证码,图形验证码等,这种登录的验证码参数可以从后台获取(或者最直接的可查数据库) 获取不到也没关系,可以通过添加Cookie的方式绕过验证码 前面在“pyt ...

  4. python接口自动化-参数化

    原文地址https://www.cnblogs.com/yoyoketang/p/6891710.html python接口自动化 -参数关联(一)https://www.cnblogs.com/11 ...

  5. python接口自动化 -参数关联(一)

    原文地址https://www.cnblogs.com/yoyoketang/p/6886610.html 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址ht ...

  6. python接口自动化6-重定向(Location)

    前言 某屌丝男A鼓起勇气向女神B打电话表白,女神B是个心机婊觉得屌丝男A是好人,不想直接拒绝于是设置呼叫转移给闺蜜C了,最终屌丝男A和女神闺蜜C表白成功了,这种场景其实就是重定向了. 一.重定向 1. ...

  7. python接口自动化5-Json数据处理

    前言 有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过,需要导入json模块处理. 一般常见的接口返回数据也是json格式的,我们在做判断时候,往往只需要提取其中几个关键的 ...

  8. python接口自动化4-绕过验证码登录(cookie)

    前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接). 获取不到也没关系,可以通过添加cookie的方式绕过验证码. 一.抓登录coo ...

  9. python接口自动化3-自动发帖(session)

    前言 上一篇模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等,这时候如何保持会话呢? (敲黑板!!!由于博客园最近登录机制变了,登录全部走cookie登录) 一.sessi ...

  10. python接口自动化1-发送get请求

    前言 requests模块,也就是老污龟,为啥叫它老污龟呢,因为这个官网上的logo就是这只污龟,接下来就是学习它了. 一.环境安装 1.用pip安装requests模块 >>pip in ...

随机推荐

  1. MAC终端神器iterm2——告别黑白

    https://www.cnblogs.com/soyxiaobi/p/9695931.html

  2. 实现点击页面其他地方,隐藏div(原生和VUE)

    1原生方法 // html <div id="box" style="width:110px;height:110px;background-color:red&q ...

  3. C# 利用反射动态给模型Model 赋值

    https://www.cnblogs.com/waitingfor/articles/2220669.html object ff = Activator.CreateInstance(tt, nu ...

  4. Python中不尽如人意的断言Assertion

    Python Assert 为何不尽如人意 Python中的断言用起来非常简单,你可以在assert后面跟上任意判断条件,如果断言失败则会抛出异常. >>> assert 1 + 1 ...

  5. Sitecore8.2 Tracker.Current is not initialized错误

    这是在访问前端的时候出现的错误...Tracker.Current 未初始化..并没更新修改什么,好端端的这样 而Siatecore后台可以正常访问进入 先查看日志--> 由此我判断可能是Mon ...

  6. 9_grep及正则表达式

    文本查找的需要grep,egrep,fgrep grep:Global Research.根据模式,去搜索文本,并将符合模式的文本行显示出来Pattern:文本字符和正则表达式的元字符组合而成匹配条件 ...

  7. Vue-admin工作整理(四):路由组件传参

    路由组件传参:如果在一个页面中,需要根据路由去获得参数,去对页面进行一些逻辑处理,首先可以通过this.$router来获取路由实例的参数,这样页面组件和路由就进行了耦合,为了进行分离,更大程度复用, ...

  8. thinkphp 操作xml格式

    前言:虽然xml的格式看起来跟html差不多,但是最近做项目由于用的是thinkphp5.0的版本,做的过程中还是遇到了一些问题.在这里做一下记录. 首先我们需要定义一个dom对象,我们都知道 php ...

  9. Notepad++的Json格式化插件

    安装  :1.下载插件压缩包并解压出dll:Jsonviewer2.dll(64位)或NPPJSONViewer.dll(32位); 2..拷贝对应dll到Notepad++安装目录下的plugins ...

  10. radio(单选框)反复选中与取消选中

    做个记录,以便需要拿取 <script type="text/javascript"> $(function(){ 第一种 $('input:radio').click ...