IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python笔记(简单笔记) -> 正文阅读

[Python知识库]Python笔记(简单笔记)

一、基础学习

1.1 输入功能

# name = input("请输入用户名:")
# if name == "hehe":
#     print("sb")
# else:
#     print("ss")

1.2 占位符

# name = "喵喵"
# age = 19
# text = f"嫂子的名字叫{name},年龄是{age}"
# print(text)

1.3 随机数选择


# import random
# data_list = ["iphone12","二手女友","10日游","避孕套","大保健"]
# while data_list:
#     name = input("请输入自己的名字:")
#     value = random.choice(data_list)
#     print("恭喜{},抽中{}".format(name,value))
#     data_list.remove(value)

1.4 for循环使用及乘法表

# for i in range(1, 10):
#     for j in range(1, i + 1):
#         text = "{}*{}".format(i, j)
#         print(text, end=" ")
#     print("")

1.5 文件的操作

from xml.etree import ElementTree as ET
# 创建标签
root = ET.Element("home")
# 创建节点
son1 = ET.Element('son', {'name': '儿1'})
son2 = ET.Element('son', {'name': '儿2'})
# 添孙子
grandson1 = ET.Element('grandson', {'name': '儿11'})
grandson2 = ET.Element('grandson', {'name': '儿12'})
son1.append(grandson1)
son2.append(grandson2)
# 把儿子添加到根节点中
root.append(son1)
root.append(son2)
tree = ET.ElementTree(root)
# short_empty_elements表示标签是否为短标签
tree.write('file/oo.xml', encoding='utf-8', short_empty_elements=tree)

1.6 解析xml文件

content = """<xml>
    <ToUserName><![CDATA[gh_7f0B8578]]></ToUserName>
    <Status><![CDATA[gh_7f0B8578]]></Status>
</xml>"""
from xml.etree import ElementTree as ET
info = {}
root = ET.XML(content)
for node in root:
    info[node.tag] = node.text
print(info)

1.7 操作Excel

# 首先下载第三方文件 pip install openpyxl
from openpyxl import load_workbook
wb = load_workbook("files/p1.xlsx")
# 循环所有sheet
# for sheet in wb:
#     cell = sheet.cell(1, 1)
#     print(cell.value)

# 获取第N行所有的单元格
# for cell in sheet[1]:
#     print(cell.value)

# 删除列表
# del wb["用户列表"]
# wb.save('files/p2.xlsx')

# 获取某个单元格,修改值
# cell = sheet.cell(1, 1)
# cell.value = "开始"
# wb.save("p2.xlsx")

# 获取某个单元格,修改值
# sheet['B3'] = "Alex"
# wb.save("p2.xlsx")

# 获取某个单元格,修改值
# cell_list = sheet["B2": "C3"]
# for row in cell_list:
#     for cell in row:
#         cell.value = "新的值"
# wb.save("p2.xlsx")

1.7.1 单元格样式(边框)

from openpyxl import load_workbook
from openpyxl.styles import Alignment, Border, Side, Font, PatternFill, GradientFill

wb = load_workbook("files/p1.xlsx")
sheet = wb.worksheets[0]
# 几行几列
cell = sheet.cell(9, 2)
# 居中设置
cell.alignment = Alignment(horizontal='center', vertical='center', text_rotation=0, wrap_text=True)
cell.border = Border(
    top=Side(style="thin", color="FFB6C1"),
    bottom=Side(style="dashed", color="FFB6C1"),
    left=Side(style="dashed", color="FFB6C1"),
    right=Side(style="dashed", color="9932CC"),
    diagonal=Side(style="thin", color="483D88"),
    diagonalUp=True,  # 左下~右上
    diagonalDown=True    # 左上~右下
)
wb.save("p2.xlsx")

1.7.2 crud操作

# 写入公式
# sheet = wb.worksheets[3]
# sheet["D1"] = "合计"
# sheet["D2"] = "=B2*C2"
# wb.save("p2.xlsx")
# # 或者
# sheet = wb.worksheets[3]
# sheet["D3"] = "=SUN(B3,C3)"
# wb.save("p2.xlsx")

# 删除索引
# idx 删除索引的位置
# amount 要删除的个数
sheet.delete_rows(idx=1, amount=2)
sheet.delete_cols(idx=1, amount=3)
wb.save("p2.xlsx")

1.7.3 打印操作

from openpyxl import load_workbook
from openpyxl.styles import Alignment, Border, Side, Font, PatternFill, GradientFill

wb = load_workbook("files/p1.xlsx")
sheet = wb.worksheets[0]

# 打印操作
# 打印区域
sheet.print_area = "A1:D200"
# 打印保留头部
sheet.print_title_cols = "A:D"
sheet.print_title_rows = "1:3"

wb.save("files/p2xlsx")

1.8 发送邮件

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

# 邮件的内容
msg = MIMEText("约吗", 'html', 'utf-8')
msg['From'] = formataddr(["haha", "yangyan@126.com"])
msg['Subject'] = "180一晚"

# 发送邮件
server = smtplib.SMTP_SSL("smtp.126.com")
server.login("yangyan@126.com", "LADFKNJHFD")
server.sendmail("发送者邮箱", "接收者邮箱", msg.as_string())
server.quit()

二、函数使用

2.1 基本函数

# 形参的使用
def fucn(*args, **kwargs):
    print(args,kwargs)
fucn(11, 12 )
fucn(11, 12, name="haha", age=19)
fucn([11, 12, 33], {"k1": 1, "k2": 13})

# 函数结果
(11, 12) {}
(11, 12) {'name': 'haha', 'age': 19}
([11, 12, 33], {'k1': 1, 'k2': 13}) {}
(11, 12, 33) {'k1': 1, 'k2': 13}

2.2 匿名函数

基于lambda定义的函数格式为:lambda 参数:函数体

lambda x:函数体
lambda x,y:函数体
lambda *args, **kwargs:函数体

######例子
fucn = lambda x: x+10
v1 = fucn(10)
print(v1)

三元运算

num = input("请输入名字:")
data = "臭不要脸" if "苍老师" in num else "正经人"
print(data)
## 结果 = 条件成立 if 条件 else 条件不成立

2.3 生成器

import random
def gen_random_num(max_count):
    counter = 0
    while counter < max_count:
        yield random.randint(1000, 9999)
        counter += 1

data_list = gen_random_num(300000000)
# 在使用时,去data_list中获取即可
# next(data_liat)

2,4 模块导包

# from 文件夹.python文件 import 函数名 

###########################
# 找其他包 import sys
# sys.path.append("D:/xx")
# import x1.....

###########相对路径##############
###########在pycharm中可自动添加##############
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

2.5 文件注释

# 创建一个__init__.py文件添加注释

2.6 json格式转换

# 将json格式转换为python格式
import json
data_dic = json.load(re.text)

# 将python转换为json格式
import json
data_dic = json.dumps(data)

###########例子############
import json
from decimal import Decimal
from datetime import datetime

data = [
    {"id": 1, "name": "heh", 'size': Decimal("18.99"), 'ctime': datetime.now()},
    {"id": 2, "name": "www", 'size': Decimal("9.99"), 'ctime': datetime.now()}
]

class MyJSONEncoder(json.JSONEncoder):
    def default(self, o):
        if type(o) == Decimal:
            return str(o) # 字符串
        elif type(o) == datetime:
            return o.strftime("%Y-%M-%d")
        return super().default(o)
res = json.dumps(data, cls=MyJSONEncoder)
print(res)

2.7 正则表达式

import re
text = "拉欧著牛逼, 在线要333232332.@qq.com, 手机号是13829323293"
# \ 转义字符 d 代表数字
phone_list = re.findall("1[3|5|8|9]\d{9}", text)
print(phone_list)

# 找固定的字符
phone_list = re.findall("[abc]", text)

# 固定一个字符q
phone_list = re.findall("q[abc]", text)

# 除了abc之外的字符
phone_list = re.findall("[^abc]", text)

三、对象的了解

3.1 简单对象了解

class Message:
    def send_email(self, email, content):
        data = "给{}发邮件, 内容是: {}".format(email, content)
        print(data)

msg_object = Message()  # 实例化对象
msg_object.send_email("hehhhe.com", "注册成功")

3.2 三大方法

封装, 继承, 多态

继承:(支持多继承)

class Father:
    def send_email(self):
        print("我是父类")

class Son(Father):
    def inses_email(self):
        print("我是子类")

son_objiect = Son()
son_objiect.send_email()
son_objiect.inses_email()

多态:含有send()方法

静态方法: 在函数上添加 :@staticmethod

绑定方法: 函数中默认有 def send(self):

3.3 成员 属性

再绑定方法上添加 :@property 调用的时候就不用加 “方法()”了

3.4 成对方法

在方法中:

# __enter__ 和__exit__是成对出现的
# 前者是来凝结数据库,后者是关闭数据库

3.5 迭代器

定义:

1. 类中定义了__iter__和__next__两个方法
2. __iter__方法需要返回对象本身
3. __next__方法,返回下一个数据,如果没有数据,则需要抛出一个StopIteration异常
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-03 01:09:59  更:2022-02-03 01:10:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:23:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码