python基础语法

2023-12-26 18:13:42

菜鸟教程

PyCharm中

if __name__ == "__main__":
'''
使用main+回车即可
'''

一、Python 中文编码

Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。
解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 # coding=utf-8 就行了

ps: 注意:# coding=utf-8 的 = 号两边不要空格。

# -*- coding: UTF-8 -*-
print( "你好,世界" )

二、多行语句

Python语句中一般以新行作为语句的结束符。
但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:

total = item_one + \
        item_two + \
        item_three

ps: 注意括号中的不需要\来维护换行

三、注释

python中单行注释采用 # 开头。

python 中多行注释使用三个单引号 ‘’’ 或三个双引号 “”"。

# 文件名:test.py

# 第一个注释
print ("Hello, Python!")  # 第二个注释

'''
这是多行注释,使用单引号。
这是多行注释,使用单引号。
这是多行注释,使用单引号。
'''

"""
这是多行注释,使用双引号。
这是多行注释,使用双引号。
这是多行注释,使用双引号。
"""

四、变量

Number(数字)
String(字符串)
bool(布尔类型)
List(列表)
Tuple(元组)
Set(集合)
Dictionary(字典)

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

1、多变量赋值

a = b = c = 1

2、判断类型

isinstance()
type()

isinstance 和 type 的区别在于:
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。

在这里插入图片描述
在这里插入图片描述

3、字符String

在这里插入图片描述

4、布尔

在这里插入图片描述

5、List(列表)

在这里插入图片描述
在这里插入图片描述

6、Tuple(元组)

在这里插入图片描述

7、Set(集合)

在这里插入图片描述

8、 Dictionary(字典)

在这里插入图片描述
也可以aa = {“zzz”:“zzz”}
在这里插入图片描述

9、推导式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

五、类型转换

在这里插入图片描述

六、运算符

1、Python算术运算符

在这里插入图片描述

2、Python 比较运算符

在这里插入图片描述

3、Python赋值运算符

在这里插入图片描述

4、 Python位运算符

在这里插入图片描述

5、Python逻辑运算符

在这里插入图片描述

6、Python成员运算符

在这里插入图片描述

7、 Python身份运算符

在这里插入图片描述
在这里插入图片描述

七、条件控制

在这里插入图片描述
在这里插入图片描述

八、循环

1、while循环

在这里插入图片描述
在这里插入图片描述

2、for循环

在这里插入图片描述
range()函数
其中range(5,10)有5没10
在这里插入图片描述
在这里插入图片描述

3、跳出循环break 和 continue

在这里插入图片描述

3、pass占位符号

在这里插入图片描述

九、迭代器

1、迭代器取值

在这里插入图片描述

2、停止无限循环

在这里插入图片描述

3、函数停止变为迭代器

在这里插入图片描述

十、函数

1、自定义函数

在这里插入图片描述

2、默认参数

在这里插入图片描述

3、元组方式入参

在这里插入图片描述
在这里插入图片描述

4、字典入参

在这里插入图片描述

5、*后必须以(参数名=值)传递

在这里插入图片描述
在这里插入图片描述

6、匿名函数

在这里插入图片描述

7、强制位置参数/

在这里插入图片描述

8、return

None为java的null

十一、lambda 匿名函数

1、无参lambda

在这里插入图片描述

2、有参lambda

在这里插入图片描述

3、函数式入参

在这里插入图片描述

4、函数作为参数

def apply_operation(operation, x, y):
   """
   接受一个操作函数,并将它应用到给定的两个参数上
   """
   result = operation(x, y)
   return result


# 定义一个加法函数
def add(a, b):
   return a + b

if __name__ == '__main__':

   # 将 add 函数作为参数传递给 apply_operation 函数
   sum_result = apply_operation(add, 3, 4)
   print(sum_result)  # 输出:7

5、判断类型

import types
# 是否为函数类型
print(isinstance(operation, types.FunctionType) )
# 是否为int类型
print(isinstance(operation, int) )
# 是否为str类型和int类型
print(isinstance(operation, (int, str)) )

