python范围

news2025/1/17 0:54:07

用户图形界面-工资计算器

from tkinter import *


def f():
    w = int(e1.get()) + int(e2.get()) - int(e3.get())
    wage.insert(0,w)


root = Tk()
root.title("工资计算器")
Label(root, text="每月基本工资:").pack()
e1 = Entry(root)
e1.pack()
Label(root, text="补助工资:").pack()
e2 = Entry(root)
e2.pack()
Label(root, text="考勤扣款:").pack()
e3 = Entry(root)
e3.pack()
Button(root, text="计算", command=f).pack()
Label(root, text="实发工资:").pack()
wage=Entry(root)
wage.pack()
root.mainloop()
  1. 使用tk方法创建一个窗口类型root,并且给该窗口命名为工资计算器
  2. 用Label标签创建每月基本工资,补助工资,考勤扣款这几个标签,pack方法是将这几个标签放到窗口里
  3. 用Entry方法在root里创建输入框,并且将输入框创建在窗口里边
  4. 用Button方法创建一个按钮,与f方法绑定
  5. root.mainloop()显示窗口

政府工作报告-词云图

from PIL import Image
from wordcloud import WordCloud
import jieba
import numpy as np
#2、读取文本并分词
text = open("2023政府工作报告.txt","rb").read()
ss=" ".join(jieba.lcut(text))
mask=np.array(Image.open("ChinaMap.png"))
#3、配置词云参数,生成词云
wc = WordCloud(
    font_path="fonts/msyh.ttc",
    background_color = "white",
    max_words=300,
    mask =mask,
    max_font_size = 200,height=400,width=854,
stopwords={"的", "了", "是", "在", "和", "有", "一个", "与", "我", "我们", "你", "他", "她", "它", "这个", "那个", "对于",
            "因为", "所以", "如果", "如何", "这样", "但", "只有", "而", "也", "更加", "去", "将", "可以", "大", "小", "非常",
            "不仅", "更", "是的", "以及", "而且", "关于", "当", "能", "这些", "这些", "自己", "需要", "当时", "某些", "任何",
            "本", "此", "更", "过", "一些", "同样", "两", "三", "四", "五", "十", "不", "多", "少", "起来", "之前", "之后"},
colormap="Reds",contour_width=8,contour_color="red")
wc.generate(ss)
#4、生成图片并显示
wc.to_image( )
wc.to_file("C:/Users/Administrator/Desktop/new.png")
  1. 首先,导包
  2. 打开政府工作报告文件,并且读取文本存入text
  3. 使用jieba分词,生成字符串并使用空格连接,存入ss
  4. mask是使用该图像作为模板
  5. 创建一个词云示例wc,使用Wordcloud方法,并且定义font,background_color,max_words,mask,stopwords
  6. colormap为红色映射,后面两个设置词云的宽度和颜色
  7. wc.generate(ss)生成词云
  8. 展示图像并保存

七日天气-爬虫

#日期、天气如何、温度、风向、风速
import requests
from bs4 import BeautifulSoup
import time
import xlsxwriter
# 请求网页
def page_request(url, ua):
    response = requests.get(url=url, headers=ua)
    html = response.content.decode('utf-8')
    return html
# 解析网页
def page_parse(html):
    soup = BeautifulSoup(html, 'lxml')
    date = soup.select('#\\37 d > ul > li> h1')
    wendu_high = soup.select('#\\37 d > ul > li > p.tem > span')
    wendu_low = soup.select('#\\37 d > ul > li > p.tem > i')
    tianqi = soup.select('#\\37 d > ul > li > p.wea')
    fenxiang = soup.select('#\\37 d > ul > li > p.win > em > span')
    fengsu = soup.select('#\\37 d > ul > li > p.win > i')

    workbook= xlsxwriter.Workbook('tianqi.xlsx')
    #添加工作表
    worksheet=workbook.add_worksheet('data')
    headers=['日期','温度','天气','风向','风速']
    for col_num,headers in enumerate(headers):
        worksheet.write(0,col_num,headers)
    for i in range(6):
        						print(date[i].get_text()+'\t'+wendu_low[i].get_text()+'\t'+wendu_high[i].get_text()+'\t'+tianqi[i].get_text()+'\t'+fenxiang[i].get_text()+'\t'+fengsu[i].get_text())
        data=[date[i].get_text(),wendu_low[i].get_text()+'-'+wendu_high[i].get_text(),tianqi[i].get_text(),fenxiang[i].get_text(),fengsu[i].get_text()]
        for col_num,value in enumerate(data):
            worksheet.write(i+1,col_num,value)
    workbook.close()
