当前位置: 首页 > news >正文

python变成几个小程序

  1. 专家系统
    需要建立‘capital_data.txt’ 空文件
from tkinter import Tk, simpledialog, messageboxdef read_from_file():with open('capital_data.txt') as file:for line in file:line = line.rstrip('\n')country, city = line.split('/')the_world[country] = citydef write_to_file(country_name, city_name):with open('capital_data.txt', 'a') as file:file.write('\n' + country_name + '/' + city_name)
print('Ask the expert - Capital cities of the world')
root = Tk()
root.withdraw()
# root.deiconify()
the_world={}
read_from_file()while True:query_country = simpledialog.askstring('国家', '输入国家的名字:')query_country = query_country.capitalize()if query_country in the_world:result = the_world[query_country]messagebox.showinfo('Answer', 'The capital city of ' + query_country + ' is ' + result +'!')else:new_city = simpledialog.askstring('Teach me',"I don't know!" +'What is the capital city of '+ query_country + '?')the_world[query_country] = new_citywrite_to_file(query_country, new_city)root.mainloop()
  1. 信息加密
from tkinter import Tk, messagebox, simpledialogdef get_task():task = simpledialog.askstring('Task', 'Do you want to encrypt or decrypt')return task
def get_message():message= simpledialog.askstring('Message', 'Enter the secret message')return messagedef is_even(number):return number % 2 == 0def get_even_letters(message):even_letters = []for counter in range(0, len(message)):if is_even(counter):even_letters.append(message[counter])return even_lettersdef get_odd_letters(message):odd_letters = []for counter in range(0, len(message)):if not is_even(counter):odd_letters.append(message[counter])return odd_lettersdef swap_letters(message):letter_list = []if not is_even(len(message)):message = message + "x"even_letters = get_even_letters(message)odd_letters = get_odd_letters(message)for counter in range(0,len(odd_letters)):letter_list.append(odd_letters[counter])letter_list.append(even_letters[counter])new_message = ''.join(letter_list)return new_messageroot = Tk()while True:task = get_task()if task == 'encrypt':message = get_message()encrypted = swap_letters(message)print(message)messagebox.showinfo('Ciphertext of the secret message is:', encrypted)elif task == 'decrypt':message = get_message()decrypted = swap_letters(message)messagebox.showinfo('Plaintext of the secret message is:', decrypted)else:breakroot.mainloop()
  1. 倒计时
    需要先建立events.txt文件,内容格式如下
Halloween,30/10/24
Spanish Test,01/12/17
School Trig,20/02/17
My birthday,11/01/18
from tkinter import Tk, Canvas
from datetime import date, datetimedef get_events():list_events = []# 在vscode中,文件应该放到打开的文件夹下with open('events.txt') as file:for line in file:line = line.rstrip('\n')current_event = line.split(',')event_date = datetime.strptime(current_event[1], '%d/%m/%y').date()current_event[1] = event_date# print(current_event)list_events.append(current_event)return list_eventsdef days_between_dates(date1, date2):time_between = str(date1 - date2)print(time_between)number_of_days = time_between.split(' ')return number_of_days[0]root = Tk()
c = Canvas(root, width=800, height=800,bg='green')
c.pack()
c.create_text(100, 50, anchor='w', fill='pink', font='楷体 28 bold underline', text='我的日历')
events = get_events()
today = date.today()
vertical_space = 100
events.sort(key=lambda x: x[1])
for event in events:event_name = event[0]days_until = days_between_dates(event[1],today)display = 'It is %s days until %s' % (days_until, event_name)if (int(days_until) <=7):text_col = 'red'else:text_col = 'lightblue'c.create_text(100, vertical_space, anchor='w', fill=text_col, font='宋体 22 bold', text=display)vertical_space += 30
root.mainloop()
  1. 彩虹(turtle)
