Python操作Excel 隨機點菜指令碼

2022-05-09 04:21:08 字數 2832 閱讀 2808

背景:

中午快餐,選單吃了個遍,天天糾結於不知道點啥菜。 

想起讀書考試時,丟紙團選答案,於是用python寫個隨機點菜指令碼玩玩。

功能:      選單為excel,乙個sheet頁為乙個分類,每行顯示每道菜的編號、菜名、**,如下圖所示。

1、程式啟動,程式提示選擇分類,按輸入的數字進入相應分類所在sheet頁(目前分類寫死,只有3類)。

2、 程式獲取sheet頁最大行數,以此為上限,隨機生成乙個1到最大行數之間的數字。

3、程式根據生成的隨機數,讀出該行的菜名、**。

4、程式總計可隨機選菜3次,3次後退出,每次提示是否繼續,是則繼續,否則程式立即退出。

5、若所選分類所在sheet頁總行數小於3,不能滿足3次隨機,則程式提示並退出。

6、輸入時,程式檢查輸入合法性,並給出相應提示。

python 2.7.5**:

#

coding=utf-8

import

sysimport

xlrd

import

random

#開啟選單excel

workbook = xlrd.open_workbook('

d:\\menu.xls')

#計數器為0

counters =0

#預設繼續

yesorno = 'y'

while 1:

#判斷計數器,最多能選擇3次

if counters<3:

#判斷繼續還是退出,預設是繼續的

if yesorno=='y'

: choose_num = raw_input('

選擇分類(1、小炒類|2、麵食類|3、其他類):')

#判斷選擇的分類是否在三大類這中

if choose_num in ['

1','

2','3'

]:

#根據選擇的分類,進入到相應sheet頁

excel_sheet = workbook.sheet_by_index(int(choose_num)-1)

#獲取sheet頁的行數和列數

nrows_num =excel_sheet.nrows

ncols_num =excel_sheet.ncols

print

if nrows_num>3:

#生成乙個隨機數

random_num = random.randint(1,nrows_num-1)

#根據生成的隨機數,獲取到該行的菜名

name = excel_sheet.row(random_num)[1].value

#根據生成的隨機數,獲取到該行的**

price = excel_sheet.row(random_num)[2].value

#輸出獲取到的分類、菜名、**

print

'-----第

',counters+1,'

次隨機點菜結果:-----

'.decode('

utf-8')

print

'分類:

',excel_sheet.name

print

'菜名:

',name

print

'**:

'.decode('

utf-8

'),price,'

元'.decode('

utf-8')

#計數器+1

counters+=1

print

#提示是否繼續?將輸入內容英文小寫化

yesorno = raw_input('

是否繼續?y或n(不分大小寫):

').lower()

print

else

:

print

'該分類行數小於3,不支援3次隨機,請修改!!!

'break

#判斷輸入的分類是否是1、2、3

else

:

print

'只能輸入1、2、3,請重新輸入!

'print

#判斷是否繼續輸入n,則退出

elif yesorno=='n'

:

print

'你選擇了退出!

'break

#判斷是否繼續輸入的值,非y或n則繼續要求輸入

else

:

print

'只能輸入y或n,try again:

'print

yesorno = raw_input('

是否繼續?y或n(不分大小寫):

').lower()

print

#判斷計數器達到3次,程式退出

else

:

print

print

'你已經選了三次,還不能確定要吃啥?你直接吃粑粑去吧!!!

'break

測試:3、 校驗『是否繼續』輸入非法(中文、非y或n之外的英文、浮點數)時,給出相應提示,輸入n或n,則退出 :

4、行數小於3時,不能滿足3次隨機,給出相應提示,程式退出:

5、重複選擇同一分類,結果如下(此處存在隨機數重複的bug,有待改進):

bug:

Python實現Excel隨機抽取數

有這樣一組資料 現在要隨機抽取十個數字,如下 import sys import xlrd import random print pm2.5 天津 開啟excel workbook xlrd.open workbook 2.xls 進入sheet excel sheet workbook.shee...

Python 操作Excel檔案

from openpyxl import load workbook 開啟excel檔案 wb load workbook test.xlsx 定位第乙個sheet sheet wb sheet1 獲取第1行第1列的單元格的值 print 第1行第1列的單元格的值 format sheet.cell...

python對excel的操作

一 安裝xlrd模組 二 使用介紹 1 匯入模組 import xlrd 2 開啟excel檔案讀取資料 data xlrd.open workbook excelfile.xls 3 使用技巧 獲取乙個工作表 table data.sheets 0 通過索引順序獲取 table data.shee...