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. 自制操作系统Antz(7)——实现内核 (上)

    Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs. ...

  2. Spring Boot 监控利器 —— Actutor

    参考 CSDN-学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator 使用Actuator监控Spring Boot应用 程序猿DD-Spring Boot ...

  3. #!/usr/bin/python3 和 #!/usr/bin/env python3的区别

    脚本语言的第一行指出用什么程序去执行代码. #!/usr/bin/python3调用/usr/bin下的python3解释器.#!/usr/bin/env python3首先会到env设置里查找pyt ...

  4. aop (权限控制之功能权限)

    在实际web开发过程中通常会存在功能权限的控制,不如这个角色只允许拥有查询权限,这个角色拥有CRUD权限,当然按钮权限显示控制上可以用button.tld来控制,本文就不说明. 具体控制流程就是通过登 ...

  5. 小程序配置tabbar

    app.json中添加tabbar "tabBar": { "color": "#a9b7b7", //未选中字体颜色 "sele ...

  6. Kotlin 继承

    Kotlin 中所有类都继承该 Any 类,它是所有类的超类,对于没有超类型声明的类是默认超类: class Example // 从 Any 隐式继承 Any 默认提供了三个函数: equals() ...

  7. pycharm上传代码到远程服务器

    本来不打算写了,可是,还是记不住 源自https://blog.csdn.net/zhangyu4863/article/details/80188207 我的是pycharm2018.1.4专业版: ...

  8. Windows系统Nessus离线(Offline) 版的安装

    Nessus离线(offline)版可以在局域网内进行系统漏洞扫描,下面简单介绍其windows系统版本的安装过程. 1.  登陆Tenable网站: https://www.tenable.com/ ...

  9. Nginx缓存

    一.基于proxy_cache的缓存 worker_processes ; events { worker_connections ; } http { include mime.types; def ...

  10. python-Excel读取-合并单元格读取

    python-Excel读取-合并单元格读取(后续会补充python-Excel写入的部分) 1. python读取Excel单元格 代码包含读取Excel中数据,以及出现横向合并单元格,以及竖向合并 ...