首页 > 编程语言 >python 基础语法学习

python 基础语法学习

时间:2024-08-23 14:19:37浏览次数:7  
标签:__ 学习 re python list 语法 item 字符串 print

1. IPO程序编写方法  input process output
2. ord("北") 字符转uncode码
   chr(21271) uncode码转字符

3. 文件写入
    fp = open('node.txt', 'w')
    print('北京欢迎你', file=fp)
    fp.close()

4. 键盘输入
    name = input("请输入您的姓名:")
    print("我的姓名是", name, sep='')

5. int(num) #字符串转数字 str()、float()
   len("abc") 获取字符串长度
   type("string") # 获取变量的数据类型
   id(name) #取变量在内存中的地址

6. # coding=utf8 #顶格设置文件编码

7. import keyword
   print(keyword.kwlist) #打印python关键字

8. _ 受保护的变量 __ 私有变量 __init()__ 初始化函数

9. 数据类型:int float str bool module complex
   数据类型显示转换 int()、str()、float()

10. 复数
    x = 123 + 456j #复数由实数部分和虚数部分组成
    print(x.real, x.imag)
    print(type(x))

11. 字符串:单引号、双引号、三单引号、三双引号
    单引号双引号意义一样,在字符串中加r或R则不识别转义字符(类似于php的单引号),三引号定义多行字符串

    s='HELLOWORLD'
    s[0] #H
    s[-10] #H
    s[2:7] #LLOWO 含2不含7
    s[:5] #HELLO 默认从0开始
    s[5:] #WORLD 默认到结束

    s+s2 #字符串拼接
    s*2 #复制字符串2次 或写成 2*s
    a in s # True a是s的子串 False 不是

    字符串格式控制

    字符串数据验证

    字符串去重
    s = 'sdfsdg'
    new_s = set(s) //转集合
    list = list(new_s) //转列表
    list.sort(key=s.index) //排序
    print(''.join(list)) //拼接

    字符串正则匹配
    re.match()    #查找首字符
    re.search()   #全局查找,但只查找一次
    re.findall()  #全局查找,查找所有
    re.sub()      #字符串替换
    re.split()    #分隔字符串

12. bool: True==1 False==0 虽然数据类型不同,但是相等。

13. eval: 去掉字符串的引号部分,执行里面的语句 配合input 使用自动转换数据类型

14. 运算符:/ 除完是float  // 整除,除完是int

15. 系列解包赋值:
    a,b=10,20 # a=10 b=20
    a,b=b,a #交换变量的值

16. 逻辑运算符:and、or、not

17. 没有switch 但有模式匹配,类似于switch # mathch case: case:

18. for in; for else; #循环正常执行完毕,执行else
     while; while else;

19. 组合数据类型:列表、元组、字典、集合

20. 序列的相关操作: +连接字符串、*重复输出字符串、s in str、str.count(x)、str.index('x')x第一次出现的位置 

21. 列表:list = ['a',1,'b'] 或 list(range(1,10,2))、list.append、insert、clear、pop、remove、reverse、copy、sort
        for item in list:
            print(item)

        for i in range(0,len(list)):
            print(list[i])

        for index,item in enumerate(list):
            print(index,item);
    列表生成式的使用:
        list = [random.randint(1, 100) for _ in range(1, 11)]
        list2 = [item for item in  range(1,11) if item>5]
        list3 = [[j for j in range(6)] for i in range(4)] //生成二维列表

22. 元组:t=('a',1,10.2); t=tuple('hello') 如果元组只有一个元素时最后一个逗号不能省
     系列解包赋值:a,b,c,d=t

23. 字典:键值对,[]取值 或 d.get(key); 字典合并 "|",会替换相同的key
        字典生成式: 
            d = {item: random.randint(10,100) for item in range(1, 11)}
            或
            list1 = [100, 101, 102]
            list2 = ['php', 'java', 'python']
            z = zip(list1, list2)
            d = {key: value for key, value in z}

24. 集合:集合是可变数据类型,集合中元素可存储不可变数据类型
        操作符:交集& a&b, 并集| a|b, 差集- a-b, 补集^ a^b

25. try (raise) excepte else finally

