fast-grasp
- python 语言
- python 版本:python -v
- 安装的包:pip list
- 浮点数
- 四舍五入
- round(float): 输出的是整数部分
- round(float, 0): 输出的是一位小数
- round(float, digit)
print('%.2f'% (num))
- 四舍五入
- 字符串
- ’+‘法:不同于Java,python 要求’+‘的两边必须是字符串,所以,请
str(rate) + '%'
- ord('a'): a 的顺序
- chr(65): 65 对应的ASCII
- 统计出现次数:count(char)
- 判断字符串组成
str.isalpha()
:判断字符串里是否全由字母组成。str.isdigit()
:判断字符串是否全由数字组成str.islower()
:判断是否全由小写字母组成,有其他字符如空格、数字,都不行;str.isupper()
:判断是否全由大写字母组成,有其他字符如空格、数字,都不行;
- 大小写转换
str.upper()
:字符串中所有小写字母转换成大写str.lower()
:字符串中所有大写字母转换成小写str.capitalize()
:规范化str,第一个字母大写,其余字母都小写str.title()
:规范化单词们,第一个字母大写,其余字母小写
- split(seq)
str.split(' ')
,以空格为分割。这样是有坑的,如果以两个空格符分割,就会失效。str.split()
,当不带任何参数时,是以空白符为分割标志,这才是最常用的操作 。
- ’+‘法:不同于Java,python 要求’+‘的两边必须是字符串,所以,请
- 列表: python list 常用操作
- 字典
- datetime
- 新建日期
- 日期的属性,weekday()
- deta
- IO
- 判断输入是否为空
len(input())
- 判断输入是否为空
- 发送http request
字典
字典(dictionary)
字典是 key-value结构,dictionary={'name':'lihua','color':'green'}
(1) 添加键值对——直接给新的key赋值上value
dictionary['age']=18
(2) 修改值:直接 dict[key]=newValue
(3) 永久删除键值对:del dict[key]
(4) 字典中的遍历
(a) 键值对的遍历:
for k,v in dictionary.items():
items()
方法返回一个键值对表,这种遍历的顺序和存储时的顺序不一定相同。
(b) 键的遍历
for key in dictionary.keys():
for key in (sorted(dictionary.keys()))
(c) 值的遍历
for value in dictionary.values():
(5) 嵌套
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
datetime
from datetime import *
start = date(yyyy, mm, dd)
end = date(yyyy, mm, dd)
date有属性 date.year date.month date.day
和方法 date.weekday()
已知日期输出星期几
d = date(yyyy, mm, dd)
print(d.weekday())
requests
给定一个url后,写好header和body后,使用json,就可以直接post出去。
import json
import requests
url = "http://114.116.197.121:9000/api/admin/tag/changeTagStatus/"
header = {
'Connection': 'close',
'Accept': 'application/json,image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*',
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)',
"Content-Type": "application/json; charset=UTF-8",
"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjU0MzI4NTQzLCJqdGkiOiI2NWI1YzkzYThlZWU0ZmUwOTMyMTgwNTY0Y2E3ZTMxZiIsInVzZXJfaWQiOjJ9.CKKiG3L-K1OhNyZaRbXOhP7pubrwAQoBEWn_pTsTbQQ"
}
body = {
"forbidden": 0,
"forbidden_reason": "",
"id": id
}
body = json.dumps(body)
re = requests.post(url=url, headers=header, data=body)
print(re.text)
线程
使用的库为Threading
import json
import requests
import threading
url = "http://114.116.197.121:9000/api/admin/tag/changeTagStatus/"
header = {
'Connection': 'close',
'Accept': 'application/json,image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*',
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)',
"Content-Type": "application/json; charset=UTF-8",
"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjU0MzI4NTQzLCJqdGkiOiI2NWI1YzkzYThlZWU0ZmUwOTMyMTgwNTY0Y2E3ZTMxZiIsInVzZXJfaWQiOjJ9.CKKiG3L-K1OhNyZaRbXOhP7pubrwAQoBEWn_pTsTbQQ"
}
def call_post(n):
global url
global header
body = {
"forbidden": 0,
"forbidden_reason": "",
"id": n
}
data = json.dumps(body)
re = requests.post(url=url, headers=header, data=data)
# print('线程'+ str(n) + ':' + str(re.status_code) ) # n为并发数
if (re.text!='true'):
print(n)
threads = []
for i in range(10452, 10452+10**5): # n 为并发数
t = threading.Thread(target=call_post, args=(i,))
# 针对函数创建线程,target为调用的并发函数,args为调用函数的参数,
# 该参数必须为数组,所以这里加了逗号,如果不加就不是数组,运行会报错
# threads.append(t) # 添加线程到线程组
# print (threads)
t.start() # 开启线程