if __name__ == "__main__":
'''
使用main+回车即可
'''
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(字典)
a = b = c = 1
isinstance()
type()
isinstance 和 type 的区别在于:
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。
也可以aa = {“zzz”:“zzz”}
range()函数
其中range(5,10)有5没10
None为java的null
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
import types
# 是否为函数类型
print(isinstance(operation, types.FunctionType) )
# 是否为int类型
print(isinstance(operation, int) )
# 是否为str类型和int类型
print(isinstance(operation, (int, str)) )
__name__
属性
会执行下面的
__name__
方法
返回写入字数
写非文字
单行读
读取多行
写入
读取
__init__()
与java不同的是它支持多继承
私有属性如何去掉
Money = 2000
def AddMoney():
# 想改正代码就取消以下注释:
global Money
Money = Money + 1
print(Money)
return Money
#!/usr/bin/python3
def outer():
num = 10
def inner():
nonlocal num # nonlocal关键字声明
num = 100
print(num)
inner()
print(num)
outer()
全局
局部
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 等。
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
re.search 扫描整个字符串并返回第一个成功的匹配。
#!/usr/bin/python3
import re
print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配
print(re.search('com', 'www.runoob.com').span()) # 不在起始位置匹配
#!/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))
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)
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)
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']
安装mysql连接包
查看数据库是否存在
查看数据表是否存在
主键设置
批量插入
获取插入id
示例
示例
逐行读取 + 请求路径编码与解码
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"))
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)
ps:如果设置为10,put超过会阻塞,get为空也会阻塞
windows安装报错
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
python app.py
为什么可以直接充当服务器还需要uwsgi
修改代码免重启
出现bug会出现在浏览器上
如果是社区版本就不是上述开启的 是修改代码
记得空格
类型限制
路径拼接例如?age=3,注意要引入request模块
这个页面所有请求都必须带有/auth
再注册
显示为:name-长度
替换继承中的文字内容(例如详情内容不一样)
ps:只看注解就行
前
后
pip install pyecharts
查看版本
import pyecharts
print(pyecharts.__version__)
msg =None
print(not msg != None)
msg =[]
print(not msg)
def test(a: 注释类型 = 1, b: 注释类型) -> 返回值类型
return a + b
def test(a: int = 1, b: str) -> int
return a + b
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 局部安装使用指定镜像源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名
python -m pip install --upgrade pip
my_list = ['apple', 'banana', 'orange']
for index, value in enumerate(my_list, start=1):
print(f"Index {index}: {value}")
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