26. 函数:php不支持位置传参
        位置传参、
        关键字传参(如果混合传参,位置传参在前,关键字传参在后)
        可变位置参数:*param (元组)  传参可以使用*系列解包
        可变关键字参数: **param (字典) 传参可以使用**系列解包
        返回值为多个值时为元组

        fun = lambda x,y:x+y #lambda表达式

        对列表中的字典中的某个key进行排序 
        student_scores = [
            {"name": '陈梅梅', 'score': 98},
            {"name": '王一一', 'score': 95},
            {"name": '张天乐', 'score': 100},
            {"name": '白雪儿', 'score': 65},
        ]
        student_scores.sort(key=lambda x: x.get('score'), reverse=True)
        print(student_scores)

27. 类:
        1. def __init__(self,name,age): #构造方法 叫初始化方法
        2. @staticmethod 修饰静态方法
        3. @classmethod  修饰类方法
        4. @property 方法定义为属性 调用时不需要加括号
        5. @age.setter 修饰方法,表示这是一个可以修改属性的方法
        6. 权限控制: _ : protected, __ : private, __init__ : 特殊方法
            stu._Student__age、stu._Student__fun() 强制访问私有属性和方法,但是不推荐

        7. 继承:支持多继承
            class Student(Person): #继承

        8. 浅拷贝:obj1 = copy.copy(obj) 产生新对象,子对象没变
           深拷贝:obj1 = copy.deepcopy(obj) 产生新对象,产生子对象

28. 第三方模块安装与卸载 pip install requests / pip uninstall requests

29. 爬虫示例:安装requests 模块:pip install requests
    # 爬虫
    import requests, re

    # 1. 爬数据
    url = 'https://www.weather.com.cn/weather1d/101010100.shtml'

    res = requests.get(url)
    res.encoding = 'utf-8'
    city = re.findall('<span class="name">([\u4e00-\u9fa5]*)</span>', res.text)  # 城市 ['景区', '三亚', '九寨沟', '大理', '张家界', '桂林', '青岛']
    weather = re.findall('<span class="weather">([\u4e00-\u9fa5]*)</span>', res.text)  # 天气
    wd = re.findall('<span class="wd">(.*)</span>', res.text)  # 温度
    zs = re.findall('<span class="zs">(.*)</span>', res.text)  # 状况
    list = []
    for a,b,c,d in zip(city,weather,wd,zs):
        list.append([a,b,c,c])
    print(list)

    # 2.爬图片
    url = 'https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png'
    res = requests.get(url)
    # 图片写入文件
    with open('logo.png','wb') as file:
        file.write(res.content)

30. 生成excel示例  安装excel模块:pip install openpyxl
    # 创建excel工作本
    workbook = openpyxl.Workbook()
    sheet = workbook.create_sheet('景区天气')  # 创建工作表
    # 向工作表中添加数据
    for item in list: # 列表
        sheet.append(item) # 插入一行数据
    workbook.save('景区天气.xlsx')

    读取excel示例:
    # 读取excel数据
    workbook = openpyxl.load_workbook("景区天气.xlsx") # 读取excel
    sheet = workbook['景区天气'] #选择工作表
    # 读取数据
    list = []
    for row in sheet.rows:
        oneRow = []
        for cell in row:
            oneRow.append(cell.value)
        list.append(oneRow)

31. PDF: 读取数据
    import pdfplumber
    with pdfplumber.open("租房合同.pdf") as pdf:
        for i in pdf.pages:
            print(i.extract_text())
            print(f'------第{i.page_number}页结束')

32. jieba分词
    # 中文分词
    string = ''
    with open("中文分词.txt", 'r', encoding='utf-8') as file:
        string = file.read()

    list = jieba.lcut(string)  # 分词后的list
    set = set(list)  # 词去重
    count = {}  # 统计中文词出现的次数
    for item in list:
        if len(item) <= 1: continue
        if item in count:
            count[item] += 1
        else:
            count[item] = 1
    countList = [[key, value] for key, value in count.items()]  # 字典转列表 [['按照', 1], ['提示', 4]...]
    countList.sort(key=lambda x: x[1], reverse=True)  # 排序
    firstTen = countList[0:11] # 取前10项
    print(firstTen)

33. 第三方模块总结:
        requests:   爬虫模块       pip install requests
        openpyxl:   Excel处理模块  pip install openpyxl
        pdfplumber: PDF处理模块    pip install pdfplumber
        jieba:      中文分词模块   pip install jieba
        prettytable: 控制台表格     pip install prettytable
        wordcloud:   生成词云       pip install wordcloud

        数据分析三剑客:Pandas、Matplotlib和NumPy

