簡簡單單的用 Python 擼一個計(jì)算年齡的工具網(wǎng)頁,不用對前端特別熟悉,只要專注于工具的邏輯,其他都交給 Python 吧。
1. 總體結(jié)構(gòu)
實(shí)現(xiàn)了 3 個功能
2. 正確地計(jì)算年齡
輸入 2000-01-01
# 用戶輸入的生日
now = datetime.strptime(B, "%Y-%m-%d")
# 輸出現(xiàn)在年齡
delta_y = rd(datetime.now(), now).years
delta_m = rd(datetime.now(), now).months
delta_d = rd(datetime.now(), now).days
3. 警告日期格式有問題
日期格式不正確,比如為 2000/01/01
# 檢查日期格式
try:
val = datetime.strptime(B, "%Y-%m-%d")
except:
# 如果格式錯誤,警告提示
put_error("警告:日期格式不正確")
time.sleep(3)
continue
4. 輸入日期比現(xiàn)在時間大
比如為 2022-01-29,顯示輸入時間和現(xiàn)在時間,進(jìn)行提示
# 日期比現(xiàn)在時間大
put_warning(
f"找不到結(jié)果,現(xiàn)在日期是"
f"{date[0]}-{date[1]}-{date[2]}, "
f"你不能使用"
f"{in_date[0]}-{in_date[1]}-"
f"{in_date[2]}這個日期。")
5. 需要的第三方模塊
我們只需要關(guān)注 python 代碼,pywebio 會自動生成網(wǎng)頁
6. 完整的代碼
# 計(jì)算年齡
from dateutil.relativedelta import relativedelta as rd
# 獲取時間、格式化時間
from datetime import datetime
# 用來延遲
import time
# 用來生成網(wǎng)頁
from pywebio.input import *
from pywebio.output import *
while True:
clear() # 每次循環(huán)先清空所有數(shù)據(jù)
# 標(biāo)題
put_html(""left"">"
"年齡計(jì)算器")
# 輸入生日日期
B = input(
"",
placeholder="你的生日,格式為 yyyy-mm-dd"
)
# 檢查日期格式
try:
val = datetime.strptime(B, "%Y-%m-%d")
except:
# 如果格式錯誤,警告提示
put_error("警告:日期格式不正確")
time.sleep(3)
continue
# 解析輸入的日期
in_date = B.split('-')
# 獲取現(xiàn)在時間
date = datetime.now().strftime("%Y-%m-%d")
# 解析現(xiàn)在的日期
date = date.split('-')
# 轉(zhuǎn)化為數(shù)字列表
in_date = [int(i) for i in in_date]
date = [int(i) for i in date]
if in_date <= date:
# 用戶輸入的生日
now = datetime.strptime(B, "%Y-%m-%d")
# 輸出現(xiàn)在年齡
delta_y = rd(datetime.now(), now).years
delta_m = rd(datetime.now(), now).months
delta_d = rd(datetime.now(), now).days
popup("你的年齡", [put_html(
"%s 歲
%s 個月
%s 天" % (delta_y, delta_m, delta_d)),
put_buttons(
['點(diǎn)擊關(guān)閉'],
onclick=lambda
_: close_popup())],
implicit_close=True)
else:
# 日期比現(xiàn)在時間大
put_warning(
f"找不到結(jié)果,現(xiàn)在日期是"
f"{date[0]}-{date[1]}-{date[2]}, "
f"你不能使用"
f"{in_date[0]}-{in_date[1]}-"
f"{in_date[2]}這個日期。")
time.sleep(3)
clear()
-
前端
+關(guān)注
關(guān)注
1文章
210瀏覽量
18070 -
網(wǎng)頁
+關(guān)注
關(guān)注
0文章
74瀏覽量
19532 -
python
+關(guān)注
關(guān)注
56文章
4821瀏覽量
85647
發(fā)布評論請先 登錄
相關(guān)推薦
硬件設(shè)計(jì)的小工具
圖片轉(zhuǎn)PCB圖的小工具
用UcguiBuilder4制作的CHECKBOX小工具例程分享!
C語言注釋刪除小工具是什么
分享一份網(wǎng)友學(xué)習(xí)python時編寫的一個小工具

評論