当前位置: 首页 > 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()
http://www.lryc.cn/news/389867.html

相关文章:

  • nginx配置stream代理
  • 【瑞吉外卖 | day01】项目介绍+后台登录退出功能
  • 关于批量采集1688商品主图及链接的方式:软件采集/1688官方API接口数据采集
  • Shell 获取Hive表的location 信息
  • 从零搭建教育管理系统:Java + Vue.js 教学-02
  • VSCode + GDB + J-Link 单片机程序调试实践
  • grpc学习golang版( 五、多proto文件示例 )
  • LeetCode 106 从中序与后序遍历序列构造二叉树
  • Vue Router的深度解析
  • YOLO-V2
  • pmp考试的通过标准是什么?
  • 不懂PyQt5垂直布局?只需3分钟即可学会
  • 从零开始实现大语言模型(二):文本数据处理
  • 生物分子生物学实验过程的自动化与智能监控系统设计
  • linux的shell脚本编程详解
  • Redis 7.x 系列【11】数据类型之位图(Bitmap)
  • 如何评定旅游卡的品质与服务?
  • 适合学生暑假适用的护眼大路灯有哪些?五款好用护眼灯分享!
  • linux服务器 部署jenkins
  • 电商控价:系统监测的必要性与优势
  • 港股下半年能恢复上涨趋势吗?
  • 软件测试项目实战:银行贷款业务测试介绍-2
  • 如何将Hive表的分区字段插入PG表对应的时间戳字段?
  • Spring Boot与MyBatis的集成应用
  • 在昇腾服务器上使用llama-factory对baichuan2-13b模型进行lora微调
  • Kafka 管理TCP连接
  • electron教程(一)创建项目
  • 如何在Oracle、MySQL、PostgreSQL上终止会话或取消SQL查询
  • 3、FTL基本工作过程
  • 微信小程序的跳转页面