import random
import turtle as tdef get_line_length():choice = input('Enter line length (long, medium, short): ')if choice == 'long':line_length = 250elif choice == 'medium':line_length = 200else:line_length = 100return line_lengthdef get_line_width():choice = input('Enter line width (superthick, thick, thin): ')if choice == 'superthick':line_width = 40elif choice == 'thick':line_width = 25else:line_width = 10return line_widthdef get_turn_size():turn_size = input("Enter turn size (wide, square, narrow): ")return turn_sizedef inside_window():left_limit = (-t.window_width() / 2) +100right_limit = t.window_width() / 2 - 100top_limit = t.window_height() / 2 - 100bottom_limit = -t.window_height() / 2 + 100x, y = t.pos()inside = left_limit < x < right_limit and bottom_limit < y < top_limitreturn insidedef move_turtle(line_length, turn_size):# pen_color = ['red', 'orange', 'yellow', 'green', 'blue', 'purple']# t.pencolor(random.choice(pen_color))t.colormode(255)red = random.randint(0,255)blue = random.randint(0,255)green = random.randint(0,255)t.pencolor(red, green, blue)t.pensize(random.randint(1, 40))t.stamp()if inside_window():if turn_size == 'wide':angle = random.randint(120,150)elif turn_size =='square':angle = random.randint(80, 90)else:angle = random.randint(20, 40)# angle = random.randint(0, 180)t.right(angle)t.forward(line_length)else:t.backward(line_length)
turn_size = get_turn_size()
line_length = get_line_length()
# line_width = get_line_width()t.shape('turtle')
t.fillcolor('green')
t.bgcolor('black')
t.speed('fast')
# t.pensize(line_width)while True:move_turtle(line_length, turn_size)t.mainloop()
  1. 星光夜空
import turtle as t
from random import randint, randomdef draw_star(points, size, col, x, y):   # points只能是奇数t.penup()t.goto(x, y)t.pendown()angle = 180 - 180 / pointst.color(col)t.begin_fill()for i in range(points):t.forward(size)t.right(angle)t.end_fill()def draw_planet(col, x, y):t.penup()t.goto(x,y)t.pendown()t.color(col)t.begin_fill()t.circle(50)t.end_fill()t.Screen().bgcolor('dark blue')
t.title('星光夜空')
t.hideturtle()
t.speed(0)while True:ranPts = randint(3, 6) * 2 + 1ranSize = randint(10, 50)ranColor = (random(), random(), random())ranX = randint(-350, 300)ranY = randint(-250, 250)draw_star(ranPts, ranSize, ranColor, ranX, ranY)t.mainloop()

相关文章:

python变成几个小程序

专家系统 需要建立‘capital_data.txt’ 空文件 from tkinter import Tk, simpledialog, messageboxdef read_from_file():with open(capital_data.txt) as file:for line in file:line line.rstrip(\n)country, city line.split(/)the_world[country] citydef write_to_fi…...

nginx配置stream代理

项目中遇到某些服务在内网&#xff0c;需要外网访问的情况&#xff0c;需要配置代理访问。可用nginx搭建代理服务。 TCP代理 通过nginx的stream模块可以直接代理TCP服务&#xff0c;步骤如下&#xff1a; 在/etc/nginx/下新建proxy文件夹&#xff0c;用于存放代理配置。此处…...

【瑞吉外卖 | day01】项目介绍+后台登录退出功能

文章目录 瑞吉外卖 — day011. 所需知识2. 软件开发整体介绍2.1 软件开发流程2.2 角色分工2.3 软件环境 3. 瑞吉外卖项目介绍3.1 项目介绍3.2 产品原型展示3.3 技术选型3.4 功能架构3.5 角色 4. 开发环境搭建4.1 数据库环境搭建4.2 Maven项目构建 5. 后台系统登录功能5.1 创建需…...

关于批量采集1688商品主图及链接的方式:软件采集/1688官方API接口数据采集

关于批量采集&#xff0c;我们通常用到的是软件 采集&#xff0c;或者通过1688官方API数据采集的形式&#xff1a;用户输入一组1688商品ID&#xff0c;一行一个&#xff0c;流程会自动逐个打开对应的1688商品详情页&#xff0c;采集主图的所有链接。 结果保存为表格的一行&…...

Shell 获取Hive表的location 信息

用shell 获取建表语句&#xff1a; hive -e "show create table ods_job.ods_job_tb"得到结果&#xff1a; CREATE TABLE ods_job.ods_job_tb(id bigint COMMENT id, auto int COMMENT job开启/关闭&#xff1a;0-关闭&#xff1b;1-开启, ....timeout_kill string…...

从零搭建教育管理系统:Java + Vue.js 教学-02

第三步:创建实体类和 Mapper 接口 现在我们已经设计好了数据库表,接下来使用 MyBatis-Plus 将这些表映射到 Java 对象,以便在代码中轻松地进行操作。 1. 创建实体类 在 src/main/java/<your_package>/entity 目录下 (如果没有该目录,请手动创建),创建与数据库表对应…...

VSCode + GDB + J-Link 单片机程序调试实践

VSCode GDB J-Link 单片机程序调试实践 本文介绍如何创建VSCode的调试配置&#xff0c;如何控制调试过程&#xff0c;如何查看修改各种变量。 安装调试插件 在 VSCode 扩展窗口搜索安装 Cortex-Debug插件 创建调试配置 在 Run and Debug 窗口点击 create a launch.json …...

grpc学习golang版( 五、多proto文件示例 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、前言二、定义proto文件2.1 公共proto文件2.2 语音唤醒proto文…...

LeetCode 106 从中序与后序遍历序列构造二叉树

根据中序遍历和后序遍历的性质&#xff0c;还原二叉树&#xff0c;详细见注释 TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {//空&#xff0c;直接返回nullif(inorder.size() 0) return nullptr;//一个&#xff0c;返回一个nod…...

Vue Router的深度解析

引言 在现代Web应用开发中&#xff0c;客户端路由已成为实现流畅用户体验的关键技术。与传统的服务器端路由不同&#xff0c;客户端路由通过JavaScript在浏览器中控制页面内容的更新&#xff0c;避免了页面的全量刷新。Vue Router作为Vue.js官方的路由解决方案&#xff0c;以其…...

YOLO-V2

一、V2版本细节升级 1、YOLO-V2&#xff1a; 更快&#xff01;更强 1.1 做的改进内容 1. YOLO-V2-Batch Normalization V2版本舍弃Dropout&#xff0c;卷积后每一层全部加入Batch Normalization网络的每一层的输入都做了归一化&#xff0c;收敛相对更容易经过Batch Norma…...

pmp考试的通过标准是什么?

PMP考试的是否通过并不是依据类似其他考试的数值成绩&#xff0c;是通过考生收到邮件通知后去主动查询具体的页面得知的。查询页除了电子证书的下载方式&#xff0c;还有成绩报告单的选项以及成绩饼状图&#xff0c;具体如下&#xff1a; 页面中显示“PASS”表示考试通过。 显…...

不懂PyQt5垂直布局?只需3分钟即可学会

PyQt5中实现垂直布局&#xff0c;主要使用QVBoxLayout类。该布局管理器将子控件垂直排列&#xff0c;并可以根据需要自动调整大小。使用QVBoxLayout可以方便地构建从上到下排列的界面元素。 import sys from PyQt5.QtWidgets import QApplication, QVBoxLayout, QWidget, QPus…...

从零开始实现大语言模型(二):文本数据处理

1. 前言 神经网络不能直接处理自然语言文本&#xff0c;文本数据处理的核心是做tokenization&#xff0c;将自然语言文本分割成一系列tokens。 本文介绍tokenization的基本原理&#xff0c;OpenAI的GPT系列大语言模型使用的tokenization方法——字节对编码(BPE, byte pair en…...

生物分子生物学实验过程的自动化与智能监控系统设计

开题报告&#xff1a;生物分子生物学实验过程的自动化与智能监控系统设计 一、引言 随着生物科学技术的飞速发展&#xff0c;生物分子生物学实验在科研、医疗、农业等领域的应用日益广泛。然而&#xff0c;传统的生物分子生物学实验过程大多依赖于人工操作&#xff0c;存在操…...

linux的shell脚本编程详解

Shell 脚本是一种用于自动化任务的脚本语言&#xff0c;在 Linux 和其他类 Unix 操作系统中非常流行。它通常用于任务自动化、系统管理和批处理。编写 Shell 脚本并使其自动化编译过程&#xff08;例如使用 gcc 编译 C/C 程序&#xff09;是一种常见的任务。 以下是一个详细的…...

Redis 7.x 系列【11】数据类型之位图(Bitmap)

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 基本命令2.1 SETBIT2.2 GETBIT2.3 BITCOUNT2.4 BITPOS2.5 BITFIELD2.6 BITF…...

如何评定旅游卡的品质与服务?

评定旅游卡的品质与服务&#xff0c;可以从以下几个关键方面进行综合考量&#xff1a; 公司实力与资质&#xff1a;选择有实力、资质齐全的公司发行的旅游卡。查看公司背景&#xff0c;确认其是否长期稳定运营&#xff0c;是否具有旅游行业的专业资质&#xff0c;如旅行社许可证…...

适合学生暑假适用的护眼大路灯有哪些?五款好用护眼灯分享!

在护眼领域&#xff0c;护眼大路灯已经成为越来越多人的选择。这种具备实力的工具可以有效地缓解用眼疲劳、改善光线环境&#xff0c;是学生党和办公族的必备神器。然而&#xff0c;市面上的护眼大路灯品牌众多&#xff0c;如何选择一款性价比高、品质优良的产品呢&#xff1f;…...

linux服务器 部署jenkins

在 Linux 服务器上部署 Jenkins 通常包括以下几个步骤&#xff1a; 更新系统软件包&#xff1a; sudo apt update sudo apt upgrade 安装 Java&#xff1a; Jenkins 需要 Java 运行时环境。推荐使用 OpenJDK 11。 sudo apt install openjdk-11-jdk 添加 Jenkins 软件源并导入…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...