if __name__ == "__main__":
    print('**************开始爬取七日天气**************')
    ua = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4421.5 Safari/537.36'}
    # 豆瓣电影Top250每页有25部电影,start就是每页电影的开头
    url = "https://www.weather.com.cn/weather/101180101.shtml"
    html = page_request(url=url, ua=ua)
    page_parse(html=html)
    #print('**************爬取完成**************')

分成三个部分

  1. 对网页的请求
  2. 解析网页,返回html
  3. 对html进行处理

详细叙述第三部分

  1. page_prase方法,首先soup = BeautifulSoup(html, 'lxml')将处理后的html保存在soup里边

  2. 然后使用soup.select方法将天气,最高最低温度,风速,风向,日期都创建变量进行保存

  3. 这一部分添加工作表并进行保存

    workbook= xlsxwriter.Workbook('tianqi.xlsx')
        #添加工作表
    worksheet=workbook.add_worksheet('data')
    headers=['日期','温度','天气','风向','风速']
    for col_num,headers in enumerate(headers):
        worksheet.write(0,col_num,headers)
    for i in range(6):
            						          print(date[i].get_text()+'\t'+wendu_low[i].get_text()+'\t'+wendu_high[i].get_text()+'\t'+tianqi[i].get_text()+'\t'+fenxiang[i].get_text()+'\t'+fengsu[i].get_text())
            data=[date[i].get_text(),wendu_low[i].get_text()+'-'+wendu_high[i].get_text(),tianqi[i].get_text(),fenxiang[i].get_text(),fengsu[i].get_text()]
            for col_num,value in enumerate(data):
                worksheet.write(i+1,col_num,value)
    
  4. 最后workbook.close()将该工作表进行保存

创建一个person类,输出hello

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def say_hello(self):
        print(f"Hello, my name is {self.name} and I am {self.age} years old.")

if __name__=="__main__":
    person1 = Person("Alice", 25)
    person1.say_hello()

整数列表按奇偶排序,并且从小到大



def key(list1,list2):
    list3=[]
    list4=[]
    for i in list1:
        if i%2==0:
            list3.append(i)
    for i in list2:
        if i%2==0:
            list3.append(i)
    for i in list1:
        if i%2!=0:
            list4.append(i)
    for i in list2:
        if i%2!=0:
            list4.append(i)
    list3=sorted(list3)
    list4=sorted(list4)
    print(list4+list3)


if __name__ == '__main__':
    list1=[1,5,8,2,22,9,7,20,25,24,99]
    list2=[111,112,113,114,115,116,117]
    key(list1,list2)

列表和元组的区别

列表(list)和元组(tuple)是 Python 中两种常用的数据结构,它们之间有以下几个主要区别:

1. 可变性

  • 列表(List)
    列表是可变的,可以修改元素的值、添加元素或删除元素。

    python复制代码lst = [1, 2, 3]
    lst[0] = 10  # 修改元素
    lst.append(4)  # 添加元素
    lst.remove(2)  # 删除元素
    print(lst)  # [10, 3, 4]
    
  • 元组(Tuple)
    元组是不可变的,一旦创建,不能修改其元素或结构。

    python复制代码tpl = (1, 2, 3)
    # tpl[0] = 10  # 会报错:TypeError: 'tuple' object does not support item assignment
    print(tpl)  # (1, 2, 3)
    

2. 性能

  • 元组因为不可变,所以在创建和访问时的性能通常比列表更高。
  • 如果需要处理大量不变的数据,使用元组更高效。

