🌠setup
安装
python.org
🐷helloworld
if __name__ == '__main__':
print('helloworld')
python test.py
var
变量
if __name__ == '__main__':
company, date, *others = ['hi', '20240521', '000', '11111']
print(company, date)
print(others)
random
随机
i = 0
rand_list = []
while i < 4:
rand_num = random.randint(0, 499)
if rand_num not in rand_list:
rand_list.append(rand_num)
i += 1
print(rand_list)
list
列表 可变
# 创建一个空列表
my_list = []
# 向列表中添加元素
my_list.append(1)
my_list.append(2)
my_list.append(3)
print(my_list) # 输出: [1, 2, 3]
# 修改列表中的元素
my_list[1] = 'two'
print(my_list) # 输出: [1, 'two', 3]
# 列表切片
sub_list = my_list[1:3]
print(sub_list) # 输出: ['two', 3]
# 删除列表中的元素
del my_list[2]
print(my_list) # 输出: [1, 'two']
# 创建一个包含0到9的偶数列表
even_numbers = [i for i in range(10) if i % 2 == 0]
print(even_numbers) # 输出: [0, 2, 4, 6, 8]
tuple
元组 不可变
# 创建一个元组
my_tuple = (1, 'two', 3.0)
print(my_tuple) # 输出: (1, 'two', 3.0)
# 尝试修改元组中的元素(会抛出TypeError)
## my_tuple[1] = 'Two' # 这行代码会报错,因为元组是不可变的
# 元组切片(虽然元组不可变,但你可以获取它的切片)
sub_tuple = my_tuple[1:]
print(sub_tuple) # 输出: ('two', 3.0)
if else
判断
age =5
if age >= 6:
print('teenager')
elif age >= 20:
print('old')
else:
print('kid')
calculator
计算器
def add(x, y):
"""加法"""
return x + y
def subtract(x, y):
"""减法"""
return x - y
def multiply(x, y):
"""乘法"""
return x * y
def divide(x, y):
"""除法"""
if y == 0:
return "错误:除数不能为0"
else:
return x / y
print("选择操作:")
print("1.加法")
print("2.减法")
print("3.乘法")
print("4.除法")
while True:
choice = input("请输入你的选择(1/2/3/4): ")
if choice in ('1', '2', '3', '4'):
num1 = float(input("请输入第一个数字: "))
num2 = float(input("请输入第二个数字: "))
if choice == '1':
print(num1, "+", num2, "=", add(num1, num2))
elif choice == '2':
print(num1, "-", num2, "=", subtract(num1, num2))
elif choice == '3':
print(num1, "*", num2, "=", multiply(num1, num2))
elif choice == '4':
result = divide(num1, num2)
print(num1, "/", num2, "=", result)
# 检查用户是否想继续计算
next_calculation = input("想要进行下一次计算吗?(yes/no): ")
if next_calculation.lower() != 'yes':
break
else:
print("非法输入,请重新输入")
match
py的switch
args = ['gcc', 'hello.c', 'world.c']
# args = ['clean']
#args = ['12']
match args:
# 如果仅出现gcc,报错:
case ['gcc']:
print('gcc: missing source file(s).')
# 出现gcc,且至少指定了一个文件:
case ['gcc', file1, *files]:
print('gcc compile: ' + file1 + ', ' + ', '.join(files))
# 仅出现clean:
case ['clean']:
print('clean')
case _:
print('invalid command.')
age = 19
match age:
case x if x < 10:
print(f'< 10 years old: {x}')
case 10:
print('10 years old.')
case 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18:
print('11~18 years old.')
case 19:
print('19 years old.')
case _:
print('not sure.')
fro
循环
names = ['a1', 'b2', 'c3']
for name in names:
print('Hi '+ name)
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum)
function
函数
def my_abs(x):
if x >= 0:
return x
else:
return -x
def my_fun( x,y ):
return x,y
print(my_abs(11))
print(my_abs(-11))
print(my_fun(11,22))
x1,y2 = my_fun(11,22)
print(x1)
def myfn(numbers):
sum = 0
for n in numbers:
sum = sum + n # * n
return sum
print(myfn([1, 2, 3, 4, 5, 6, 7, 8, 9,10]))
map
迭代
def f(n):
return n * 2
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
r = map(f, nums)
print(list(r))
ERR
IndentationError: unexpected indent
存在不正确的缩进
reduce
迭代前两个元素通过函数处理,得到的结果再与第三个元素通过函数处理,依此类推
from functools import reduce
def add(x, y):
return x + y
numbers = [1, 2, 3, 4, 5]
sum_of_numbers = reduce(add, numbers)
print(sum_of_numbers)
filter
过滤
def is_odd(n):
return n % 2 == 1
print(list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])))
sorted
排序
arr = [33,12,-22,1,12]
print(sorted(arr))
lambda
匿名
#匿名函数
square = lambda x: x**2
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(square, numbers))
print(squared_numbers)
module class
模块 类
#module
def greet(name):
print(f"Hello, {name}!")
def add_numbers(a, b):
return a + b
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print(f"My name is {self.name} and I am {self.age} years old.")
import
import module
module.greet("m1")
result = module.add_numbers(10, 20)
person = module.Person("m2", 11)
person.introduce()
pip install xx
pip install FastAPI
#pip3 install FastAPI
import
from fastapi import FastAPI
#...
extends override
继承 多态
class Animal:
def __init__(self, name):
self.name = name
#extends
def speak(self):
pass
class Dog(Animal):
def speak(self):
return f'{self.name} says wang!'
class Cat(Animal):
def speak(self):
return f'{self.name} says miao!'
#override
def animal_sound(animal):
print(animal.speak())
dog = Dog('wangcai')
cat = Cat('afu')
animal_sound(dog)
animal_sound(cat)
class Animal:
def __init__(self, name):
self.name = name
class Swimmer:
def swim(self):
return f"{self.name} is swimming."
class Flyer:
def fly(self):
return f"{self.name} is flying."
class Duck(Animal, Swimmer, Flyer):
pass
gaga = Duck("Gaga")
print(gaga.swim())
print(gaga.fly())
Version
import sys
print(sys.version)
major_ver = sys.version_info.major
minor_ver = sys.version_info.minor
micro_ver = sys.version_info.micro
print(f"Python version:{major_ver}.{minor_ver}.{micro_ver}")
🐶sql
sqlite
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS stocks
(date text, trans text, symbol text, qty real, price real)''')
c.execute("INSERT INTO stocks VALUES ('2024-04-25','BUY','P1',100,150.00)")
conn.commit()
c.execute("INSERT INTO stocks VALUES (?,?,?,?,?)", ('2024-04-24','SELL','P2',50,300.00))
c.execute("SELECT * FROM stocks WHERE symbol = 'P1'")
print(c.fetchone())
print("-----")
c.execute("SELECT * FROM stocks")
for row in c.fetchall():
print(row)
c.close()
conn.close()
mysql
pip install mysql-connector-python
import mysql.connector
from mysql.connector import Error
def connect_and_query():
try:
# 连接到 MySQL 数据库
connection = mysql.connector.connect(
port= '30306',
host='localhost', # 数据库主机地址
user='root', # 数据库用户名
password='123123', # 数据库密码
database='dbtest' # 数据库名称
)
if connection.is_connected():
print("Successfully connected to the database")
# 创建一个游标对象
cursor = connection.cursor()
# 执行 SQL 查询
query = "SELECT * FROM `tuser`"
cursor.execute(query)
# 获取查询结果
results = cursor.fetchall()
# 遍历结果并打印
for row in results:
print(row)
except Error as e:
print(f"Error: {e}")
finally:
if connection.is_connected():
cursor.close()
connection.close()
print("MySQL connection is closed")
if __name__ == "__main__":
connect_and_query()
🐣await async
异步
import asyncio
import time
async def async_func1():
print("start async_func1...")
await asyncio.sleep(2) #sleep
print("async_func1 end")
async def async_func2():
print("start async_func2...")
await asyncio.sleep(3)
print("async_func2 end")
async def main():
task1 = asyncio.create_task(async_func1())
task2 = asyncio.create_task(async_func2())
print("2tasks created...")
await task1 #await
await task2
print("tasks end")
start_time = time.time()
asyncio.run(main())
end_time = time.time()
print(f" done : {end_time - start_time}s")
🐵Requests
Web Scraping
import requests
from bs4 import BeautifulSoup
url = "https://www.python.org/"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
print(soup.title.text)
csdn
import requests
from bs4 import BeautifulSoup
url = 'https://www.csdn.net/'
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
hot_topics = soup.find_all('div', class_='headswiper-item')
#soup.select('.hot-news .news-item') #soup.find_all('div', class_='headswiper-item')
for topic in hot_topics:
print(topic.text)
else:
print('Failed to retrieve ')
tiobe
import requests
from bs4 import BeautifulSoup
def get_tiobe_rankings():
url = "https://www.tiobe.com/tiobe-index/"
response = requests.get(url)
if response.status_code != 200:
raise Exception(f"Failed to load page {url}")
soup = BeautifulSoup(response.content, 'html.parser')
# Find the table containing the rankings
table = soup.find('table', {'class': 'table-top20'})
if not table:
raise Exception("Failed to find the rankings table on the page")
# Extracting data from the table
rankings = []
rows = table.find_all('tr')[1:] # Skip the header row
for row in rows:
cols = row.find_all('td')
rank = cols[0].text.strip()
language = cols[3].text.strip()
ratings = cols[4].text.strip()
change = cols[5].text.strip()
rankings.append({
'Rank': rank,
'Language': language,
'Ratings': ratings,
'Change': change
})
return rankings
if __name__ == "__main__":
rankings = get_tiobe_rankings()
for rank in rankings:
print(f"Rank: {rank['Rank']}, Language: {rank['Language']}, Ratings: {rank['Ratings']}, Change: {rank['Change']}")
pip install requests beautifulsoup4
#pip install BeautifulSoup4
requests库
如果没有安装,可以使用pip install requests来安装
ERR
Could not install packages due to an OSError: [WinError 2] 系统找不到指定的文件。: 'C:\Python312\Scripts\no
#update
python -m pip install --upgrade pip
#cache
pip cache purge
REST APIs get/post
GET, POST
import requests
# get
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
print(response.json())
# post
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=data)
print(response.json())
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 设置邮件服务器和端口
smtp_server = 'smtp.qq.com'
smtp_port = 25
# 设置发件人和收件人信息
sender_email = '42@qq.com' # 邮箱地址
sender_password = 'lpoumq' # 密码
receiver_email = '76@qq.com' # 收件人邮箱地址
msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = receiver_email
msg['Subject'] = 'Hello from Python'
body = 'This is a test email sent from Python. mmmmmmm '
msg.attach(MIMEText(body, 'plain'))
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(sender_email, sender_password)
# 发送邮件
server.sendmail(sender_email, receiver_email, msg.as_string())
print('Email sent successfully!')
🐴socket
client
import socket
def connect_to_socket(host, port):
# 创建一个新的socket对象,指定IPv4和TCP
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
try:
client_socket.connect((host, port))
print(f"成功连接到 {host}:{port}")
message = "Hello, Server!".encode('utf-8')
client_socket.sendall(message)
# 接收数据
data = client_socket.recv(1024)
print(f"从服务器接收到的数据: {data.decode('utf-8')}")
except Exception as e:
print(f"连接失败: {e}")
finally:
# 关闭socket连接
client_socket.close()
connect_to_socket('localhost', 6001)
server
import socket
def start_server(host, port):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定socket到指定的地址和端口
server_address = (host, port)
print(f"服务器将运行在 {host}:{port}")
server_socket.bind(server_address)
# 开始监听连接
server_socket.listen(1)
while True:
print("等待客户端连接...")
connection, client_address = server_socket.accept()
try:
print(f"客户端 {client_address} 已连接")
# 接收数据
while True:
data = connection.recv(1024)
if not data:
print("客户端已断开连接")
break
print(f"从 {client_address} 接收到的数据: {data.decode('utf-8')}")
# 发送一些数据回客户端
response = "Hello from server!".encode('utf-8')
connection.sendall(response)
except ConnectionResetError:
print("客户端异常断开连接")
finally:
# 清理连接
connection.close()
start_server('localhost', 6002)
🐍docker
server
# testdk.py
import socket
def run_server():
host = '0.0.0.0' # 监听所有网络接口
port = 12345 # 自定义端口号
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((host, port))
s.listen()
print(f"Server listening on {host}:{port}")
while True:
conn, addr = s.accept()
with conn:
print(f"Connected by {addr}")
data = conn.recv(1024)
if not data:
break
conn.sendall(data)
if __name__ == "__main__":
run_server()
Dockerfile
# Dockerfile
FROM python:3.8-slim-buster
WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "./testdk.py"]
build
docker build -t my-python-socket-server .
run
docker run -d -p 12345:12345 my-python-socket-server
client test
# testdkclient2.py
import socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect(('localhost', 12345))
s.sendall(b'Hello, Server!mmmm')
data = s.recv(1024)
print('Received', repr(data))
🐲Graphics
Turtle
# 导入turtle包的所有内容:
from turtle import *
# 设置笔刷宽度:
width(5)
# 前进:
forward(100)
# 右转90度:
right(90)
# 笔刷颜色:
pencolor('yellow')
forward(150)
right(90)
pencolor('red')
forward(100)
right(90)
pencolor('blue')
forward(100)
right(90)
# 调用done()使得窗口等待被关闭,否则将立刻关闭窗口:
done()
import turtle
# 初始化turtle
window = turtle.Screen()
window.bgcolor("white") # 设置背景颜色为黑色
love = turtle.Turtle()
love.speed(1) # 设置绘图速度,1是最慢,0是最快
love.color("red", "pink") # 设置画笔颜色和填充颜色
love.begin_fill() # 开始填充颜色
# 绘制爱心的左半部分
love.left(140)
love.forward(180)
love.circle(-100, 200) # 绘制一个半径为100,弧度为200的圆(圆心在左侧)
# 绘制爱心的右半部分
love.left(120)
love.circle(-100, 200) # 绘制一个半径为100,弧度为200的圆(圆心在右侧)
# 回到起点并结束填充
love.forward(180)
love.end_fill()
# 隐藏turtle图标
love.hideturtle()
# 结束绘制,等待用户关闭窗口
turtle.done()
tkinter
import tkinter as tk
def on_closing():
root.destroy() # 当点击关闭按钮时调用
root = tk.Tk()
root.protocol("WM_DELETE_WINDOW", on_closing)
label = tk.Label(root, text="Hello, Tkinter!")
label.pack()
root.mainloop()
下班!
import tkinter as tk
from tkinter import messagebox
from datetime import datetime, timedelta
import time
def validate_time(input_time):
"""验证输入的时间格式是否正确"""
try:
time.strptime(input_time, '%H:%M:%S')
return True
except ValueError:
return False
def start_countdown():
input_time = entry.get()
if validate_time(input_time):
target_time = datetime.strptime(input_time, '%H:%M:%S')
today = datetime.combine(datetime.today(), datetime.min.time())
target_datetime = datetime.combine(today, target_time.time())
if target_datetime < datetime.now():
target_datetime += timedelta(days=1)
def update_countdown():
now = datetime.now()
remaining_time = target_datetime - now
if remaining_time.total_seconds() <= 0:
label.config(text="下班!头也不回")
messagebox.showinfo("Timer", "下班!头也不回")
else:
hours, remainder = divmod(remaining_time.seconds, 3600)
minutes, seconds = divmod(remainder, 60)
label.config(text=f"{hours:02d}:{minutes:02d}:{seconds:02d}")
window.after(1000, update_countdown) # timeout
update_countdown()
else:
messagebox.showerror("Error", "时间必须是 HH:MM:SS.")
# window
window = tk.Tk()
window.title("下班!头也不回")
window.geometry("400x300")
# Entry
tk.Label(window, text="下班时间 > HH:MM:SS :").pack()
entry = tk.Entry(window)
entry.pack()
# Button
start_button = tk.Button(window, text="开始摸鱼🐟", command=start_countdown)
start_button.pack()
start_button.pack(pady=10)
label = tk.Label(window, text="", font=("Helvetica", 48))
label.pack(pady=20)
window.mainloop()
🐇opencv
pip install opencv-python
import cv2
#read
image = cv2.imread('e1.jpg')
if image is None:
print("Error: Image not found or unable to read.")
else:
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite('output.jpg', image)
#反色处理
inverted_image = cv2.bitwise_not(image)
Pillow PIL
图像处理库
pip install Pillow
from PIL import Image
# 加载图片
image = Image.open('e1.jpg')
image.show()
# 缩放到宽度为300,高度等比例缩放
image = Image.open('e1.jpg')
image_resized = image.resize((300, image.height * 300 // image.width))
# save
image_resized.save('resized240525.jpg')
# 转换成PNG格式
image = Image.open('e1.jpg')
image.save('png240525.png', format='PNG')
# 转换成PNG格式
image = Image.open('png240525.png')
image.save('j240525.jpg', format='jpeg')
# 裁剪图片,参数是左上角和右下角的坐标
image = Image.open('e1.jpg')
cropped_image = image.crop((100, 100, 400, 400))
cropped_image.show()
cropped_image.save('cropped_image240525.jpg')
# 顺时针旋转90度
image = Image.open('e1.jpg')
rotated_image = image.rotate(90)
rotated_image.show()
rotated_image.save('rotated_image240525.jpg')
from PIL import Image, ImageFilter
#模糊滤镜
image = Image.open('e1.jpg')
blurred_image = image.filter(ImageFilter.BLUR)
blurred_image.show()
blurred_image.save('blurred_image240525.jpg')
🐯PyTorch
机器学习
pip install torch torchvision
pip install pillow
import torch
import torchvision.transforms as transforms
from torchvision.models import resnet50
from PIL import Image
# ResNet50
model = resnet50(pretrained=True)
model.eval() #eval
# transform
transform = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])
# PIL
image_path = 'e1.jpg'
image = Image.open(image_path)
# transform image
image_tensor = transform(image)
image_tensor = image_tensor.unsqueeze(0) # 添加batch维度
# tensor
output = model(image_tensor)
# predictedclass
_, pred = output.max(1)
predicted_class = pred.item()
print("Predicted class index:", predicted_class)
🐂web
# 从wsgiref模块导入:
from wsgiref.simple_server import make_server
# 导入我们自己编写的application函数:
from hi import application
# 创建一个服务器,IP地址为空,端口是8000,处理函数是application:
httpd = make_server('', 8000, application)
print('Serving HTTP on port 8000...')
# 开始监听HTTP请求:
httpd.serve_forever()
#hi.py
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return [b'<h1>Hello, web!</h1>']
flask
pip install flask
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def home():
return '<h1>Home</h1>'
@app.route('/login', methods=['GET'])
def signin_form():
return '''<form action="/login" method="post">
<p><input name="username"></p>
<p><input name="password" type="password"></p>
<p><button type="submit">Sign In</button></p>
</form>'''
@app.route('/login', methods=['POST'])
def signin():
# 需要从request对象读取表单内容:
if request.form['username']=='admin' and request.form['password']=='123123':
return '<h3>Hello, admin!</h3>'
return '<h3>Bad username or password.</h3>'
if __name__ == '__main__':
app.run()
fastapi
pip install fastapi uvicorn[standard]
#y.p
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
uvicorn y:app --reload
http://127.0.0.1:8000/ {"Hello": "World"},
http://127.0.0.1:8000/items/5?q=m {"item_id": 5, "q": "m"}
🐭debian setup python3.9
sudo apt update
sudo apt install -y wget build-essential libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
#dl
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
sudo tar xzf Python-3.9.0.tgz
cd Python-3.9.0
sudo ./configure --enable-optimizations
sudo make -j 4 # 替换4为你的CPU核心数
sudo make altinstall # 使用altinstall以避免覆盖系统默认的python版本
python3.9 --version
ubuntu python
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev
wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz
tar -xzf Python-3.12.0.tgz -C /usr/local/src/
cd /usr/local/src/Python-3.12.0/
./configure --prefix=/usr/local
make
sudo make install
☄️ai
spark_ai
讯飞星火认知大模型v3.5
apt install python3-pip
pip install --upgrade spark_ai_python
# coding: utf-8
import SparkApi
import time
appid = "xxx" #填写控制台中获取的 APPID 信息
api_secret = "xxx" #填写控制台中获取的 APISecret 信息
api_key ="xxx" #填写控制台中获取的 APIKey 信息
domain = "generalv3.5"
Spark_url = "wss://spark-api.xf-yun.com/v3.5/chat" # v3.5环服务地址
#初始上下文内容,当前可传system、user、assistant 等角色
text =[
# {"role": "user", "content": "你是谁"}, # 用户的历史问题
]
def getText(role,content):
jsoncon = {}
jsoncon["role"] = role
jsoncon["content"] = content
text.append(jsoncon)
return text
def getlength(text):
length = 0
for content in text:
temp = content["content"]
leng = len(temp)
length += leng
return length
def checklen(text):
while (getlength(text) > 8000):
del text[0]
return text
if __name__ == '__main__':
while(1):
Input = input("\n" +"我:")
question = checklen(getText("user",Input))
SparkApi.answer =""
print("星火:",end ="")
SparkApi.main(appid,api_key,api_secret,Spark_url,domain,question)
# print(SparkApi.answer)
getText("assistant",SparkApi.answer)
ERNIE-4.0
千帆4.0
import requests
import json
def get_access_token():
url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=xx&client_secret=xx"
payload = json.dumps("")
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
return response.json().get("access_token")
def main():
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-4.0-8k-preview?access_token=" + get_access_token()
payload = json.dumps({
"messages": [
{
"role": "user",
"content": "Python是最好的语言"
}
]
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
if __name__ == '__main__':
main()
python3 ai.py
{"id":"as-7bdgaekpn4","object":"chat.completion","created":1716369031,"result":"\"Python是最好的语言\"这一说法是主观的,并不适用于所有情况。Python确实是一种强大且流行的编程语言,具有许多优点,但它并不一定是所有情况下的最佳选择。以下是对这一说法的详细分析:\n\n### Python的优点:\n\n1. **易读易写**:Python的语法清晰简洁,易于理解,这使得它成为初学者和专业开发者都喜爱的语言。\n\n2. **广泛的库和框架**:Python有大量的第三方库和框架可供使用,如NumPy、Pandas、TensorFlow等,这些库使得Python在数据科学、Web开发、机器学习等领域具有显著优势。\n\n3. **跨平台兼容性**:Python可以在多种操作系统上运行,包括Windows、macOS和Linux。\n\n4. **动态类型系统**:Python是动态类型的语言,这意味着开发者不需要在声明变量时指定其类型,这增加了编程的灵活性。\n\n### Python的局限性:\n\n1. **性能**:与C++或Java等编译型语言相比,Python在执行速度上可能较慢,尤其是在处理大量数据或进行复杂计算时。\n\n2. **类型安全**:由于Python是动态类型的,这可能导致类型错误在运行时才被发现,而不是在编译阶段。\n\n3. **移动开发限制**:虽然Python可以用于开发Web应用和桌面应用,但它在移动应用开发(如iOS和Android应用)方面并不是主流选择。\n\n4. **内存消耗**:Python的内存管理可能不如某些其他语言高效,特别是在处理大量数据时。\n\n### 结论:\n\nPython是否是最好的语言取决于具体的使用场景和需求。对于数据科学、Web开发、脚本编写和自动化任务等,Python确实是一个出色的选择。然而,在需要高性能计算、内存优化或特定于移动平台的开发任务中,其他语言可能更为合适。\n\n因此,\"Python是最好的语言\"这一说法是片面的。在选择编程语言时,应根据项目的具体需求和上下文来做出决策。","is_truncated":false,"need_clear_history":false,"finish_reason":"normal","usage":{"prompt_tokens":3,"completion_tokens":403,"total_tokens":406}}
End