2021-05-22

python学习笔记

1. 环境搭建

anaconda + pycharm

anaconda:Anaconda | Individual Edition(历史版本网址:Index of /

pycharm:Download PyCharm: Python IDE for Professional Developers by JetBrains

1.1 pycharm基础操作与设置

1.1.1 快捷键

自动对齐:Ctrl + Alt + L

注释与取消注释:Ctrl + /

查找:Ctrl + F

返回到上一次跳转地方:Ctrl + Alt + ←(左箭头)

返回到下一次跳转地方:Ctrl + Alt + →(右箭头)

1.1.2 新建文件模板设置

File -> Settings -> Editor -> File and Code Templates -> Python Script

在新建python文件(File -> New -> Python File)的时候,文件头部就会自动生成文件名、作者、时间等信息

2. 基础语法

官网:Welcome to Python.org

基础语法:Python3 教程 | 菜鸟教程

2.1 函数定义与使用

2.2 类定义与使用

2.3 print

2.3.1 格式化打印

推荐使用format打印,不在使用%格式化打印

# -*- coding: utf-8 -*-

# @File   : print_test.py
# @Author : xxx
# @Time   : xxx

if __name__ == "__main__":
    a0 = 0
    a1 = 1
    b0 = 0.1
    b1 = 0.2

    # %格式化打印
    print("print_test 1: %d, %d" % (a0, a1))
    print("print_test 2: %.2f, %.2f" % (b0, b1))

    # format打印(推荐使用)
    print("print_test 3: {}, {}".format(a0, a1))
    print("print_test 4: {:.2f}, {:.2f}".format(b0, b1))
    print("print_test 5: {:.2%}, {:.2f}%".format(b0, b1 * 100))  # 注意b1*100
    print("print_test 6: {0}, {1}, {1}, {0}".format(a0, a1))  # 可以指定顺序

输出为:

2.3.2 print不换行

Python3 print的函数原型:print(*objects, sep=‘ ’, end=‘\n’, file=sys.stdout, flush=False)

  • objects ---- 输出的对象,
  • sep ---- 分隔对象,默认为空格
  • end ---- 输出结尾参数,默认为\n
  • file ---- 定义流输出的文件,默认为sys.stdout
  • flush ---- 是否立即把内容输出到流文件,不作缓存,默认为False

end='\r', flush=True

示例代码:

    for i in range(100000):
        print("Percent {:.2%}".format(i/100000), end='\r', flush=True)

pycharm不能动态刷新print,可以使用power shell(Shift + 鼠标右键 -> 点击“在此处打开Powershell窗口(S)”),运行结果如下:

3. 文件读写

3.1 路径处理

1、获取当前脚本路径(调用python解释器的脚本):sys.path[0]

2、路径拼接:os.path.join(xxx1, xxx2, ...)

3、路径、文件名分割:os.path.split(xxx)

4、分割文件名和后缀:os.path.splitext(xxx)

测试代码如下:

import os
import sys

if __name__ == "__main__":
    # 获取当前脚本路径
    path1 = sys.path[0]  # 调用python解释器的脚本所在的目录,与py文件路径有关
    print(path1)
    path2 = os.getcwd()  # 当前的执行目录,与py文件路径无关
    print(path2)

    # 路径拼接
    test_file = os.path.join(path1, "test_dir", "test.txt")
    print(test_file)

    # 路径、文件名分割
    (file_path, file_name) = os.path.split(test_file)
    print("{}\t{}".format(file_path, file_name))

    # 分割文件名和后缀
    (name, extension) = os.path.splitext(file_name)
    print("{}\t{}".format(name, extension))

测试代码如下:

3.2 读写txt文件

基本读写代码如下,

import os
import sys

if __name__ == "__main__":
    base_path = sys.path[0]
    test_file = os.path.join(base_path, "test_dir", "test.txt")

    # 文件写测试
    with open(test_file, 'w') as f_out:
        f_out.write("test1\n")
        f_out.write("test2\n")
        f_out.write("test3\n")

    # 文件读测试
    with open(test_file, 'r', encoding='utf-8') as f_in:
        # data = f_in.read()
        # first_line = f_in.readline()
        # lines = f_in.readlines()
        for line in f_in:
            print(line)

测试结果如下:

读写模式

r :   读取文件,若文件不存在则会报错

w:   写入文件,若文件不存在则会先创建再写入,会覆盖原文件

a :   写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾

rb, wb:  分别于r,w类似,但是用于读写二进制文件

r+ :   可读、可写,文件不存在也会报错,写操作时会覆盖

w+ :   可读,可写,文件不存在先创建,会覆盖

a+ :  可读、可写,文件不存在先创建,不会覆盖,追加在末尾

读文件遇到UnicodeDecodeError错误

忽略非法字符,如下方式打开文件

open(test_file, 'r', encoding='utf-8', errors="ignore")

参考:

https://blog.csdn.net/yeewingho/article/details/106417412

不同读文件方法

方法返回类型描述
readstr读取整个文件,以原格式返回全部文本
readlinestr读取首行,可以设置读取字节数:readline(size)
readlineslist读取整个文件,以列表返回,每个元素为一行文本

注:如果需要逐行读取,建议使用下面的方法,减少内存开销

    with open(test_file, 'r', encoding='utf-8') as f_in:
        for line in f_in:
            print(line)

3.3 读.mat文件

3.4 读写excel文件

3.4.1 openpyxl

3.4.2 xlrd/xlwt

4. 字符串处理

4.1 字符分割

split

4.2 正则搜索

str-int转化

搜索统计

5. pandas库

5.1 DataFrame

5.2 读写excel/csv文件

6. 画图

7. 多进程multiprocessing

8. 机器学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值