3. 用途

  • 列表更适合需要频繁修改数据的场景。
  • 元组更适合表示不可变的数据(如坐标、数据库记录)或作为函数返回多个值的容器。

4. 语法

  • 列表使用方括号

    []
    

    表示。

    python
    
    
    复制代码
    lst = [1, 2, 3]
    
  • 元组使用圆括号

    ()
    

    表示。如果元组只有一个元素,需加逗号。

    python复制代码tpl = (1, 2, 3)
    single_tpl = (1,)  # 单元素元组
    

异常+ZeroDivisionError

#解释python中的异常处理机制
# 1. 异常处理机制
# 在程序运行的过程中,可能会出现各种各样的异常,比如输入错误、文件操作失败等等。如果不对这些异常进行处理,程序将会终止运行,并给出错误提示。
# 为了避免程序终止运行,我们需要对可能出现的异常进行处理,并给出合适的提示信息。
# Python中提供了try...except...finally语句来处理异常。
# try语句用来包含可能出现异常的语句,except语句用来处理异常,finally语句用来执行一些清理工作,无论是否出现异常都会执行。
#演示代码如何捕获并处理ZeroDivisionError异常:

try:
    a = 1 / 0
except ZeroDivisionError:
    print("division by zero!")

# 运行上述代码,将会输出"division by zero!",说明程序正常运行,并捕获到了ZeroDivisionError异常。

画图

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import gridspec

# 定义函数 y = e^(2x) * cos(3πx + π/3)
def f(x):
    return np.exp(2 * x) * np.cos(3 * np.pi * x + np.pi / 3)

# 设置 x 的范围
x_range = np.linspace(0, 10)

# 创建图形,设置自定义布局
fig = plt.figure(figsize=(8, 12))

# 使用 gridspec 设置布局
gs = gridspec.GridSpec(2, 1, height_ratios=[2, 1])  # 上方大图占2/3, 下方小图占1/3

# 创建子图1:步长 0.2
ax1 = plt.subplot(gs[0])  # 上面的大图
x1 = np.arange(0, 10, 0.2)
y1 = f(x1)
ax1.plot(x1, y1, label='Step = 0.2', color='b', linestyle='-', marker='o')
ax1.set_title('Step Size = 0.2')
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax1.grid(True)
ax1.legend()

# 创建子图2和子图3:分别为步长 0.5 和 0.7,放在底部
gs2 = gridspec.GridSpecFromSubplotSpec(1, 2, subplot_spec=gs[1])  # 在底部创建两个子图

# 子图2:步长 0.5
ax2 = plt.subplot(gs2[0])
x2 = np.arange(0, 10, 0.5)
y2 = f(x2)
ax2.plot(x2, y2, label='Step = 0.5', color='g', linestyle='--', marker='x')
ax2.set_title('Step Size = 0.5')
ax2.set_xlabel('x')
ax2.set_ylabel('y')
ax2.grid(True)
ax2.legend()

# 步长 0.7
ax3 = plt.subplot(gs2[1])
x3 = np.arange(0, 10, 0.7)
y3 = f(x3)
ax3.plot(x3, y3, label='Step = 0.7', color='r', linestyle='-.', marker='s')
ax3.set_title('Step Size = 0.7')
ax3.set_xlabel('x')
ax3.set_ylabel('y')
ax3.grid(True)
ax3.legend()

# 调整布局
plt.tight_layout()

# 显示图形
plt.show()

数据分析

import  pandas as pd
import matplotlib.pyplot as plt

# 读取数据
df=pd.read_excel('sales.xlsx',parse_dates=['date'])
print(df.head())
# 按店铺分组并计算销售和利润的总和
store_sales=df.groupby("store")[["sales","profit"]].sum()
print(store_sales)

# 绘制柱状图
# 筛选出销售额大于200的记录
high_sales=df[df["sales"]>200]
print(high_sales)
# 按类别分组并计算利润的平均值
category_profit=df.groupby("category")["profit"].mean()
print(category_profit)
# 绘制各店铺总销售额的柱状图
store_sales["sales"].plot(kind="bar",figsize=(10,6),color="skyblue")
plt.title("Total Sales by Store")
plt.xlabel("Store")
plt.ylabel("Total Sales")
plt.show()

  1. 读取数据
  2. 计算销售和利润的总和
  3. 绘制柱状图,筛选出销售额大于200的记录
  4. 计算
  5. 绘制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2277778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CCLINKIE转ModbusTCP网关,助机器人“掀起”工业智能的“惊涛骇浪”

