Python基础

Python基础

字符串

# 字符串前缀(u前缀UTF-8编码、r原始字符串、f模板字符串)
s = r"aa\nbb"  # r 或 R 前缀,原始字符串(raw string)
# 字符串模板,aaa和bbb是变量,s是生成的字符串
s = f"{aaa},{bbb}."

# re.match,字符串是否满足某个正则表达式,返回bool
re.match("^[0-9]+: ", s)
# re.findall,在字符串中查找,返回一个list
re.findall("^[0-9]+: ([0-9a-z]+): <", s)
re.findall("^[0-9]+: ([0-9a-z]+): <", s, re.S)  # re.S(把换行也算进去)

s = "  aaa,bbb  "
len(s)  # 返回字符串 s 的长度。
s.strip()  # 去除字符串 s 两端的空白字符(包括空格、换行符、制表符等)。
s.lstrip()  # 去除字符串 s 左端的空白字符。
s.rstrip()  # 去除字符串 s 右端的空白字符。
s.split(sep)  # 将字符串 s 分割为一个列表,使用 sep 作为分隔符。
s.splitlines()  # 按照行结束符分割字符串 s。
s.replace(old, new)  # 返回一个新字符串,其中 s 中的所有 old 子字符串都被替换为 new。
s[start:end:step]  # 返回字符串 s 的一个切片,从 start 索引开始到 end 索引结束(不包括 end),步长为 step。
s.find(sub)  # 查找子字符串 sub 在 s 中首次出现的索引,如果未找到则返回 -1。
s.index(sub)  # 与 find() 方法类似,但如果未找到子字符串则引发 ValueError 异常。

循环

# 遍历0-9
for i in range(0, 10):
    print(i)

# 遍历1,3,5,7,9
for i in range(1, 10, 2):
    print(i)

数组的用法

# 定义数组
arr = []
# 添加元素
arr.append(xxxxx)

arr = ["aaa", "ccc", "bbb"]
# 直接遍历元素
for e in arr:
    print(e)
# 索引i和元素arr[i]
for i in range(len(arr)):
    print(i, arr[i])
# enumerate遍历,索引i和元素e。enumerate(arr, start=10),指定索引从10开始
for i, e in enumerate(arr):
    print(i, e)

字典的用法

# 定义
obj = {}
obj['name'] = "zhangsan"
obj['age'] = 23
obj['xxxx'] = True
print(obj)

# 字典转json字符串
json_str = json.dumps(obj)
# 字符串转字典
obj = json.loads('{"name": "zhangsan", "age": 23, "xxxx": true}')

# 遍历key
for key in obj:
    print(key)
# 遍历key和value
for k, v in obj.items():
    print(k, v)

# 判断key是否存在
if 'age' in obj:
    print("key exist")
# 判断key不存在
if 'age1' not in obj:
    print("key not exist")

数字

# 保留两位小数,四舍五入 round
round(10 / 6, 2)  # 1.67

时间相关

# 休眠1秒
time.sleep(1)
# 休眠0.1秒
time.sleep(0.1)

# 2023-12-21 01:14:18.181892
datetime.datetime.now()
# 2024-04-06 15:46:42.027
str(datetime.datetime.now())[0:-3]
# 秒级别时间戳 1703092458.0791686
time.time()
round(time.time())
# 毫秒级别时间戳 1703093671275
round(time.time() * 1000)
# 纳秒级别时间戳1698204425088401100
time.time_ns()

# 2023-12-21 01:38:49
time.strftime("%Y-%m-%d %H:%M:%S")

类型转换

# 获取类型
print(type(xxxxx))

# 数字转字符串
n = 999
s = str(n)
# 字符串转数字
s = "999"
n = int(s)
# 字符串转浮点数
s = "3.14"
n = float(s)


# 类型判断
obj = {}
if isinstance(obj, dict):
    print("dict类型")
elif isinstance(obj, list):
    print("list类型")
else:
    print("其他类型")


正则表达式

根据正则表达式生成随机字符串

# 根据正则表达式生成随机字符串
from xeger import Xeger

x = Xeger()
for i in range(10):
    print(x.xeger(r"[a-z]{5}"))
# Xeger().xeger(r"[a-z]{5}")

JSON相关

# json包
import json
# 将dict类型的数据转成str
json.dumps(obj)
json.dumps(obj, indent=4)
# 将str类型的数据转换为dict类型或list类型
json.loads(jsonString)

# demjson:功能更加强大
import demjson
# 对象转json
demjson.encode(obj)
demjson.encode(obj, encoding='utf-8')
# json转对象
demjson.decode(jsonString)
demjson.decode(jsonString, encoding='utf-8')


# 从json文件中读取数据
with open(r'F:\test\aaa.json', 'r', encoding='utf-8') as f:
    obj = json.load(f)
print(obj)
print(type(obj))

读写文件

# 读文件
fp = open(r'F:\test\aaa.txt', 'r', encoding='utf-8')
str1 = fp.read()  # 读取全部
list1 = fp.readlines()  # 按行读取
fp.close()

# 写文件 w覆盖写 a追加写 (文件不存在会自动创建)
txtlist = ['第一行\n', '第二行\n', '第三行\n']
with open(bbb, 'w', encoding='utf-8') as fp:
    fp.write("aaa\nbbbccc\n")  # 写入文件
    fp.writelines(txtlist)  # 按行写入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值