程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

單詞記憶系統一:菜單循環和菜單確認(Python 自定義類、自定義模塊的相對路徑import)

編輯:Python

Python 官網 python 前沿。可惜是英文原版。所以,我要練習英文閱讀。🧐🧐" rel="noopener noreferrer">https://www.python.org/


  • Free:大咖免費“聖經”教程《 python 完全自學教程》,不僅僅是基礎那麼簡單……

  • My CSDN主頁、My HOT博、My Python 學習個人備忘錄
  • 好文力薦、 老齊教室

自學並不是什麼神秘的東西,一個人一輩子自學的時間總是比在學校學習的時間長,沒有老師的時候總是比有老師的時候多。
—— 華羅庚





單詞記憶系統一:
菜單循環和菜單確認
(Python 自定義類、自定義模塊的相對路徑import)




目錄


1、本練習緣來

2、“框架”構想

3、系統主菜單

4、菜單確認


回首頁

本練習緣來

想寫這個“單詞記憶系統”,是緣於看到有人想用“網”到的代碼(點擊藍色文字查看那段代碼)給孩子做一個“單詞記憶”程序。仔細研讀那段代碼,感覺不是我想要的那種,決定給自己“鼓搗”一個“真正”的“單詞記憶系統”,至少要讓單詞庫得以在磁盤文件保存保存,才算得上勉強可用的“系統”。


“框架”構想

我現在正在學習python class 和 python 的包、模塊的 import ,正好在做這個“單詞記憶系統”時煉煉。
雖然代碼有些丑,但終究還是通過了調試,達成目的。🤪🤪



系統目錄結構



系統主程序代碼