34. 文件操作
        # 写入文件,文件不存在创建文件
        file = open('a.txt', 'w', encoding='utf-8')
        file.write('伟大的中国梦')
        file.close()

        # 读取文件
        file = open('a.txt', 'r', encoding='utf-8')
        s = file.read()
        file.close()
        print(s)

        # with语句:上下文管理器,with oppen(...) as file #防止文件异常,可以不写close方法

35. json
        1. python数据类型转json字符串: json.dumps(lst, ensure_ascii=False, indent=4)
        2. json字符串转数据类型:list2 = json.loads(s)

36. os模块
        getcwd()、listdir()、mkdir()......

 

1. IPO程序编写方法  input process output2. ord("北") 字符转uncode码   chr(21271) uncode码转字符
3. 文件写入fp = open('node.txt', 'w')print('北京欢迎你', file=fp)fp.close()
4. 键盘输入name = input("请输入您的姓名:")print("我的姓名是", name, sep='')
5. int(num) #字符串转数字 str()、float()   len("abc") 获取字符串长度   type("string") # 获取变量的数据类型   id(name) #取变量在内存中的地址
6. # coding=utf8 #顶格设置文件编码
7. import keyword   print(keyword.kwlist) #打印python关键字
8. _ 受保护的变量 __ 私有变量 __init()__ 初始化函数
9. 数据类型:int float str bool module complex   数据类型显示转换 int()、str()、float()
10. 复数x = 123 + 456j #复数由实数部分和虚数部分组成print(x.real, x.imag)print(type(x))
11. 字符串:单引号、双引号、三单引号、三双引号单引号双引号意义一样,在字符串中加r或R则不识别转义字符(类似于php的单引号),三引号定义多行字符串
s='HELLOWORLD's[0] #Hs[-10] #Hs[2:7] #LLOWO 含2不含7s[:5] #HELLO 默认从0开始s[5:] #WORLD 默认到结束
s+s2 #字符串拼接s*2 #复制字符串2次 或写成 2*sa in s # True a是s的子串 False 不是
字符串格式控制
字符串数据验证
字符串去重s = 'sdfsdg'new_s = set(s) //转集合list = list(new_s) //转列表list.sort(key=s.index) //排序print(''.join(list)) //拼接
字符串正则匹配re.match()    #查找首字符re.search()   #全局查找,但只查找一次re.findall()  #全局查找,查找所有re.sub()      #字符串替换re.split()    #分隔字符串
12. bool: True==1 False==0 虽然数据类型不同,但是相等。
13. eval: 去掉字符串的引号部分,执行里面的语句 配合input 使用自动转换数据类型
14. 运算符:/ 除完是float  // 整除,除完是int
15. 系列解包赋值:a,b=10,20 # a=10 b=20a,b=b,a #交换变量的值
16. 逻辑运算符:and、or、not
17. 没有switch 但有模式匹配,类似于switch # mathch case: case:
18. for in; for else; #循环正常执行完毕,执行else while; while else;
19. 组合数据类型:列表、元组、字典、集合
20. 序列的相关操作: +连接字符串、*重复输出字符串、s in str、str.count(x)、str.index('x')x第一次出现的位置 
21. 列表:list = ['a',1,'b'] 或 list(range(1,10,2))、list.append、insert、clear、pop、remove、reverse、copy、sortfor item in list:print(item)
for i in range(0,len(list)):print(list[i])
for index,item in enumerate(list):print(index,item);列表生成式的使用:list = [random.randint(1, 100) for _ in range(1, 11)]list2 = [item for item in  range(1,11) if item>5]list3 = [[j for j in range(6)] for i in range(4)] //生成二维列表
22. 元组:t=('a',1,10.2); t=tuple('hello') 如果元组只有一个元素时最后一个逗号不能省 系列解包赋值:a,b,c,d=t
23. 字典:键值对,[]取值 或 d.get(key); 字典合并 "|",会替换相同的key字典生成式: d = {item: random.randint(10,100) for item in range(1, 11)}或list1 = [100, 101, 102]list2 = ['php', 'java', 'python']z = zip(list1, list2)d = {key: value for key, value in z}
24. 集合:集合是可变数据类型,集合中元素可存储不可变数据类型操作符:交集& a&b, 并集| a|b, 差集- a-b, 补集^ a^b
25. try (raise) excepte else finally
26. 函数:php不支持位置传参位置传参、关键字传参(如果混合传参,位置传参在前,关键字传参在后)可变位置参数:*param (元组)  传参可以使用*系列解包可变关键字参数: **param (字典) 传参可以使用**系列解包返回值为多个值时为元组
fun = lambda x,y:x+y #lambda表达式
对列表中的字典中的某个key进行排序 student_scores = [    {"name": '陈梅梅', 'score': 98},    {"name": '王一一', 'score': 95},    {"name": '张天乐', 'score': 100},    {"name": '白雪儿', 'score': 65},]student_scores.sort(key=lambda x: x.get('score'), reverse=True)print(student_scores)
27. 类:1. def __init__(self,name,age): #构造方法 叫初始化方法2. @staticmethod 修饰静态方法3. @classmethod  修饰类方法4. @property 方法定义为属性 调用时不需要加括号5. @age.setter 修饰方法,表示这是一个可以修改属性的方法6. 权限控制: _ : protected, __ : private, __init__ : 特殊方法stu._Student__age、stu._Student__fun() 强制访问私有属性和方法,但是不推荐
7. 继承:支持多继承class Student(Person): #继承
8. 浅拷贝:obj1 = copy.copy(obj) 产生新对象,子对象没变   深拷贝:obj1 = copy.deepcopy(obj) 产生新对象,产生子对象
28. 第三方模块安装与卸载 pip install requests / pip uninstall requests
29. 爬虫示例:安装requests 模块:pip install requests# 爬虫import requests, re
# 1. 爬数据url = 'https://www.weather.com.cn/weather1d/101010100.shtml'
res = requests.get(url)res.encoding = 'utf-8'city = re.findall('<span class="name">([\u4e00-\u9fa5]*)</span>', res.text)  # 城市 ['景区', '三亚', '九寨沟', '大理', '张家界', '桂林', '青岛']weather = re.findall('<span class="weather">([\u4e00-\u9fa5]*)</span>', res.text)  # 天气wd = re.findall('<span class="wd">(.*)</span>', res.text)  # 温度zs = re.findall('<span class="zs">(.*)</span>', res.text)  # 状况list = []for a,b,c,d in zip(city,weather,wd,zs):    list.append([a,b,c,c])print(list)
# 2.爬图片url = 'https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png'res = requests.get(url)# 图片写入文件with open('logo.png','wb') as file:    file.write(res.content)
30. 生成excel示例  安装excel模块:pip install openpyxl# 创建excel工作本workbook = openpyxl.Workbook()sheet = workbook.create_sheet('景区天气')  # 创建工作表# 向工作表中添加数据for item in list: # 列表    sheet.append(item) # 插入一行数据workbook.save('景区天气.xlsx')
读取excel示例:# 读取excel数据workbook = openpyxl.load_workbook("景区天气.xlsx") # 读取excelsheet = workbook['景区天气'] #选择工作表# 读取数据list = []for row in sheet.rows:    oneRow = []    for cell in row:        oneRow.append(cell.value)    list.append(oneRow)
31. PDF: 读取数据import pdfplumberwith pdfplumber.open("租房合同.pdf") as pdf:    for i in pdf.pages:        print(i.extract_text())        print(f'------第{i.page_number}页结束')
32. jieba分词# 中文分词string = ''with open("中文分词.txt", 'r', encoding='utf-8') as file:    string = file.read()
list = jieba.lcut(string)  # 分词后的listset = set(list)  # 词去重count = {}  # 统计中文词出现的次数for item in list:    if len(item) <= 1: continue    if item in count:        count[item] += 1    else:        count[item] = 1countList = [[key, value] for key, value in count.items()]  # 字典转列表 [['按照', 1], ['提示', 4]...]countList.sort(key=lambda x: x[1], reverse=True)  # 排序firstTen = countList[0:11] # 取前10项print(firstTen)
33. 第三方模块总结:requests:   爬虫模块       pip install requestsopenpyxl:   Excel处理模块  pip install openpyxlpdfplumber: PDF处理模块    pip install pdfplumberjieba:      中文分词模块   pip install jiebaprettytable: 控制台表格     pip install prettytablewordcloud:   生成词云       pip install wordcloud
数据分析三剑客:Pandas、Matplotlib和NumPy
34. 文件操作# 写入文件,文件不存在创建文件file = open('a.txt', 'w', encoding='utf-8')file.write('伟大的中国梦')file.close()
# 读取文件file = open('a.txt', 'r', encoding='utf-8')s = file.read()file.close()print(s)
# with语句:上下文管理器,with oppen(...) as file #防止文件异常,可以不写close方法
35. json1. python数据类型转json字符串: json.dumps(lst, ensure_ascii=False, indent=4)2. json字符串转数据类型:list2 = json.loads(s)
36. os模块getcwd()、listdir()、mkdir()......

