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. ldap集成bitbucket

    confluence ldap配置跟jira ldap集成一样,请参考:https://www.cnblogs.com/imcati/p/9378668.html 需在 Global permissi ...

  2. 基于OpenCV做“三维重建”(1)--找到并绘制棋盘

    <OpenCV计算机视觉编程攻略(第3版)>这套书已经出到第3版了,如果你非要我说这本书有多好,我说不出来:只是很多我第一手的例子都是来源于这本书的-相比较OpenCV官方提供的代码,这本 ...

  3. 完整的多文件上传实例(java版)

    昨天刚刚做了一个文件列表上传,后端很简单,用 MultipartFile[] files 获取文件流数组,后端就当IO流操作就可以,似乎好像没啥好写的,但是!!!!!前端是真的糙单.要是自己写一个前端 ...

  4. 浅谈php

    strlen() 常用于循环和其他函数,在确定字符串何时结束很重要时.(例如,在循环中,我们也许需要在字符串的最后一个字符之后停止循环). strpos() 函数用于检索字符串内指定的字符或文本. 如 ...

  5. 如何在cisco官网上下载Cisco packet tracer模拟器

    这个是“思科网络技术学院”提供的一个软件,需要注册成为学员以后才能用,注册名字可以更改. 进入网站后,上面七个选项,cisco Networking Academy.课程(下边第七个选项“Packet ...

  6. unittest用例执行的顺序

    unittest在执行用例(test_xxx)时,并不是按从上到下的顺序执行,有特定的顺序. 示例: import unittest class TestBdd(unittest.TestCase): ...

  7. 16_Linux网络配置

    A类:255.0.0.0        8 0 000 0001 - 0 111 1111 127用户回环,1-126 2^7-1个A类地址 容纳多少个主机:2^24-2 主机位全0:网络地址 主机位 ...

  8. HTML5外包团队:HTML5 Canvas使用教程

    canvas 元素用于在网页上绘制图形. 什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canv ...

  9. Js浮点运算存在精度问题

    记得在某一次项目中,运用js进行一系列算数运算,计算中会存在浮点类型,就单纯的进行了计算,最后在测试过程中,主管在核对数据的时候发现计算的结果是有问题的,于是就很纳闷,在网上搜索找到了答案  ,htt ...

  10. Disable access to Windows Update

    Disable access to Windows Update If this policy setting is enabled, all Windows Update features are ...