当前位置: 首页 > 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;控价乃是其中颇为关键的一环。品牌进行控价的目的无疑是为了妥善治理低价链接&#xff0c;低价链接的发现途径可以是人工&#xff0c;也可以是系统。力维网络在为上百个品牌提供服务的过程中察觉到&#xf…...

港股下半年能恢复上涨趋势吗?

今日港股两大指数涨跌不一&#xff0c;早盘盘初恒指冲高&#xff0c;涨幅一度扩大至1%。截至收盘&#xff0c;香港恒生指数涨0.57%。板块方面&#xff0c;电力、航空、石油、内险股、燃料电池、环保等板块涨幅居前&#xff1b;互动媒体与服务、生物科技、汽车零部件、新经济概念…...

软件测试项目实战:银行贷款业务测试介绍-2

1、利息计算 正常利息贷款本金*借款天数*贷款年利率/360 罚息逾期本金*逾期天数*逾期年利率/360 复利逾期利息*逾期天数*逾期年利率/360 2、贷款五级分类 正常贷款&#xff1a;正常及逾期60天以内 关注贷款&#xff1a;逾期60天及以上&#xff0c;不足90天 次级贷款&#xff1…...

如何将Hive表的分区字段插入PG表对应的时间戳字段?

文章目录 1、背景描述2、场景分析 1、背景描述 数据仓库的建设通常是为业务和决策服务的。在数仓开发的应用层阶段&#xff0c;BI可以直接从主题层/业务层取数&#xff0c;而前端需要根据具体的作图需求通过后端查询数据库 作图的指标需要根据主题层/业务层做查询计算&#xf…...

Spring Boot与MyBatis的集成应用

Spring Boot与MyBatis的集成应用 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来聊聊Spring Boot与MyBatis的集成应用。MyBatis是一款优秀的持久层框…...

在昇腾服务器上使用llama-factory对baichuan2-13b模型进行lora微调

什么是lora微调 LoRA 提出在预训练模型的参数矩阵上添加低秩分解矩阵来近似每层的参数更新&#xff0c;从而减少适配下游任务所需要训练的参数。 环境准备 这次使用到的微调框架是llama-factory。这个框架集成了对多种模型进行各种训练的代码&#xff0c;少量修改就可使用。 …...

Kafka 管理TCP连接

生产者管理TCP连接 Kafka生产者程序概览 Kafka的Java生产者API主要的对象就是KafkaProducer。通常我们开发一个生产者的步骤有4步&#xff1a; 第1步&#xff1a;构造生产者对象所需的参数对象。 第2步&#xff1a;利用第1步的参数对象&#xff0c;创建KafkaProducer对象实例…...

electron教程(一)创建项目

一、方式① 根据官网描述将electron/electron-quick-start项目克隆下来并启动 electron/electron-quick-start地址&#xff1a; GitHub - electron/electron-quick-start: Clone to try a simple Electron app git clone https://github.com/electron/electron-quick-start…...

如何在Oracle、MySQL、PostgreSQL上终止会话或取消SQL查询

How to Kill session or Cancel SQL query on Oracle , MySQL, PostgreSQL 数据库维护过程中难免会遇到一些不正常的SQL或会话进程正在占用系统大量资源&#xff0c;临时需要终止查询或kill会话&#xff0c;在Oracle, MySQL, Postgresql数据库中不同的操作。 Oracle KILL会话…...

3、FTL基本工作过程

上文描述了FTL的四大功能&#xff0c;这里简述一下每个功能的含义。 地址转换简述 FTL要维护一个地址转换表&#xff0c;这个转换表是主机读/写硬盘的逻辑地址到硬盘实际物理地址的转换关系。 假如SSD的容量是128G&#xff0c;SSD逻辑块的大小是4KB&#xff0c;那SSD的逻辑块…...