尝试写的第一个python脚本……之前一直只会用工具(不,有的工具也还不会用……)可以说是很神奇了
先贴上代码:
import requests
import re
url='http://120.24.86.145:8002/qiumingshan/'
r=requests.session()
requestpage = r.get(url)
ans=re.findall('(.*?)=?;',requestpage.text)#获取表达式
ans="".join(ans)#列表转为字符串
ans=ans[:-2]#去掉最后的=?
post=eval(ans)#计算表达式的值
data={'value':post}#构造post的data部分
flag=r.post(url,data=data)
print(flag.text)
1、python的requests库 requests库详细用法
安装:(用pip)在cmd里输入 pip install requests即可;
在这道题中我们用了requests中的session()函数、get()函数、post()函数、下面一一说明:
session对象可以使我们跨请求保持某些参数,也可以在同一个session实例发出的所有请求之间保持cookies
——创建一个session对象可以拥有以上的作用(但并没有实例化);
然后get()函数,用来进行模拟发送,获得相应url站点的信息,可分为有参和无参两种情况:
无参:
如以上代码,括号内是一个url,表示获取这个url内的信息。
有参:
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://pythontab.com/justTest", params=payload)
(似乎经常看到payload这个词……萌新的我表示懵逼、懵逼、一脸懵逼,后来百度了一下,意思就是关键信息,大概是为了代码可读性更高吧……)
post的情况类似;
2、re库
这个似乎不用额外安装了……如果有问题的话启动pip大法hiahiahia
re库的主要用途就是进行字符串匹配(看着就会有很多我记不住的各种函数嘤嘤嘤)wuling这个博客很详细
说到字符串匹配,正则表达式完全是绕不过的啊2333,在re库中,几乎所有的函数参数都有正则表达式,re库中正则表达式有两种表示方式:
①raw string类型
表示为:r'text',例如:r'[1-9]\d{5}',raw string是指不包含转义符的字符串;
如果正则表达式里含有转义字符之类的敏感字符,最好用这种方法。
②string类型
例如:'[1-9]\\d{5}';'\\d{3}-\\d{8}|\\d{4}-\\d{7}'
3、用到的python的其他函数
join()函数,用法:例如ex.join(str)
参数说明
ex:分隔符。可以为空(如本题)
str:要连接的元素序列、字符串、元组、字典
上面的语法即:以ex作为分隔符,将str所有的元素合并成一个新的字符串
返回值:返回一个以分隔符ex连接各个元素后生成的字符串
----------------------------------------------------------------------------------------------------我是分割线哇
对于这道题:
根据题目中的提示,要在2s内算出,emmmmm手算显然不可能,数字太大,计算器说不定也会溢出(2333)
刷新几次出现了
可以用脚本跑一下……
(毕竟人跑不过机器还是可以的嘛