首页 > 技术文章 > Python 基础内容

ticlab 2022-04-09 00:08 原文


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(),当不带任何参数时,是以空白符为分割标志,这才是最常用的操作 。
  • 列表: python list 常用操作
  • 字典
  • datetime
    • 新建日期
    • 日期的属性,weekday()
    • deta
  • IO
    • 判断输入是否为空 len(input())
  • 发送http request

python 文件读取
python 解析 json

字典

字典(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()          # 开启线程

推荐阅读