以下是一个稳联技术CCLINKIE转ModbusTCP网关(WL-CCL-MTCP)连接三菱PLC与机器人的配置案例:设备与软件准备设备:稳联技术WL-CCL-MTCP网关、三菱FX5UPLC、支持ModbusTCP协议的机器人、网线等。 稳联技术ModbusTCP转CCLINKIE网关&…

QT在 MacOS X上,如何检测点击程序坞中的Dock图标

最近在开发MacOS的qt应用,在做到最小化系统托盘功能时,发现关闭窗口后再次点击程序坞中的Dock图标不能将主界面再显示出来。查询里很多资料,发现是QT自身的问题,没有做相关的点击Dock图标的处理。 于是我参考了国内和国外的这两篇…

langchain4j执行源码分析

要做大模型应用,不可避免会接触到langchain,但是langchain本身使用py实现,对于java用户上手体验不是很友好。继而出现了java版的langchain,即langchain-4j。这里我们用脑图分析一下其执行源码。

【案例81】NMC调用导致数据库的效率问题

问题现象 客户在使用NC系统时,发现系统特别卡顿。需要紧急排查。 问题分析 排查NMC发现,所有的线程都处于执行SQL层面,说明数据库当前出现了异常。查看数据库资源状态发现,Oracle相关进程CPU利用率达到了100%。 查看现在数据库…

PyTorch框架——基于深度学习YOLOv5神经网络水果蔬菜检测识别系统

基于深度学习YOLOv5神经网络水果蔬菜检测识别系统,其能识别的水果蔬菜有15种,# 水果的种类 names: [黑葡萄, 绿葡萄, 樱桃, 西瓜, 龙眼, 香蕉, 芒果, 菠萝, 柚子, 草莓, 苹果, 柑橘, 火龙果, 梨子, 花生, 黄瓜, 土豆, 大蒜, 茄子, 白萝卜, 辣椒, 胡萝卜,…

DFT可测性设置与Tetramax测试笔记

1 DFT 1.1 DFT类型 1、扫描链(SCAN): 扫描路径法是一种针对时序电路芯片的DFT方案.其基本原理是时序电路可以模型化为一个组合电路网络和带触发器(Flip-Flop,简称FF)的时序电路网络的反馈。 Scan 包括两个步骤,scan…

分布式ID的实现方案

1. 什么是分布式ID ​ 对于低访问量的系统来说,无需对数据库进行分库分表,单库单表完全可以应对,但是随着系统访问量的上升,单表单库的访问压力逐渐增大,这时候就需要采用分库分表的方案,来缓解压力。 ​…

28.找出字符串中第一个匹配项的下标【力扣】KMP前缀表 ≈ find() 函数、暴力解法

