成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

手把手教你使用PySimpleGUI庫打造一款輕量級計算器

開發 前端
這篇文章主要基于PySimpleGUI庫,打造了一款輕量級計算器,實現計算器的相關功能。

大家好,我是Python進階者。

前言

前幾天在Python交流群里邊,【??(這是月亮的背面)】大佬分享了一個有趣的代碼,用于PySimpleGUI庫打造了一款簡易計算器,覺得挺有意思,非常適合入門PySimpleGUI的小伙伴們學習,這里拿出來給大家分享一波。

實現過程

這里直接上代碼,如下所示:

import PySimpleGUI as sg


# 定義主窗口布局,確定行數
def window_main():
layout = [
[sg.Text('計算結果:', font=("微軟雅黑", 10)), sg.Button('歷史記錄', font=("微軟雅黑", 10), pad=(10, 1))],
[sg.Text('0', key='-express-', justification='right', size=(30, 1), font=("微軟雅黑", 10), background_color='#fff', text_color='#000')],
[sg.Text('0', key='-result-', justification='right', size=(30, 1), font=("微軟雅黑", 10), background_color='#fff', text_color='#000')],
[sg.Button('清空', size=(6, 2)), sg.Button('刪除', size=(6, 2)), sg.Button('x2', size=(6, 2)), sg.Button('÷', size=(6, 2))],
[sg.Button('7', size=(6, 2)), sg.Button('8', size=(6, 2)), sg.Button('9', size=(6, 2)), sg.Button('x', size=(6, 2))],
[sg.Button('4', size=(6, 2)), sg.Button('5', size=(6, 2)), sg.Button('6', size=(6, 2)), sg.Button('-', size=(6, 2))],
[sg.Button('1', size=(6, 2)), sg.Button('2', size=(6, 2)), sg.Button('3', size=(6, 2)), sg.Button('+', size=(6, 2))],
[sg.Button('+/-', size=(6, 2)), sg.Button('0', size=(6, 2)), sg.Button('.', size=(6, 2)), sg.Button('=', size=(6, 2))],
]

# 創建窗口
return sg.Window('簡易計算器@月亮', layout, finalize=True, default_element_size=(50, 1))

# 定義歷史記錄窗口布局
def createwindow_history(history_list=None):
history_text = ''
if history_list:
history_text = '\n'.join(['='.join(i) for i in history_list])
layout = [
[sg.Text('歷史記錄:', font=("微軟雅黑", 10))],
[sg.Multiline(history_text, justification='right', disabled=True, autoscroll=True, size=(30, 10), font=("微軟雅黑", 10), background_color='#fff', text_color='#000')]
]
return sg.Window('歷史記錄', layout, finalize=True)


def get_result(eval_str):
global result
eval_str = eval_str.replace('^', '**').replace('x', '*').replace('÷', '/')
try:
result = eval(eval_str)
except Exception as e:
result = '0'
window_main['-result-'].update(result)
return str(result)


window_main = window_main()
window_sub = None
history_list = []
express = '0'
result = '0'
flag = 0

while True:
window, event, value = sg.read_all_windows()
if window == window_main and event in (None, sg.WIN_CLOSED):
if window_sub is not None:
window_sub.close()
break
elif event == '歷史記錄':
if not window_sub:
window_sub = createwindow_history(history_list)
else:
window_sub.close()
window_sub = None
elif window == window_sub and event is None:
window_sub.close()
window_sub = None
elif event == '=':
express1 = express
express = get_result(express)
history_list.append([express1, express])
flag = 1
elif event == '清空':
express = '0'
result = '0'
window_main['-express-'].update(express)
window_main['-result-'].update(result)
elif event == '刪除':
if len(express.lstrip('-').strip('(').strip(')')) == 1:
express = '0'
elif express[-1] == ')':
express = express.lstrip('-').strip('(').strip(')')
else:
express = express[:-1]
window_main['-express-'].update(express)
elif event == 'x2':
express = f'({express}) ^ 2'
window_main['-express-'].update(express)
elif event == '+/-':
express = f'-({express})'
get_result(express)
else:
if flag == 1 and event in '0123456789':
express = '0'
flag = 0
if express == '0':
express = event
else:
express = express + event
window_main['-express-'].update(express)

window.close()

代碼運行之后,一款建議計算器就已經浮現在眼前了。

之后你可以自己做點簡單的加減乘除等計算,都是可以的,也支持清除,查看歷史記錄功能等等。

總結

大家好,我是Python進階者。這篇文章主要基于PySimpleGUI庫,打造了一款輕量級計算器,實現計算器的相關功能。

責任編輯:姜華 來源: Python爬蟲與數據挖掘
相關推薦

2022-02-17 10:26:17

JavaScript掃雷游戲前端

2021-11-01 10:26:07

CanvasAPI畫布技術HTML5

2021-12-30 08:56:57

Python摸魚倒計界面Python基礎

2023-05-22 10:04:24

2022-01-02 07:00:48

Python

2021-02-01 08:41:06

Java考試系統

2022-08-26 08:01:38

DashWebJavaScrip

2021-01-04 09:55:26

Java移動互聯網

2021-02-04 15:52:46

Java考試系統

2017-09-14 09:09:04

php應用LibreOfficeWord轉HTML

2021-01-05 09:04:20

Javatxt文件

2021-01-10 08:14:01

Go語言TCP掃描器

2025-05-07 00:31:30

2021-06-24 10:52:35

JDBC數據庫圖書管理系統

2021-07-14 09:00:00

JavaFX開發應用

2021-01-13 09:03:48

Java游戲函數

2022-07-22 12:45:39

GNU

2018-09-09 15:38:55

SD-WAN網絡WAN

2021-01-12 05:05:15

Java對碰游戲

2016-11-01 09:46:04

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av中文字幕在线 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 久久精品男人的天堂 | 国产精品亚洲一区二区三区在线观看 | 欧美黄在线观看 | 国产资源在线观看 | 精品一区二区电影 | 亚洲国产精品久久久久婷婷老年 | 中文字幕在线看 | 韩国主播午夜大尺度福利 | 国产精品欧美一区二区三区不卡 | 久久伊人操 | 国产99久久 | 久久精品视频99 | 免费看黄视频网站 | 亚洲欧美日韩精品久久亚洲区 | 亚洲福利网| 久亚州在线播放 | 日韩中文字幕在线视频 | 欧美日韩一区二区在线 | 99爱在线观看 | 99久久婷婷国产综合精品电影 | 国产一级在线观看 | 91视频www.| 成人一区二区三区在线观看 | 一区二区三区中文字幕 | 97热在线| 日韩电影一区二区三区 | 日韩欧美一级 | 91天堂网| 久久久久久久国产 | 视频三区 | 深夜福利亚洲 | 免费黄色在线观看 | 欧美极品在线视频 | 精品一区二区三区四区视频 | 一级日韩 | 日本黄色的视频 | 综合九九| 亚洲视频在线观看免费 | 四虎影音|