日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python通過(guò)類的組合模擬街道紅綠燈

瀏覽:137日期:2022-07-11 08:21:15

一,紅綠燈揭示板案例思路

1. 創(chuàng)建Traffic_light紅綠燈類

(1)靜態(tài)屬性 :

<1> 綠燈時(shí)間,<2> 黃燈時(shí)間 , <3> 紅燈時(shí)間, <4> 兩塊顯示時(shí)間的電子屏

(2)動(dòng)態(tài)屬性

<1> 輸入紅黃綠時(shí)間函數(shù)(靜態(tài)函數(shù)),<2> 紅黃綠時(shí)間倒計(jì)時(shí)函數(shù) ,<3> 構(gòu)造電子屏數(shù)字的顯示函數(shù),<4> 顯示兩塊電子屏綁定兩位數(shù)的顯示函數(shù)<5> 實(shí)例化對(duì)象展示電子屏函數(shù)

2. 電子屏類的創(chuàng)建(Light):

python中沒(méi)有數(shù)組,因此自己創(chuàng)建函數(shù)把獲取到的值存放到數(shù)組中

(存放內(nèi)容: 20行,10列的布爾值)

3. input_time(color:str)函數(shù)的創(chuàng)建

<1> 導(dǎo)入colorama包并初始化實(shí)現(xiàn)windows命令行下顏色字體打印效果<2> 輸入紅黃綠時(shí)間的字體成對(duì)應(yīng)的顏色<3> 通過(guò)colorama類方法實(shí)現(xiàn)輸入的紅黃綠時(shí)間為對(duì)應(yīng)的顏色展示<4> 對(duì)輸入的數(shù)字進(jìn)行校驗(yàn)(必須為1-99之間的正數(shù)。因?yàn)橐粔K電子屏只記錄一位數(shù)字)<5> 返回相應(yīng)的值

4. Countdown數(shù)字倒計(jì)時(shí)函數(shù)的創(chuàng)建

<1> 通過(guò)while循環(huán)讓三個(gè)燈的狀態(tài)一直循環(huán)持續(xù)<2> 對(duì)于紅黃綠燈輸入的數(shù)字進(jìn)行遞減打印流程如下#流程: 清屏-->打印完后 -->暫停1秒鐘-->清屏 -->數(shù)字減一后再打印-->再暫停1秒鐘-->清屏-->再數(shù)字減一打印<3> 導(dǎo)入time,os,colorama等需要的包

5.build_LED_number函數(shù)的創(chuàng)建

之前創(chuàng)建的電子屏是默認(rèn)False的狀態(tài)。分別構(gòu)造0-9的狀態(tài)在電子屏中True的狀態(tài)的顯示

6.print_LED函數(shù)的創(chuàng)建

兩塊電子屏,分別顯示輸入時(shí)間的第一位和第二位數(shù)字.如果數(shù)字為單數(shù)則前面用零補(bǔ)齊的方法顯示。兩塊屏并排顯示每一位數(shù)字,從而展示電子版的效果

7.注意事項(xiàng):

因?yàn)槲覀冇玫搅薿s,及colorama類。所以最終效果的展示不是在pycharm中展示。而是在windows的cmd命令行中展示。

原因是因?yàn)槲覀兇a中調(diào)用了os.system('cls')這個(gè)清屏命令。在pycharm中是很難做到清屏的效果。

另外在pycharm中對(duì)于電子屏的展示效果也不如windows cmd中展示的效果俱佳。因此運(yùn)行程序是請(qǐng)?jiān)趙indows命令行中運(yùn)行。

二,紅綠燈揭示板代碼的呈現(xiàn)

import timeimport osfrom colorama import init,Fore,Back,Style#命令行模式字體顏色初始化init(autoreset=True)#電子屏類class Light: #構(gòu)造函數(shù) def __init__(self): self.light = [] #存儲(chǔ)行列數(shù)組的集合 #自動(dòng)初始化 self.prepare_light() def prepare_light(self): ''' 電子屏的創(chuàng)建 python中沒(méi)有數(shù)組.因此通過(guò)類,函數(shù)來(lái)創(chuàng)建數(shù)組得到一個(gè)20行10列的數(shù)組 :return: ''' for row in range(20): #20行 temp = [] # 臨時(shí)存儲(chǔ)每行10個(gè)圈 for col in range(10): #10列temp.append(False) #默認(rèn)燈都是不亮的因此通過(guò)布爾類型的False表示不亮的狀態(tài) #把行列排的200個(gè)燈的狀態(tài)存入到light集合中 self.light.append(temp)#紅綠燈類class Traffic_light: #構(gòu)造函數(shù),靜態(tài)屬性 def __init__(self,green_time,yellow_time,rea_time): self.green_time = green_time #綠燈時(shí)間 self.yellow_time = yellow_time #黃燈時(shí)間 self.red_time = rea_time #紅燈時(shí)間 #通過(guò)類的組合調(diào)用Light類函數(shù) self.number01 = Light() #創(chuàng)建第一個(gè)電子屏 self.number02 = Light() #創(chuàng)建第二個(gè)電子屏 #紅黃綠等時(shí)間倒計(jì)時(shí)函數(shù) def countdown(self): while True: #流程: 清屏-->打印完后 -->暫停1秒鐘-->清屏 -->數(shù)字減一后再打印-->再暫停1秒鐘-->清屏-->再數(shù)字減一打印 for number in range(self.green_time,-1,-1):#第一個(gè)-1代表取值到0,如果設(shè)置0則取值取不到0.第二個(gè)-1代表數(shù)字減一os.system('cls') #清屏self.start_display(number,'green') #調(diào)用start_display函數(shù)傳數(shù)字及顏色time.sleep(1) #停止一秒鐘 # 黃燈倒計(jì)時(shí) for number in range(self.yellow_time,-1,-1):os.system('cls') #清屏self.start_display(number,'yellow')time.sleep(1) #停止一秒鐘 # 紅燈倒計(jì)時(shí) for number in range(self.red_time,-1,-1):#第一個(gè)-1代表取值到0,如果設(shè)置0則取值取不到0.第二個(gè)-1代表數(shù)字減一os.system('cls') #清屏self.start_display(number,'red')time.sleep(1) #停止一秒鐘 @staticmethod #靜態(tài)方法不需要初始化 def input_time(color:str): # 設(shè)置全局變量(便于靜態(tài)方法使用) time = '' while True: if color.lower() in ['green','綠色','綠','綠燈']:print(Fore.GREEN + '請(qǐng)輸入綠燈的時(shí)間:',end='') #實(shí)現(xiàn)打印字體呈現(xiàn)顏色效果time = input() if color.lower() in ['yellow', '黃色', '黃', '黃燈']:print(Fore.YELLOW + '請(qǐng)輸入黃燈的時(shí)間:', end='')time = input() if color.lower() in ['red', '紅色', '紅', '紅燈']:print(Fore.RED + '請(qǐng)輸入紅燈的時(shí)間:', end='')time = input() #校驗(yàn)輸入的是否合規(guī) if not time.isdigit():print('輸入的值不符合要求。【要求:必須是1-99之間的正數(shù)。】')continue else:time_number = int(time) # 因?yàn)閠ime是字符串.拿到數(shù)字后轉(zhuǎn)成Int類型再判斷if time_number < 1 or time_number > 99: print('輸入的值不符合要求。【要求:必須是1-99之間的正數(shù)。】') continueelse: return time_number def build_LED_number(self,char:str): ''' :param char: LED燈數(shù)字的構(gòu)造 :return: 返回temp_LED這個(gè)數(shù)組 ''' temp_LED = Light() #臨時(shí)創(chuàng)建新的數(shù)組 if char == '0': #構(gòu)造0 for row in range(20):for col in range(10): if row < 2: #最上面兩列 temp_LED.light[row][col] = True if row > 17: #最下面兩列 temp_LED.light[row][col] = True if col < 2:#最左邊兩列 temp_LED.light[row][col] = True if col > 7: #最后面兩列 temp_LED.light[row][col] = True elif char == '1': #構(gòu)造1 for row in range(20):for col in range(10): if col > 7: #最后面兩列 temp_LED.light[row][col] = True elif char == '2': #構(gòu)造2 for row in range(20):for col in range(10): if row < 2: # 最上面兩列 temp_LED.light[row][col] = True if col > 7 and row < 9: # 最后面兩列 temp_LED.light[row][col] = True if row == 9 or row == 10: # 中間兩行 temp_LED.light[row][col] = True if col < 2 and row >10: #左邊列 temp_LED.light[row][col] = True if row > 17: # 最下面兩列 temp_LED.light[row][col] = True elif char == '3': #構(gòu)造3 for row in range(20):for col in range(10): if row < 2: # 最上面兩列 temp_LED.light[row][col] = True if col > 7 : # 最后面兩列 temp_LED.light[row][col] = True if row == 9 or row == 10: # 中間兩行 temp_LED.light[row][col] = True if row > 17: # 最下面兩列 temp_LED.light[row][col] = True elif char == '4': # 構(gòu)造4 for row in range(20):for col in range(10): if col < 2 and row <9: # 最上面兩列 temp_LED.light[row][col] = True if col > 7: # 最后面兩列 temp_LED.light[row][col] = True if row == 9 or row == 10: # 中間兩行 temp_LED.light[row][col] = True elif char == '5': # 構(gòu)造5 for row in range(20):for col in range(10): if row < 2: temp_LED.light[row][col] = True if col < 2 and row < 9: temp_LED.light[row][col] = True if row == 9 or row == 10: temp_LED.light[row][col] = True if col > 7 and row > 10: temp_LED.light[row][col] = True if row > 17: temp_LED.light[row][col] = True elif char == '6': # 構(gòu)造6 for row in range(20):for col in range(10): if row < 2: temp_LED.light[row][col] = True if col < 2: temp_LED.light[row][col] = True if row == 9 or row == 10: temp_LED.light[row][col] = True if col > 7 and row > 10: temp_LED.light[row][col] = True if row > 17: temp_LED.light[row][col] = True elif char == '7': # 構(gòu)造7 for row in range(20):for col in range(10): if row < 2: temp_LED.light[row][col] = True if col > 7: temp_LED.light[row][col] = True elif char == '8': #構(gòu)造8 for row in range(20):for col in range(10): if row < 2: #最上面兩列 temp_LED.light[row][col] = True if row > 17: #最下面兩列 temp_LED.light[row][col] = True if row == 9 or row == 10: # 中間兩行 temp_LED.light[row][col] = True if col < 2:#最左邊兩列 temp_LED.light[row][col] = True if col > 7: #最后面兩列 temp_LED.light[row][col] = True elif char == '9': # 構(gòu)造9 for row in range(20):for col in range(10): if row < 2: # 最上面兩列 temp_LED.light[row][col] = True if col < 2 and row < 9: temp_LED.light[row][col] = True if row > 17: # 最下面兩列 temp_LED.light[row][col] = True if row == 9 or row == 10: # 中間兩行 temp_LED.light[row][col] = True if col > 7: # 最后面兩列 temp_LED.light[row][col] = True #返回值 return temp_LED def print_LED(self,color:str): for row in range(20): #打印第一個(gè)數(shù) for col01 in range(10):if self.number01.light[row][col01] == True: if color == 'green': print(Fore.GREEN + '●',end='') elif color == 'yellow': print(Fore.YELLOW + '●',end='') elif color == 'red': print(Fore.RED + '●',end='')else: print(' ',end='') # 兩個(gè)全角空格 注釋:○占用的字符相當(dāng)于兩個(gè)全角空格的占位 print('t',end='') #打印第二個(gè)數(shù) for col02 in range(10):if self.number02.light[row][col02] == True: if color == 'green': print(Fore.GREEN + '●',end='') elif color == 'yellow': print(Fore.YELLOW + '●',end='') elif color == 'red': print(Fore.RED + '●',end='')else: print(' ',end='') #換行 print() def start_display(self,number:int,color:str): ''' 電子屏展示 :param number:電子屏上展示的數(shù)字 :param color: 電子屏上展示的顏色 :return: ''' number_str = '%02d' % number #傳進(jìn)來(lái)的數(shù)字2位顯示 self.number01 = self.build_LED_number(number_str[0]) #把數(shù)字的第一位給第一個(gè)電子屏 self.number02 = self.build_LED_number(number_str[1]) #把數(shù)字的第二位給第二個(gè)電子屏 #在電子屏上顯示 self.print_LED(color)if __name__ == '__main__': green_time = Traffic_light.input_time('綠燈') yellow_time = Traffic_light.input_time('黃燈') red_time = Traffic_light.input_time('紅燈') #實(shí)例化 traffic01 = Traffic_light(green_time,yellow_time,red_time) traffic01.countdown()

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
石原莉奈在线亚洲三区| 老色鬼精品视频在线观看播放| 成人自拍av| 国产乱论精品| 日本欧美在线看| 免费不卡中文字幕在线| 日韩欧美一区免费| 精品国产乱码久久久| 日韩成人精品一区二区三区| 亚洲精品1区2区| 亚洲高清不卡| 2023国产精品久久久精品双 | 欧美亚洲国产一区| 黄色在线观看www| 欧美精品导航| 卡一精品卡二卡三网站乱码| 国产精品亚洲欧美一级在线| 日韩影片在线观看| 涩涩涩久久久成人精品| 日韩精选在线| 久久精品xxxxx| 欧美日韩视频免费看| 国产精品免费99久久久| 中文字幕av一区二区三区人| 天堂va在线高清一区| 亚洲涩涩av| 国产亚洲精品美女久久 | 精品中文在线| 日韩精品首页| 99日韩精品| 国产欧美日韩精品一区二区免费| 日韩国产成人精品| 免费一级欧美片在线观看网站| 激情综合五月| 日韩欧美一区二区三区免费观看| 今天的高清视频免费播放成人| 好吊日精品视频| 久久国产人妖系列| 精品免费av在线| 亚洲精品影院在线观看| 国产亚洲高清一区| 久久男女视频| 国产精品久久久久久av公交车| 高清在线一区| 综合激情婷婷| 日韩三区免费| 日韩av不卡一区二区| 成人影视亚洲图片在线| 亚洲欧美视频| 岛国av免费在线观看| 日av在线不卡| 国产精品久久久久av电视剧| 亚洲综合五月| 日韩在线观看不卡| 欧美一区激情| 久久久久国产精品一区二区| 日韩av中文字幕一区二区| 久久精品国产68国产精品亚洲| 日日夜夜免费精品| 美女久久一区| 亚洲特色特黄| 不卡一二三区| 欧美日韩一区二区高清| 久久国产成人| 狠狠久久婷婷| 国产精品亚洲欧美日韩一区在线 | 日本成人精品| 香蕉久久夜色精品国产| 少妇精品导航| 精品国产美女a久久9999| 亚洲一区欧美| 蜜臀精品久久久久久蜜臀| 婷婷成人综合| 欧美日韩免费看片| 国产精品久久久久久av公交车 | 国产一区二区三区不卡视频网站| 日本麻豆一区二区三区视频| 亚洲一区中文| 欧美日韩精品免费观看视欧美高清免费大片| 国产欧美日韩影院| 国产精品亚洲欧美| 国产精品九九| 美女视频黄免费的久久| 国产精品久久亚洲不卡| 国产精品777777在线播放 | 精品国产亚洲一区二区三区在线 | 免费在线观看一区二区三区| 久久亚洲成人| 香蕉久久99| 乱人伦精品视频在线观看| 性欧美69xoxoxoxo| 国产亚洲午夜| 日韩精品第二页| 91精品日本| 国产精品久久久久av电视剧| 日韩精品欧美| 蜜臀av在线播放一区二区三区| 亚洲另类黄色| 精品成人18| 国产精品男女| 免费视频最近日韩| 美女网站一区| 麻豆精品视频在线观看视频| 神马午夜久久| 免费成人在线视频观看| 日韩精品1区2区3区| 97人人精品| 蜜臀av在线播放一区二区三区| 日韩和欧美的一区| 精品免费av在线| 日本不卡高清视频| 亚洲成人二区| 国产日本久久| 亚洲欧美专区| 欧美成人基地 | 欧美日一区二区在线观看| 大香伊人久久精品一区二区 | 国产一区二区三区国产精品| 黄色亚洲在线| 伊人久久高清| 国产亚洲一区二区手机在线观看| 国产欧美一区二区三区米奇| 老牛影视一区二区三区| 欧美国产美女| 伊人久久大香伊蕉在人线观看热v| 精品色999| 欧美极品一区二区三区| 国产精品黑丝在线播放| 日韩大片在线播放| 一区二区精品| 亚洲视频国产精品| 亚洲精品欧美| 日本不卡视频在线| 日韩精品免费视频人成| 亚洲精品日本| 免费在线亚洲欧美| 麻豆一区二区在线| 欧美黄色一区二区| 精品国产一级| 亚洲精品88| 中国字幕a在线看韩国电影| а√天堂8资源在线| 99久久亚洲精品蜜臀| 另类av一区二区| 国产一区久久| 日本在线高清| 999国产精品永久免费视频app| 亚洲韩日在线| 免费日韩一区二区| 国产精品对白| 国产亚洲一区二区手机在线观看 | 中文无码久久精品| 四虎成人精品一区二区免费网站| 免费成人在线影院| 视频一区中文字幕精品| 国产麻豆一区二区三区精品视频| 一本综合精品| 久久av免费| 黄色日韩在线| 911亚洲精品| 亚洲在线国产日韩欧美| 麻豆国产欧美一区二区三区| 激情欧美国产欧美| 精品午夜av| 日本免费一区二区视频| se01亚洲视频| 久久人人99| 国产字幕视频一区二区| 日韩精品一区二区三区免费观看| 亚洲精品**中文毛片| 国产成人久久精品一区二区三区| 日韩av成人高清| 美女性感视频久久| 都市激情国产精品| 在线日韩视频| 视频在线观看一区| 久久国产日韩| 久久精品影视| 国产婷婷精品| 国产伦精品一区二区三区千人斩 | 乱一区二区av| 五月天综合网站| 久久不见久久见免费视频7| 欧美sss在线视频| 国产日韩综合| 国产亚洲字幕| 蜜臀久久99精品久久一区二区| 青青草国产成人99久久| 久久激情婷婷| 日韩免费视频| 国产精品99久久精品| 精品美女视频 | 国产高清一区二区| 久久中文字幕av一区二区不卡| 欧美一区不卡| 欧美日韩中出| 国产欧美一区二区三区米奇| 日韩va欧美va亚洲va久久| 青青草国产成人99久久| 国产精品sm|