标签:__,学习,re,python,list,语法,item,字符串,print
From: https://www.cnblogs.com/longfeiPHP/p/18375887

相关文章

  • Android Qcom USB Driver学习(七)
    最近遇到了USB插拔后,系统重启的问题,抓取串口log发现如下问题,log中查看trace分析就是空指针造成的panicUnabletohandlekernelreadfromunreadablememoryatvirtualaddress0000000000000000Memabortinfo:ESR=0x96000005Exceptionclass=DABT(currentEL),......
  • 【Python爬虫实战】天气数据爬取+数据可视化(完整代码)_爬取天气预报数据并做可视化分析
    一、选题的背景随着人们对天气的关注逐渐增加,天气预报数据的获取与可视化成为了当今的热门话题,天气预报我们每天都会关注,天气情况会影响到我们日常的增减衣物、出行安排等。每天的气温、相对湿度、降水量以及风向风速是关注的焦点。通过Python网络爬虫爬取天气预报让我们快......
  • 【AI绘画】零基础学会Stable Diffusion!保姆级教程!附全套学习教程,你离成为大佬只差看完
    大家好,我是SD教程菌。最近,我惊奇地发现,还有不少粉丝朋友还没用过AI绘画的顶流工具——StableDiffusion,简称“SD”。今天来出一期SD版零基础的AI绘画课,分为4个部分:SD能有多强?电脑配置要求软件安装基础使用流程1.SD能有多强?其实,2022年8月StableDiffusion就开源发布了,经......
  • day18:python 迭代器
    目录一、迭代器1.什么是迭代器2.为何要有迭代器3.如何用迭代器3.1可迭代的对象:但凡内置有__iter__方法的都称之为可迭代的对象3.2调用可迭代对象下的__iter__方法会将其转换成迭代器对象4.可迭代对象与迭代器对象详解5.可迭代对象和迭代器对象有哪些?6.for循环的......
  • STM32学习记录-05 -1-TIM定时中断
    1TIM简介TIM(Timer)定时器定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断(如在STM32中主频为72MHz,计72个数即1MHz也就是1us,计72000个数即1KHz也就是1ms)16位计数器、预分频器(对计数器的时钟进行分频)、自动重装寄存器(计数的目标值,计多少个时钟申请中断)的时基单......
  • STM32学习记录-05 -2-TIM输出比较
    1输出比较简介OC(OutputCompare)输出比较输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形每个高级定时器和通用定时器都拥有4个输出比较通道高级定时器的前3个通道额外拥有死区生成和互补输出的功能2......
  • Python中共享内存对进程池的影响
    在Coding过程中,发现了共享内存会对进程池产生影响。原始程序设计的思路是,在类中使用进程池创建不同的进程,这些进程间通过共享内存的方式控制一些变量。代码如下importctypesfrommultiprocessingimportPool,ValueclassEx:def__init__(self,value):self......
  • 【Python】函数的定义和调用、形参和实参、函数的返回值、多元赋值、全局和局部变量
    文章目录函数的定义函数的调用形参和实参函数的返回值一个return多个return多元赋值变量作用域函数内的变量全局变量和局部变量修改全局变量函数的定义函数的定义:分配任务def函数名(形参列表): 函数体 return返回值def:define,定义形参列表中,可以有多个形......
  • python 06-标准库:random、string、webbrowser、email模块
    random、string模块importrandomimportstringprint(random.random())#任意-个float数字print(random.randint(1,10))#1-10之间包括1和18中任意一个整数print(random.choice([1,2,3]))#1,2,3这几个数字里面任意一个print(random.choices([1,2,3],k=2))......
  • Python个人收入影响因素模型构建:回归、决策树、梯度提升、岭回归
    全文链接:https://tecdat.cn/?p=37423原文出处:拓端数据部落公众号“你的命运早在出生那一刻起便被决定了。”这样无力的话语,无数次在年轻人的脑海中回响,尤其是在那些因地域差异而面临教育资源匮乏的年轻人中更为普遍。在中国,这种现象尤为明显:没有生在大城市的他们,从小便需面对......