Python-接口自动化(一)
python基础知识(一)
一、python语言特点
1、易于学习:python有相对较少的关键字,结构简单,有一个明确定义的语法,学起来比较简单;
2、易于阅读:python代码定义的更清晰;
3、易于维护:python的成功在于它的源代码是相当容易维护的;
4、一个广泛的标准库:python最大的优势之一是有丰富的库,跨平台的在unix、Windows和Mac都可以很好的兼容。
二、python编码工具
1、python3.X -->解释器(https://www.python.org/downloads/mac-osx)
2、pycharm -->编辑器(http://www.pc6.com/mac/500474.html)
三、python基础语法
1、标识符:我们在写代码的时候取的名字,命名的符号。标识符在python是会区分大小写的:函数名、类名、变量名和模块名,要让标识符发挥作用的话就需要对其进行赋值。
2、命名规范:由数字字母下划线组成,但是不能以数字开头;见名知意(最好不要用拼音或者自己的名字来命名,以免后续写的代码多了分不清写的是什么);不同的字母数字之间用下划线隔开,提升可读性,例如:class_1103;不能用关键字,例如:int,if等。(变量名的命名规范也是如此)
3、注释:单行注释:# 快捷键:control+/ 多行注释:成对的三个单/双引号:''' '''或者""" """(均是在英文状态下的)。
4、当你需要使用某一个变量的时候,需要确认该变量已经被定义和赋值。
5、python中需要注意的是所有的代码块语句必须要包含相同的缩进空白数量,这个必须严格遵守。
(一)数据类型
(1)数字
数字分为整型和浮点型。type()函数可以判断数据类型
a、整型:关键字是int,例如:a=10;
b、浮点型:关键字是float,例如:b=11.0;
(2)布尔值
布尔值的关键字是bool或者boolean,只有两个值:True或者False,首字母必须为大写,不然就会被识别为还没有进行定义的变量。
(3)字符串
a、关键字是str,成对的单引号/双引号/三引号括起来的内容都是字符串,字符串里面的单个数字/字母/汉字,单个符号都称之为一个元素。
len()函数可以统计数据的长度
例如:s='hello',print(len(s)),打印的结果是5;
b、字符串取值:字符串名[索引值]
索引正序是从0开始标记的,反序是从-1开始标记的,遵循的原则是取头不取尾;多个取值:切片,字符串名[索引头:索引尾:步长],步长默认为1
例如:s[1:5:1],这个取的是1 2 3 4;s[:]是取的全部;s[:4]取的是0 1 2 3;s[3:]取的是3 4 5;
c、字符串分割:字符串.split(可以指定切割符号,切割次数)
例如,s='hello!',print(split()),打印出来的结果是['hello!'],返回的是一个列表类型的数据,列表里面的子元素都是字符串类型;
在split()函数的括号内可以指定切割的符号,以此来进行切割;指定的切割符会被切走,可以指定切割的次数
例如:print(s.split('l',1)),这个的意思是在hello中字母l被切割一次,所以结果是['he','lo!'];
d、字符串替换:字符串.replace(指定替换值,新值,替换次数)
例如:s='hello!',new=s.replace('l','@',1),print(new),打印出来的结果为:he@lo!
e、字符串去除指定字符:字符串.strip(指定字符)
例如:s='hello!',new=s.strip("!"),print(new),打印出来的结果是'hello',默认会去掉空格,只能去掉头和尾指定的字符;
f、字符串格式化输出:% format
format:特点{ },用{ }来占坑位
例如:age=12,name='嘿嘿',print("可爱的{0}今年{1}岁了".format(name,age)),打印的结果是可爱的嘿嘿今年12岁了。
%:%s 字符串 %d 数字 %f 浮点数
例如:age=12,name='嘿嘿',print("可爱的%s今年%d岁了"%(name,age)),打印的结果是可爱的嘿嘿今年12岁了,只能按照顺序进行赋值。
注:%s的时候后面可以填任何类型的数据,%d后面只能填数字,可以是整型也可以是浮点数,%f的时候后面可以填数字,只能为浮点数,%.1f表示保留小数点后一位,数字是几就代表保留小数点后几位。
g、字符串拼接:用+拼接
但是需要保证加号左右两边的数量值类型要一致,str()可以强制转换为str类型的数据,必要的时候可以用str()来进行数据类型转换;
例如:s_1='hello',s_2='world',print(s_1+s_2),打印出来的结果是helloworld。
(4)列表
a、关键字是list,符号[ ],允许存在空列表a=[ ];列表里面可以包含任何类型的数据;列表里面的元素根据逗号来进行分隔;列表里面的元素也是有索引的,索引值从0开始;获取列表里面的单个值:列表[索引值];多个值:列表的切片与字符串的切片一致,列表名[索引头:索引尾:步长]
例如:a=[1,0.02,'hello',[1,3,5],False],print(a[::2]),取的是0 2 4,打印出来的结果是[1,'hello',False];
b、什么时候会用列表?
如果你要存储的数据是同一个类型的,建议用列表。
c、如何往列表里面增加数据?
append:是追加在数据后面的,有序增加
例如:a=[1,0.02,'hello',[1,2,3],False],a.append("haha"),print("a的值是{0}".format(a)),打印出来的结果是:a的值是[1,0.02,'hello',[1,3,5],False];
insert:插入数据,位置随便放,但是要指定插入的位置(指定元素的索引位置)
例如:a.insert(2,'来来'),打印的结果是:a的值是[1,0.02,'来来','hello',[1,2,3],False];
d、如何删除列表里面的数据
pop:列表名.pop(),pop()函数会返回被删除的那个元素,括号内不填数字的话会默认删除最后一个元素,如果括号内传入索引值的话,就会根据索引值的位置来删除指定的元素。
例如:a=[1,0.02,'hello',[1,3,5]],print(a.pop()),打印出来的结果是a=[1,0.02,'hello'];
remove:指定删除某个值
例如:a=[1,0.02,'hello'],print(a.remove(1)),打印出来的结果是:a=[0.02,'hello']。
e、如何修改列表里面元素的值
a[索引值]=新值,其实就是一个赋值运算。
例如:a=[1,'hello',0.02],a[2]='haha',print(a),打印出来的结果是:a=[1,'haha',0.02]。
(5)元祖(后期操作数据库的时候会存放条件)
a、关键字tuple,符号( ),可以存在空元祖a=( ),但是如果这个元祖里面只有一个元素的话,要加一个逗号才是表示为元祖,不加这个逗号的话则这个元素是什么类型就是什么类型的数据;元祖里面可以包含任何类型的数据;元祖里面的元素根据逗号进行分隔;元祖的保护性比较强,元祖不支持任何修改(增删改),如果元素当中有某个元素是列表,则可以对这个列表当中的元素进行修改/删除,整体的元祖不可修改/删除。
例如:a=(1,0.02,[1,2,3]),a[2][-1]='haha',print(a),打印出来的结果是:a=(1,0.02,[1,2,'haha']);
b、但是在元祖元素里面又包含了元祖的话,就可以进行整体的修改,但是不能对这个元祖里面单个的元素进行修改
例如:a=(1,2,(3,4,5)),a[2]='hi',print(a),打印出来的结果是:a=(1,2,'hi');
c、元祖里面的元素也是有索引的,索引从0开始,获取元祖里面的单个值:元祖[索引值];多个值:元祖的切片与字符串的切片一致,元祖名[索引头:索引尾:步长]
例如:a=(1,0.02,'hello'),print(a[0:2:1]),取的是0 1,所以打印出来的结果是:(1,0.02)。
(6)字典
a、 关键字dict,符号{ },结果是无序输出的,可以存在空字典a={ },字典里面存储数据是以key:value的形式;字典里面的value可以包含任何类型的数据;字典里面的元素根据逗号进行分隔;
b、字典取值:字典[key]
例如:a={"name":"haha",
"age":11,
"score":[100,99]}
print(a["age"]),打印出来的结果是10,print(a["score"][-1]),打印出来的结果是99。
c、字典删除:pop(key)
必须要指明要删除的key,例如:a={"name":"haha", "age":11,"score":[100,99]},a.pop("age"),打印出来的结果是a={"name":"haha", "score":[100,99]}
d、字典新增
a[新key]=value,就是新增字典里面不存在的key
例如:a={"name":"haha","age":11,"score":[100,99]},a["student"]="xiaozhu",print(a),打印出来的结果是a={"name":"haha","age":11,"score":[100,99],"student":"xiaozhu"}
e、字典修改
a[已经存在的key]=新value,就是修改已经存在的key
例如:a={"name":"haha","age":11,"score":[100,99]},a["name"]="xiaozhu",print(a),打印出来的结果为a={"name":"xiaozhu","age":11,"score":[100,99]}
(7)运算符(五大类)
a、算术运算符 :+ - * / %
加减乘除在此不进行赘述,这里主要讲一下模运算(%),这个又叫做取余运算,除不尽的时候就会把余数取到,一般会用在判断某个数是奇数还是偶数
例如:a=4,print(a%2),打印出来的结果为0,就说明这个数是偶数,反之则为奇数;
b、赋值运算符:= += -= /=
这里主要讲前面三种,举例进行说明:
a=5:赋值运算
a+=1相当于a=a+1 所以最后a的值为6
a-=3相当于a=a-3 所以最后a的值为2
c、比较运算符:< <= > >= != ==
比较运算之后的结果返回的是布尔值,True/False
例如:a=5,b=10,print(a>b),打印出来的结果为False,print("get".upper()=="GET")/print("get"=="GET".lower())
d、逻辑运算符
and:左右两边结果都为真才为真,其余情况都为假
or:左右两边都为假才为假,有一个为真则为真
逻辑运算之后的结果返回的是布尔值,True/False
例如:a=5,b=10,print(a>11 and b>6),打印出来的结果是False;print(a>6 or b<11),打印出来的结果是False
e、成员运算符 in not in
成员运算之后的结果返回的是布尔值,True/False(如果判断字典的话就是判断key在不在字典里面)
例如:s='hello',print('o' in s),打印出来的结果是True;print('o' not in s),打印出来的结果是False
以上,第一部分到此结束~
Python-接口自动化(一)的更多相关文章
- Python接口自动化——soap协议传参的类型是ns0类型的要创建工厂方法纪要
1:在Python接口自动化中,对于soap协议的xml的请求我们可以使用Suds Client来实现,其soap协议传参的类型基本上是有2种: 第一种是传参,不需要再创建啥, 第二种就是ns0类型的 ...
- python接口自动化(十)--post请求四种传送正文方式(详解)
简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...
- python接口自动化-Cookie_绕过验证码登录
前言 有些登录的接口会有验证码,例如:短信验证码,图形验证码等,这种登录的验证码参数可以从后台获取(或者最直接的可查数据库) 获取不到也没关系,可以通过添加Cookie的方式绕过验证码 前面在“pyt ...
- python接口自动化28-requests-html爬虫框架
前言 requests库的好,只有用过的人才知道,最近这个库的作者又出了一个好用的爬虫框架requests-html.之前解析html页面用过了lxml和bs4, requests-html集成了一些 ...
- python接口自动化-参数化
原文地址https://www.cnblogs.com/yoyoketang/p/6891710.html python接口自动化 -参数关联(一)https://www.cnblogs.com/11 ...
- python接口自动化 -参数关联(一)
原文地址https://www.cnblogs.com/yoyoketang/p/6886610.html 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址ht ...
- python接口自动化20-requests获取响应时间(elapsed)与超时(timeout)
前言 requests发请求时,接口的响应时间,也是我们需要关注的一个点,如果响应时间太长,也是不合理的. 如果服务端没及时响应,也不能一直等着,可以设置一个timeout超时的时间 关于reques ...
- python接口自动化24-有token的接口项目使用unittest框架设计
获取token 在做接口自动化的时候,经常会遇到多个用例需要用同一个参数token,并且这些测试用例跨.py脚本了. 一般token只需要获取一次就行了,然后其它使用unittest框架的测试用例全部 ...
- python接口自动化6-重定向(Location)
前言 某屌丝男A鼓起勇气向女神B打电话表白,女神B是个心机婊觉得屌丝男A是好人,不想直接拒绝于是设置呼叫转移给闺蜜C了,最终屌丝男A和女神闺蜜C表白成功了,这种场景其实就是重定向了. 一.重定向 1. ...
- python接口自动化5-Json数据处理
前言 有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过,需要导入json模块处理. 一般常见的接口返回数据也是json格式的,我们在做判断时候,往往只需要提取其中几个关键的 ...
随机推荐
- HDU 2874 Connections between cities(LCA Tarjan)
Connections between cities [题目链接]Connections between cities [题目类型]LCA Tarjan &题意: 输入一个森林,总节点不超过N ...
- Linux下的.txt文件复制到win下面不自动换行
原因:在Linux系统下, '\n'就是一个换行符,而在windows下,它是由回车换行组成,表示为 \r\n 解决方法:用Notepad++打开文档-->编辑-->文档格式转换--> ...
- Cloud-init
cloud-init用于在创建虚拟机时通过元数据服务对虚拟机基本配置,包括常见的主机名,用户,密码等等.同时用户可以通过user_data自定义一些数据对虚拟机进行配置,可以有配置文件cloud-co ...
- js不需要知道图片宽高的懒加载方法(经过实际测试,不加宽高仍然是无法正常加载的,设置height:auto,height:100%,仍然显示高度为0)
js不需要知道图片宽高的懒加载方法 懒加载是如何实现的? - 简书https://www.jianshu.com/p/e86c61468285找到一个不需要知道图片宽高的懒加载方法了(经过实际测试,不 ...
- springMVC学习之路4-最后的征程:整合hibernate
今天小编很开心,因为学习springMVC基础的路终于走到了尽头,也成功搭建了一个SSH框架,暗自在心里默默地开心了1秒钟. 好了,回归正题:整合Hibernate.上一节,我为大家分享我整合spri ...
- axios、ajax、fetch三者的区别
1.ajax:是指一种创建交互式网页应用的网页开发技术,并且可以做到无需重新加载整个网页的情况下,能够更新部分网页,也叫作局部更新 优缺点: 1)局部更新 2)原生支持,不需要任何插件 3)原生支持, ...
- Linux 查看网卡流量、网络端口
查看网络流量 # 查看网卡流量 命令:sar -n DEV 1 10 注:每1秒 显示 1次 显示 10次 平均时间: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcm ...
- react-router 4.0(四)页面跳转验证提示
import React from 'react' import ReactDOM from 'react-dom' import { HashRouter, Route, Link, Prompt ...
- BZOJ 1269 文本编辑器editor(伸展树)
题意 https://www.lydsy.com/JudgeOnline/problem.php?id=1269 思路 伸展树(\(\text{splay}\))功能比较齐全的模板,能较好的体现 \( ...
- PTA编程总结3—抓老鼠啊~亏了还是赚了?
题目: 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X).捕鼠夹 ...