class Solution { public: //得到前缀表void getNext(int *next,string needle){int j0;for(int i1;i<needle.size();i){while(j>0 && needle[j]!needle[i]) jnext[j-1];//**j>0**>j0是出口if(needle[i]needle[j]) j;next[i]j;//若写入if中&#xff0c;则该…

当自动包布机遇上Profinet转ModbusTCP网关,“妙啊”,工业智能“前景无限

在自动化控制技术日新月异的当下&#xff0c;Profinet与ModbusTCP这两种协议在工业通信领域占据着举足轻重的地位。ModbusTCP是基于以太网的串行通信协议&#xff0c;而Profinet则是依托工业以太网的现场总线协议。它们在数据传输速度、实时性表现以及兼容性等方面各具特色。不…

ADC(Analog-to-digital converter)模拟-数字转换器

ADC简介 ADC&#xff08;Analog-to-Digital Converter&#xff09;&#xff0c;即模拟-数字转换器&#xff0c;是一种将模拟信号转换成数字信号的电子设备。它在现代电子系统中扮演着至关重要的角色&#xff0c;广泛应用于传感器信号处理、通信系统、医疗设备、工业自动化等多…

Uniapp判断设备是安卓还是 iOS,并调用不同的方法

在 UniApp 中&#xff0c;可以通过 uni.getSystemInfoSync() 方法来获取设备信息&#xff0c;然后根据系统类型判断当前设备是安卓还是 iOS&#xff0c;并调用不同的方法。 示例代码 export default {onLoad() {this.checkPlatform();},methods: {checkPlatform() {// 获取系…

TP4056锂电池充放电芯片教程文章详解·内置驱动电路资源!!!

目录 TP4056工作原理 TP4056引脚详解 TP4056驱动电路图 锂电池充放电板子绘制 编写不易&#xff0c;仅供学习&#xff0c;感谢理解。 TP4056工作原理 TP4056是专门为单节锂电池或锂聚合物电池设计的线性充电器&#xff0c;充电电流可以用外部电阻设定&#xff0c;最大充电…

平滑算法 效果比较

目录 高斯平滑 效果对比 移动平均效果比较: 高斯平滑 效果对比 右边两个参数是1.5 2 代码: smooth_demo.py import numpy as np import cv2 from scipy.ndimage import gaussian_filter1ddef gaussian_smooth_array(arr, sigma):smoothed_arr = gaussian_filter1d(arr, s…

Jenkins-简介/安装!

一. 关于持续集成&#xff1a; 持续集成(CI ) [ Continuous Integration ]&#xff0c;通俗来讲&#xff0c;就是一个能监控版本控制系统变化的工具&#xff0c;可以自动编译和测试集成的应用程序。出现问题&#xff0c;能够及时的通知相应人员。持续集成是一种思维工具集&…

Flutter中Get.snackbar避免重复显示的实现

在pubspec.yaml中引入依赖框架。 #GetX依赖注解get: ^4.6.5创建一个SnackBarManager管理类去管理每个提示框。 import package:get/get.dart; import package:flutter/material.dart;class SnackBarManager {factory SnackBarManager() > instance;static final SnackBarMa…

c#删除文件和目录到回收站

之前在c上遇到过这个问题&#xff0c;折腾许久才解决了&#xff0c;这次在c#上再次遇到这个问题&#xff0c;不过似乎容易了一些&#xff0c;亲测代码如下&#xff0c;两种删除方式都写在代码中了。 直接上完整代码&#xff1a; using Microsoft.VisualBasic.FileIO; using Sy…

微信小程序集成Vant Weapp移动端开发的框架

什么是Vant Weapp Vant 是一个轻量、可靠的移动端组件库&#xff0c;于 2017 年开源。 目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本&#xff0c;并由社区团队维护 React 版本和支付宝小程序版本。 官网地睛&#xff1a;介绍 - Vant Weapp (vant-ui.gith…

kafka原理和实践

Kafka是当前分布式系统中最流行的消息中间件之一&#xff0c;凭借着其高吞吐量的设计&#xff0c;在日志收集系统和消息系统的应用场景中深得开发者喜爱。本篇就聊聊Kafka相关的一些知识点。主要包括以下内容&#xff1a; Kafka简介 Kafka特点Kafka基本概念Kafka架构Kafka的几…

【机器学习】数据拟合-最小二乘法(Least Squares Method)

最小二乘法&#xff08;Least Squares Method&#xff09; 最小二乘法是一种广泛使用的数据拟合方法&#xff0c;用于在统计学和数学中找到最佳拟合曲线或模型&#xff0c;使得观测数据点与模型预测值之间的误差平方和最小化。以下是详细介绍&#xff1a; 基本概念 假设有一组…

我的年度总结

这一年的人生起伏&#xff1a;从曙光到低谷再到新的曙光 其实本来没打算做年度总结的&#xff0c;无聊打开了帅帅的视频&#xff0c;结合自己最近经历的&#xff0c;打算简单聊下。因为原本打算做的内容会是一篇比较丧、低能量者的呻吟。 实习生与创业公司的零到一 第一段工…