#!/sur/bin/nve python 
# coding: utf-8 
''' filename: word_remember.py author: 夢幻精靈_cq time: 2022-6-19 10:31am '''
from word_remember_tools import menu_show, ismenu
from mypytools.python_color import color
menu_str = '單詞練習,單詞測試,生詞添加,系統文檔'.split(',')
while True:
menu_show.MenuShow().show(menu_str) # 調用模塊列印菜單。
try:
menu_choice = int(input(f"{
'-'*50}\n\n{
'':>12}{
color('選擇菜單', 'f_green')}:"))
except Exception as error:
input(f"\n\n{
'-'*50}\n{
color('選擇錯誤!'.center(45, '-'),'f_red')}\n{
color('ErrorType:', 'f_gray')} {
color(error, 'f_red')}\n{
'-'*50}\n\n")
continue
if menu_choice not in range(len(menu_str)+1):
input(f"\n\n{
'-'*50}\n{
color('選擇錯誤!'.center(45, '-'),'f_red')}\n{
'-'*50}\n\n")
continue
if not ismenu.IsMenu().ismenu(menu_choice):
break # 菜單選擇0,退出系統菜單循環。

回首頁

系統主菜單


1. 菜單列印代碼

#!/sur/bin/nve python 
# coding: utf-8 
''' filename = 'word_remember_tools/menu_show.py' author = 'Dream_elf' time = '2022-06-19' '''
from mypytools.mypythontools import localtime_show # 加載時間字符格式化字符串獲取工具。
from mypytools.python_color import color # 加載打印色彩控制工具。
from os import system # 加載命令執行“容器”。
# 菜單列印模塊。
class MenuShow:
def show(self, menu_str):
''' 菜單列印。 遍歷菜單列表打印菜單。 '''
system('clear')
print(f"\n\n{
'*'*50}\n\n{
'單詞記憶系統'.center(44)}\n{
color('(Word Remember)','f_green').center(59)}\n\n{
localtime_show().center(61)}\n{
'-'*50}")
for k,i in enumerate(menu_str):
print(f"\n{
'':>20}{
k+1}. {
color(i, 'f_green')}")
print(f"\n{
'':>20}0. {
color('退出系統','f_gray')}")

2. 菜單列印效果


回首頁

菜單確認代碼

#!/sur/bin/nve python 
# coding: utf-8 
''' filename = 'word_remember_tools/ismenu.py' author = 'Dream_elf' time = '2022-06-19' '''
from mypytools.python_color import color # 加載打印色彩控制工具。
from os import system # 加載命令執行“容器”。
class IsMenu:
def ismenu(self, menu_choice):
''' 菜單選擇確認,根據所選序號, 調用相應功能模塊。 '''
num = menu_choice # 菜單選擇變量別名。
if not num: # 退出系統。
print(f"\n\n{
'-'*50}\n{
color('正在保存詞庫……','f_green').center(51)}\n{
'-'*50}")
pass # 詞庫保存,程序設計中。
system('clear')
print(f"\n\n{
color('-'*50, 'f_green')}\n\n{
color('謝謝使用“單詞記憶系統”!','f_yellow').center(48)}\n\n{
color('Author: Dream Elf','f_gray').center(56)}\n{
color('*'*50,'f_green')}\n\n")
return num
elif num == 1: # 單詞練習。
input(f"\n\n{
'-'*50}\n{
color('單詞練習正在建設……','f_green').center(49)}\n{
'-'*50}")
return num
elif num == 2: # 單詞測試。
input(f"\n\n{
'-'*50}\n{
color('單詞測試正在建設……','f_green').center(49)}\n{
'-'*50}")
return num
elif num == 3: # 生詞添加。
input(f"\n\n{
'-'*50}\n{
color('生詞添加正在建設……','f_green').center(49)}\n{
'-'*50}")
return num
elif num == 4: # 說明文檔。
input(f"\n\n{
'-'*50}\n{
color('說明文檔正在建設……','f_green').center(49)}\n{
'-'*50}")
return num

菜單選擇錯誤提示


1. 輸入錯誤



2. 超出范圍



優化了“菜單選擇”錯誤提示字符串列印格式:

1. 代碼

from word_remember_tools import menu_show, ismenu
from mypytools.python_color import color
menu_str = '單詞練習,單詞測試,生詞添加,系統文檔'.split(',') # 系統菜單字符串列表。
while True:
menu_show.MenuShow().show(menu_str) # 調用模塊列印菜單。
try:
menu_choice = int(input(f"{
'-'*50}\n\n{
'':>12}{
color('選擇菜單', 'f_green')}:"))
except Exception as error:
input(f"\n\n{
'-'*50}\n\n{
color(' 選擇錯誤!'.center(45, '-'),'f_red')}\n\n{
color('ErrorType:', 'f_gray')} {
color(error, 'f_yellow')}\n{
'-'*50}\n\n")
continue
if menu_choice not in range(len(menu_str)+1):
error = f"您輸入的數字,超出菜單序號選擇范圍 '1~{
len(menu_str)}' :'{
menu_choice}' "
input(f"\n\n{
'-'*50}\n\n{
color('選擇錯誤!'.center(45, '-'),'f_red')}\n\n{
color('錯誤類型:', 'f_gray')}{
color(error, 'f_yellow')}\n{
'-'*50}\n\n")
continue
if not ismenu.IsMenu().ismenu(menu_choice):
break # 菜單選擇0,退出系統菜單循環。

2. 效果



(2022-06-20 06:29 am)


菜單確認之“系統退出”提示


回目錄


別人“網”來,准備給孩子做“單詞記憶”程序的代碼:

import random
import turtle as t
WORDS = {
"easy": "簡單", "difficult": "困難", "answer": "答案"}
iscontinue = "y"
while iscontinue == "y" or iscontinue == "Y":
print(
""" 歡迎使用BillChen單詞速背系統 英譯漢請輸入Y 漢譯英請輸入N 添加單詞請按L 模擬練習請按T 結束程序請按W 開發詳情請按任意鍵 """
)
F = input()
if F == 'N' or F == 'n':
new_WORDS = {
v: k for k, v in WORDS.items()}
n = input("請輸入需要查詢的單詞或詞語:")
if n in new_WORDS:
print(new_WORDS[n])
else:
print('暫未收錄,敬請期待')
iscontinue = input("\n\n是否繼續(Y/N):")
elif F == 'Y' or F == 'y':
n = input("請輸入需要查詢的單詞或詞語:")
if n in WORDS:
print(WORDS[n])
else:
print('暫未收錄,敬請期待')
iscontinue = input("\n\n是否繼續(Y/N):")
elif F == 'L' or F == 'l':
new_value = input('請輸入一個新的單詞的釋義:')
new_key = input('請輸入這個新單詞:')
WORDS[new_key] = new_value
print(WORDS)
elif F == 'T' or F == 't':
i = 0
z = 0
while i < 5:
key = random.choice(list(WORDS))
right_key = WORDS[key]
print(key)
user_key = input("請輸入這個單詞的釋義:")
if user_key == right_key:
print('恭喜您,此題答對了')
z = z + 1
else:
print('很遺憾,此題打錯了,再接再厲哦')
print('正確答案是:{}'.format(right_key))
''' 2021/2/7根據樹扇風吹雲起的提議增添答錯時會輸出正確答案 '''
i = i + 1
print('恭喜您,本次模擬結束,本次您的正確率為:{:.2%}'.format(z / 5))
elif F == 'W' or F == 'w':
print("程序已經退出,歡迎您的下次使用")
iscontinue = "n"
else:
t.setup(1800, 800, 0, 0)
t.bgcolor('pink')
t.color('red')
t.shape('turtle')
t.speed(5)
t.begin_fill()
t.up()
t.goto(-120, 100)
t.down()
for i in range(5):
t.forward(240)
t.right(144)
t.end_fill()
t.penup()
t.goto(200, 100)
t.pendown
t.color('black')
t.write('開發人員:popolo', font=("Arial", 34, "normal"))
t.right(90)
t.fd(100)
t.color('red')
t.write('', font=("Arial", 34, "italic"))
t.left(90)
t.fd(50)
t.color('black')
t.write('學號:201805050118', font=("Arial", 34, "italic"))
t.right(90)
t.fd(100)
t.write('班級:18計科本1班', font=("Arial", 34, "bold"))
t.right(90)
t.fd(500)
t.write('考試必過', font=("Arial", 34, "bold"))
t.right(90)
t.fd(300)
t.write('單詞速背系統', font=("Arial", 34, "bold"))
t.hideturtle()
t.exitonclick()

回首頁


My Up and Down

__上一篇:__ 練習:數字時鐘(Python 自定義類)

__下一篇:__ 仿真模擬雙色球

我的HOT博:

  • 練習:銀行復利計算(用 for 循環解一道初中小題)(1040閱讀)
  • pandas 數據類型之 DataFrame(1238閱讀)
  • 班裡有人和我同生日難嗎?(概率probability、蒙特卡洛隨機模擬法)(2067閱讀)
  • Python字符串居中顯示(1402閱讀)
  • 練習:求偶數和、阈值分割和求差( list 對象的兩個基礎小題)(1633閱讀)
  • 用 pandas 解一道小題(1954閱讀)
  • 可迭代對象和四個函數(1061閱讀)
  • “快樂數”判斷(1224閱讀)
  • 羅馬數字轉換器(構造元素取模)(1923閱讀)
  • Hot:羅馬數字(轉換器|羅生成器)(3405閱讀)
  • Hot:讓QQ群昵稱色變的代碼(25245閱讀)
  • Hot:斐波那契數列(遞歸| for )(3946閱讀)
  • 柱狀圖中最大矩形(1639閱讀)
  • 排序數組元素的重復起止(1230閱讀)
  • 電話撥號鍵盤字母組合(1335閱讀)
  • 密碼強度檢測器(1782閱讀)
  • 求列表平衡點(1804閱讀)
  • Hot: 字符串統計(4193閱讀)
  • Hot:尼姆游戲(聰明版首發)(3405閱讀)尼姆游戲(優化版)(975閱讀)
推薦條件點閱破千

回目錄


精品文章:

  • 好文力薦:《python 完全自學教程》齊偉書稿免費連載
  • OPP三大特性:封裝中的property
  • 通過內置對象理解python'
  • 正則表達式
  • python中“*”的作用
  • Python 完全自學手冊
  • 海象運算符
  • Python中的 `!=`與`is not`不同
  • 學習編程的正確方法

來源:老齊教室


回目錄

Python 入門指南【Python 3.6.3】


好文力薦:

  • 全棧領域優質創作者——寒佬(還是國內某高校學生)好文:《非技術文—關於英語和如何正確的提問》,“英語”和“會提問”是學習的兩大利器。

  • 【8大編程語言的適用領域】先別著急選語言學編程,先看它們能干嘛

  • 靠譜程序員的好習慣


CSDN實用技巧博文:

  • 8個好用到爆的Python實用技巧
  • python忽略警告


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved