日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python点阵显示数字_程序点滴001_Python模拟点阵数字

發布時間:2023/12/8 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python点阵显示数字_程序点滴001_Python模拟点阵数字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

嘗試過很多編程語言,寫過不少程序(當然,基本上都是些自娛自樂或給自己用的工具類的小玩意兒),逐漸認識到編寫程序是一個不斷完善、不斷優化的過程——編程首先要有一個想法(目標),圍繞這個目標形成最基本的功能邏輯,測試證明功能有效之后就算目標基本實現了。隨后,可以擴展基本功能的應用領域,加強程序的容錯能力和交互性,逐漸形成一個更完善更健壯的程序。以下通過一個小例子來對此過程稍作展示:

在計算器上、電梯上、LED顯示屏上,都可以看到用點陣表示的數字

這里,我們嘗試用Python來模擬點陣數字,簡而言之,就是把數字放大(^_^)

一、設計點陣數字的顯示效果

為了簡化,我們這里只考慮0~9這十個阿拉伯數字,每個數字點陣都是5行4列,在Python中可以用tuple來表示。(在設計點陣字模的過程中,你也可以體驗一下當美工或字體設計師的感覺,@_@)。在Python中,這個過程很簡單(以下僅以0,1兩個數字為例)。

FONTCOL=4

FONTROW=5

zero=( " ** ",

"* *",

"* *",

"* *",

" ** ")

one=( " * ",

" ** ",

" * ",

" * ",

" ***")

二、 測試輸出效果

為了考察數字點陣的輸出效果,也為了驗證將來的輸出邏輯,可以用一段最簡單的程序把所有字模輸出。功能邏輯很簡單:

a. 對于一個序列中的每個數字,找到其對應字模,輸出該字模的第一行,空一格;然后輸出下一個數字對應字模的第一行,空格,直到全部數字對應字模的第一行都已輸出

b. 繼續依次輸出每一行,直到結束(在本程序中是5行,即FONTROW)

完整程序:

import sys

FONTCOL=4

FONTROW=5

#以下構建數字點陣

zero=(" ** ",

"* *",

"* *",

"* *",

" ** ")

one= (" * ",

" ** ",

" * ",

" * ",

" ***")

two= (" ** ",

"* *",

" * ",

" * ",

"****")

three=(" ** ",

"* *",

" **",

"* *",

" ** ")

four= (" * ",

" ** ",

"* * ",

"****",

" * ")

five= ("****",

"* ",

"****",

" *",

"****")

six= (" ** ",

"* ",

"*** ",

"* *",

" ** ")

seven=(" ***",

"* *",

" * ",

" * ",

" ***")

eight=(" ** ",

"* *",

" ** ",

"* *",

" ** ")

nine= (" ** ",

"* *",

" ***",

" *",

" ** ")

digits=(zero,one,two,three,four,five,six,seven,eight,nine) #將所有數字字模合成一個元組

i=0

while i

col=0

while col<10: #此處輸出全部字模,共計10個

print(digits[col][i],end=" ")

col+=1

print("") #換行,輸出字模下一行

i+=1

輸出效果:

三、優化和完善1——根據輸入的不同,顯示不同的輸出

通過argv讀取輸入參數(即用戶想要顯示的具體數字),若用戶未提供參數,則提供使用說明和示例輸出

這里就可以把上面用到測試輸出代碼稍作調整,形成一個函數show_numbers。(注意其print部分有小調整)

核心代碼:

import sys

FONTCOL=4

FONTROW=5

#以下構建數字點陣

#略

digits=(zero,one,two,three,four,five,six,seven,eight,nine) #將所有數字字模合成一個元組

def show_number(nums):

i=0

while i

col=0

while col

print(digits[int(nums[col])][i],end=" ")

col+=1

print("") #換行,輸出字模下一行

i+=1

def show_usage():

print("請在程序名之后提供15個數字以內的整數")

print("程序名.py 0123456789")

show_number('0123456789')

if len(sys.argv)==2:

show_number(sys.argv[1])

else:

show_usage()#如果未提供參數或提供的參數過多,則輸出使用說明

四、優化和完善2——對輸入進行檢查

以上代碼已經可以應付基本需求了,但對于用戶的錯誤輸入沒有抵抗能力。我們計劃從以下幾個方面進行優化:

a. 限制用戶的最大輸入字符個數

在DOS界面,一行最多顯示80個字符,字模每個占4字符,字模間有1字符空格,在考慮行尾的換行符,所以我們一次最多允許輸入80/(4+1)-1=15個數字。

b. 限制用戶只能輸入阿拉伯數字

如果用戶誤輸入非數字信息,如英文字符等,則int()函數會報 ValueError,抓住這個Error并做提示

調整后的程序:

try:

if len(sys.argv)==2:

if len(sys.argv[1])<16:

show_number(sys.argv[1])

else:

show_usage()

else:

show_usage()#如果未提供參數或提供的參數過多,則輸出使用說明

except ValueError:

print("\n\n未能正確顯示全部信息!!——出現了非數字的字符!\n")

show_usage()

總結

以上是生活随笔為你收集整理的python点阵显示数字_程序点滴001_Python模拟点阵数字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。