十二、模块

1、引入模块import

在这里插入图片描述

在这里插入图片描述

2、引入模块from … import 语句

在这里插入图片描述

在这里插入图片描述

3、__name__属性

在这里插入图片描述

4、dir函数

在这里插入图片描述
在这里插入图片描述

5、包

在这里插入图片描述

6、全局函数

在这里插入图片描述

7、reload() 函数

在这里插入图片描述

在这里插入图片描述

会执行下面的__name__方法

在这里插入图片描述

十三、键盘输入+读和写文件(文件I/O)

1、键盘输入

在这里插入图片描述

2、文件模式

在这里插入图片描述
在这里插入图片描述

3、写

在这里插入图片描述

返回写入字数
在这里插入图片描述
写非文字
在这里插入图片描述

4、读

在这里插入图片描述

单行读
在这里插入图片描述
读取多行
在这里插入图片描述

5、所处的位置

在这里插入图片描述

6、关闭流

在这里插入图片描述

7、序列化pickle 模块

写入
在这里插入图片描述
读取
在这里插入图片描述

8、file

在这里插入图片描述
在这里插入图片描述

9、os模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十四、异常

1、异常

在这里插入图片描述

2、断言

在这里插入图片描述

十五、面向对象(类)

1、类创建

在这里插入图片描述

2、构造函数__init__()

在这里插入图片描述

3、类实体(构造函数的参数)

在这里插入图片描述

4、类如何写函数

在这里插入图片描述

5、继承

在这里插入图片描述

与java不同的是它支持多继承
在这里插入图片描述

6、重写

在这里插入图片描述

7、掉父类方法

在这里插入图片描述

8、 私有变量和私有方法

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

私有属性如何去掉
在这里插入图片描述

9、类专有方法

在这里插入图片描述

10、运算符重载

在这里插入图片描述

十六、内置函数

在这里插入图片描述

十七、作用域

1、修改全局变量(global)

Money = 2000
def AddMoney():
    # 想改正代码就取消以下注释:
    global Money
    Money = Money + 1
    print(Money)
    return Money

2、内嵌局部修改局部参数(nonlocal )

#!/usr/bin/python3
 
def outer():
    num = 10
    def inner():
        nonlocal num   # nonlocal关键字声明
        num = 100
        print(num)
    inner()
    print(num)
outer()

3、获取全局变量和局部变量函数

全局

在这里插入图片描述

局部
在这里插入图片描述

十八、标准库

Python 标准库非常庞大,所提供的组件涉及范围十分广泛,使用标准库我们可以让您轻松地完成各种任务。

以下是一些 Python3 标准库中的模块:

  • os 模块:os 模块提供了许多与操作系统交互的函数,例如创建、移动和删除文件和目录,以及访问环境变量等。

  • sys 模块:sys 模块提供了与 Python 解释器和系统相关的功能,例如解释器的版本和路径,以及与 stdin、stdout 和 stderr 相关的信息。

  • time 模块:time 模块提供了处理时间的函数,例如获取当前时间、格式化日期和时间、计时等。

  • datetime 模块:datetime 模块提供了更高级的日期和时间处理函数,例如处理时区、计算时间差、计算日期差等。

  • random 模块:random 模块提供了生成随机数的函数,例如生成随机整数、浮点数、序列等。

  • math 模块:math 模块提供了数学函数,例如三角函数、对数函数、指数函数、常数等。

  • re 模块:re 模块提供了正则表达式处理函数,可以用于文本搜索、替换、分割等。

  • json 模块:json 模块提供了 JSON 编码和解码函数,可以将 Python 对象转换为 JSON 格式,并从 JSON 格式中解析出 Python 对象。

  • urllib 模块:urllib 模块提供了访问网页和处理 URL 的功能,包括下载文件、发送 POST 请求、处理 cookies 等。

1、操作系统接口

在这里插入图片描述

2、文件通配符

在这里插入图片描述

3、 命令行参数

在这里插入图片描述

4、 字符串正则匹配

在这里插入图片描述

5、数字

在这里插入图片描述

6、 访问互联网

在这里插入图片描述

7、日期和时间

在这里插入图片描述

8、 数据压缩

在这里插入图片描述

9、 性能度量

在这里插入图片描述

10、 测试模块

在这里插入图片描述

官方标准库链接

十九、正则

1、 re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 None。
在这里插入图片描述

import re
# span()是取出来re.match('www', 'www.runoob.com')返回的是对象中的属性
print(re.match('www', 'www.runoob.com').span())  # 在起始位置到最终位置匹配
print(re.match('com', 'www.runoob.com'))         # 起始位置匹配

例如,假设有一个字符串 “2023-12-13”,我们想要提取年、月和日的信息。我们可以使用正则表达式来匹配这个字符串,并使用括号来创建匹配组来捕获这些信息:

import re

# 匹配模式并创建匹配组捕获年、月和日
pattern = r'(\d{4})-(\d{2})-(\d{2})'
match = re.match(pattern, '2023-12-13')

# 获取整个匹配
print(match.group(0))  # 输出: 2023-12-13

# 获取第一个括号匹配的内容(年份)
print(match.group(1))  # 输出: 2023

# 获取第二个括号匹配的内容(月份)
print(match.group(2))  # 输出: 12

# 获取第三个括号匹配的内容(日期)
print(match.group(3))  # 输出: 13


2、re.search方法

re.search 扫描整个字符串并返回第一个成功的匹配。
在这里插入图片描述

#!/usr/bin/python3
 
import re
 
print(re.search('www', 'www.runoob.com').span())  # 在起始位置匹配
print(re.search('com', 'www.runoob.com').span())         # 不在起始位置匹配

3、检索和替换

在这里插入图片描述

#!/usr/bin/python3
import re
 
phone = "2004-959-559 # 这是一个电话号码"
 
# 删除注释
num = re.sub(r'#.*$', "", phone)
print ("电话号码 : ", num)
 
# 移除非数字的内容
num = re.sub(r'\D', "", phone)
print ("电话号码 : ", num)

repl 参数是一个函数

#!/usr/bin/python
 
import re
 
# 将匹配的数字乘以 2
def double(matched):
    value = int(matched.group('value'))
    return str(value * 2)
 
s = 'A23G4HFD567'
print(re.sub('(?P<value>\d+)', double, s))

4、compile 函数

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用
在这里插入图片描述

>>>import re
>>> pattern = re.compile(r'\d+')                    # 用于匹配至少一个数字
>>> m = pattern.match('one12twothree34four')        # 查找头部,没有匹配
>>> print( m )
None
>>> m = pattern.match('one12twothree34four', 2, 10) # 从'e'的位置开始匹配,没有匹配
>>> print( m )
None
>>> m = pattern.match('one12twothree34four', 3, 10) # 从'1'的位置开始匹配,正好匹配
>>> print( m )                                        # 返回一个 Match 对象
<_sre.SRE_Match object at 0x10a42aac0>
>>> m.group(0)   # 可省略 0
'12'
>>> m.start(0)   # 可省略 0
3
>>> m.end(0)     # 可省略 0
5
>>> m.span(0)    # 可省略 0
(3, 5)

5、 findall

在这里插入图片描述

import re
 
result1 = re.findall(r'\d+','runoob 123 google 456')
 
pattern = re.compile(r'\d+')   # 查找数字
result2 = pattern.findall('runoob 123 google 456')
result3 = pattern.findall('run88oob123google456', 0, 10)
 
print(result1)
print(result2)
print(result3)

多个匹配模式,返回元组列表:

import re

result = re.findall(r'(\w+)=(\d+)', 'set width=20 and height=10')
print(result)

6、re.finditer

在这里插入图片描述

7、re.split

在这里插入图片描述

import re

# 分割字符串
result = re.split(r'\s+', 'Splitting    this string   by spaces')
print(result)
# 输出: ['Splitting', 'this', 'string', 'by', 'spaces']

# 指定最大分割次数为1
result_with_limit = re.split(r'\s+', 'Splitting    this string   by spaces', maxsplit=1)
print(result_with_limit)
# 输出: ['Splitting', 'this string   by spaces']

8、表达式对象

在这里插入图片描述

9、表达式和正则表达式修饰符 - 可选标志

链接

二十、链接数据库mysql

1、创建链接

安装mysql连接包

在这里插入图片描述

在这里插入图片描述

2、创建数据库

在这里插入图片描述

查看数据库是否存在

在这里插入图片描述

3、创建数据库表

在这里插入图片描述

查看数据表是否存在

在这里插入图片描述

主键设置

在这里插入图片描述

4、插入数据

在这里插入图片描述

批量插入

在这里插入图片描述

获取插入id

在这里插入图片描述

5、查询数据

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6、防止sql注入

在这里插入图片描述

7、删除

在这里插入图片描述
在这里插入图片描述

8、修改

在这里插入图片描述

9、删除表

在这里插入图片描述

二十一、xml解析

1、使用 ElementTree 解析 xml

在这里插入图片描述

示例

在这里插入图片描述
在这里插入图片描述

2、使用 SAX 解析 xml

在这里插入图片描述

示例

在这里插入图片描述

3、使用xml.dom解析xml

在这里插入图片描述

二十二、json解析

1、解释

在这里插入图片描述

2、类型

在这里插入图片描述

3、解析和转换

在这里插入图片描述

4、json文件

在这里插入图片描述

二十三、页面url获取元素 http请求

1、读取

在这里插入图片描述

逐行读取 + 请求路径编码与解码

在这里插入图片描述

2、模拟请求头

在这里插入图片描述

3、提交表单

在这里插入图片描述
在这里插入图片描述

4、由于read方法后是bytes类型,输出转换

import urllib.request
import urllib.parse
if __name__ == '__main__':
    url = 'https://www.runoob.com/try/py3/py3_urllib_test.php'  # 提交到表单页面
    data = {'name': 'RUNOOB', 'tag': '菜鸟教程'}  # 提交数据
    header = {
        'User-Agent': 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
    }  # 头部信息
    data = urllib.parse.urlencode(data).encode('utf8')  # 对参数进行编码,解码使用 urllib.parse.urldecode
    request = urllib.request.Request(url, data, header)  # 请求处理
    response=urllib.request.urlopen(request).read()      # 读取结果
    print(response.decode("utf-8"))

5、urllib.error

在这里插入图片描述

6、urllib.parse解析

在这里插入图片描述

7、超时时间

import urllib.request

url = 'https://www.example.com'

try:
    response = urllib.request.urlopen(url, timeout=5)  # 设置超时时间为 5 秒
    # 处理响应的代码
    print(response.read())  # 读取响应内容示例
except urllib.error.URLError as e:
    print("Error:", e)

8、urllib.robotparser

在这里插入图片描述

二十四、调取http接口requests模块

1、使用

在这里插入图片描述

2、方法

在这里插入图片描述
在这里插入图片描述

3、request方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二十五、多线程

1、多线程

在这里插入图片描述

2、线程模块

在这里插入图片描述
在这里插入图片描述

3、线程同步

在这里插入图片描述

3、线程优先级队列( Queue)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ps:如果设置为10,put超过会阻塞,get为空也会阻塞

二十六、服务端暴漏接口uWSGI 安装配置

windows安装报错

链接

1、安装和简单使用

在这里插入图片描述

2、开启和关闭

2.1、菜鸟教程

在这里插入图片描述

在这里插入图片描述

2.2、配置文件

在这里插入图片描述

uwsgi.ini

[uwsgi]
socket=127.0.0.1:3034
chdir=/Users/calvin/work/myproject
virtualenv=/Users/calvin/.virtualenvs/myproject
module=django.core.handlers.wsgi:WSGIHandler()
env= DJANGO_SETTINGS_MODULE=myproject.settings
master=True
pidfile=/tmp/myproject-master.pid
vacuum=True
max-requests=5000
daemonize=/var/log/uwsgi/myproject.log

在这里插入图片描述

在这里插入图片描述

3、定义服务接口

在这里插入图片描述

4、使用flask直接充当服务器

在这里插入图片描述

python app.py

为什么可以直接充当服务器还需要uwsgi

在这里插入图片描述

5、flask知识

5.1 开启debug模式(修改免重启)

修改代码免重启
出现bug会出现在浏览器上

在这里插入图片描述
在这里插入图片描述

如果是社区版本就不是上述开启的 是修改代码

在这里插入图片描述

5.2 host局域网可以访问

在这里插入图片描述

5.3 port

记得空格

在这里插入图片描述

5.4 路径传参

在这里插入图片描述

类型限制

在这里插入图片描述
在这里插入图片描述

路径拼接例如?age=3,注意要引入request模块

在这里插入图片描述

5.5 请求方式

在这里插入图片描述

5.6、多个文件多个请求接口如何写

这个页面所有请求都必须带有/auth
在这里插入图片描述
再注册
在这里插入图片描述

6、页面渲染jinja2,跳转到对应页面

6.1、使用

在这里插入图片描述

在这里插入图片描述

6.2、过滤器

在这里插入图片描述

显示为:name-长度

6.3、自定义过滤器

在这里插入图片描述

在这里插入图片描述

6.4、控制语句

在这里插入图片描述

6.5 继承

在这里插入图片描述

替换继承中的文字内容(例如详情内容不一样)
在这里插入图片描述

在这里插入图片描述

6.6、静态资源

在这里插入图片描述

6.7 钩子函数

ps:只看注解就行


在这里插入图片描述

在这里插入图片描述

7、 flask更多入门

链接

二十七、Python hashlib 模块(加密)

在这里插入图片描述

1、 常用方法

在这里插入图片描述

2、哈希对象方法

在这里插入图片描述

3、常见哈希算法

在这里插入图片描述

4、方法

在这里插入图片描述

二十八、饼图pyecharts 模块

1、安装

pip install pyecharts

查看版本

import pyecharts
print(pyecharts.__version__)

2、pyecharts 图表类型

在这里插入图片描述

3、创建第一张图表

在这里插入图片描述

4、设置图标配置选项

在这里插入图片描述

5、使用主题

在这里插入图片描述
在这里插入图片描述

6、设置全局配置选项

在这里插入图片描述

二十九、pip

在这里插入图片描述

三十、日期

1、时间戳

在这里插入图片描述

2、时间元组

在这里插入图片描述

3、获取当前时间

在这里插入图片描述

4、格式化时间

在这里插入图片描述
在这里插入图片描述

5、获取某月日历

在这里插入图片描述

6、time函数

日期函数

备忘录

1、not 相反

msg =None
print(not msg != None)

2、判断空

 msg =[]
 print(not msg)

3、方法参数和返回值类型注释

def test(a: 注释类型 = 1, b: 注释类型) -> 返回值类型
return a + b

def test(a: int = 1, b: str) -> int
 return a + b

4、全局设置镜像源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 局部安装使用指定镜像源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名

5、升级pip

python -m pip install --upgrade pip

6、追加环境变量

在这里插入图片描述

7、enumerate内置函数

my_list = ['apple', 'banana', 'orange']

for index, value in enumerate(my_list, start=1):
    print(f"Index {index}: {value}")

在这里插入图片描述

8、json转对象

import json

# 定义一个 Person 类来表示 JSON 中的数据结构
class Person:
    def __init__(self, name, age, city):
        self.name = name
        self.age = age
        self.city = city

# JSON 数据
json_data = '{"name": "John", "age": 30, "city": "New York"}'

# 将 JSON 转换为 Python 对象
data_dict = json.loads(json_data)

# 创建 Person 类的实例
person = Person(data_dict['name'], data_dict['age'], data_dict['city'])

# 访问实例的属性
print(person.name)  # 输出: John
print(person.age)   # 输出: 30
print(person.city)  # 输出: New York

文章来源:https://blog.csdn.net/weixin_49390750/article/details/134590717
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。