from?tkinter?import?*

成都創(chuàng)新互聯(lián)公司主營瑞麗網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),瑞麗h5微信平臺小程序開發(fā)搭建,瑞麗網(wǎng)站營銷推廣歡迎瑞麗等地區(qū)企業(yè)咨詢
from?tkinter?import?ttk
from?tkinter?import?font
import?os
import?arrange
#?課程的字典
crslst?=?{}
crslst_in_num?=?{}
#?GUI
root?=?Tk()
#?frame2
#?右側(cè)的內(nèi)容
frame2?=?ttk.Frame(root,?borderwidth=5,?relief="sunken")
frame2.grid(column=1,?row=0)
#?將數(shù)字轉(zhuǎn)換為漢字的字典
numtoch?=?{1:?'一',?2:?'二',?3:?'三',?4:?'四',?5:?'五'}
#?設(shè)置課表周圍周一至周五和1至13的標(biāo)簽
for?num?in?list(range(1,?6)):
ttk.Label(frame2,?text='周'?+?numtoch[num]).grid(column=num,?row=0)
emptylist?=?[]
for?num?in?list(range(1,?14)):
ttk.Label(frame2,?text='第'?+?str(num)?+?'節(jié)').grid(column=0,?row=num)
#?課表主體
schd1?=?Listbox(frame2,?height=13)
schd1.grid(column=1,?row=1,?rowspan=13,?sticky=(N,?S,?E,?W))
schd2?=?Listbox(frame2,?height=13)
schd2.grid(column=2,?row=1,?rowspan=13,?sticky=(N,?S,?E,?W))
schd3?=?Listbox(frame2,?height=13)
schd3.grid(column=3,?row=1,?rowspan=13,?sticky=(N,?S,?E,?W))
schd4?=?Listbox(frame2,?height=13)
schd4.grid(column=4,?row=1,?rowspan=13,?sticky=(N,?S,?E,?W))
schd5?=?Listbox(frame2,?height=13)
schd5.grid(column=5,?row=1,?rowspan=13,?sticky=(N,?S,?E,?W))
#?設(shè)置字體
ft?=?font.Font(family='Microsoft?YaHei',?size=12,?weight='normal')
#?為了便捷將五天的課表作為一list
daylist?=?(schd1,?schd2,?schd3,?schd4,?schd5)
#?設(shè)置課表
for?day?in?daylist:
day['selectmode']?=?'extended'
day['exportselection']?=?False
for?num?in?range(1,?14):
day.insert(0,?'無課')
day['font']?=?ft
day['width']?=?10
#?課表下四個按鈕和一個combobox
#?改變顏色
def?chcolor():
print("\033[1;42m\033[0m")
butdont?=?ttk.Button(frame2,?text='不上課',?command=chcolor).grid(column=3,?row=15)
#?清除選擇
butusel?=?ttk.Button(frame2,?text='清除選擇').grid(column=4,?row=15)
Label(frame2,?text='選擇課表').grid(column=0,?row=15,?columnspan=2,?sticky=W)
outputlist?=?ttk.Combobox(frame2,?textvariable=['待選',?'ok'])
outputlist.grid(column=1,?row=15,?columnspan=2,?sticky=E)
#?frame1
#?左側(cè)的內(nèi)容
frame1?=?ttk.Frame(root,?borderwidth=5,?relief="sunken")
frame1.grid(column=0,?row=0)
#?設(shè)置上方的label
Label(frame1,?text='輸入課程信息').grid(column=0,?row=0,?columnspan=2)
#?輸入課程號的Label和entry
Label(frame1,?text='課程號:').grid(column=0,?row=1,?sticky=W)
coursenum?=?StringVar()
inputcoursenum?=?ttk.Entry(frame1,?textvariable=coursenum,?width=13)
inputcoursenum.grid(column=1,?row=1,?sticky=E)
#?已選課程的listbox
Label(frame1,?text='已選課程').grid(column=0,?row=3,?sticky=W)
courselist?=?Listbox(frame1,?height=8,?width=13,?exportselection=False)
courselist.grid(column=0,?row=4,?columnspan=2,?rowspan=8,?sticky=W)
def?isrtcrs():??#?加入課程
k?=?0
num?=?0
print(num,?courselist.size())
while?num??courselist.size():
if?inputcoursenum.get()?==?courselist.get(num):
k?=?1
num?+=?1
if?k?==?0:
courselist.insert(0,?inputcoursenum.get())
crslst[inputcoursenum.get()]?=?[]
crslst_in_num[inputcoursenum.get()]?=?[]
print(crslst)
print(crslst_in_num)
return
def?delcrs():??#?刪除課程
#?print(courselist.curselection())
#?print(courselist.get(courselist.curselection()))
crslst_in_num.pop(courselist.get(courselist.curselection()))
crslst.pop(courselist.get(courselist.curselection()))
courselist.delete(courselist.curselection())
print(crslst)
print(crslst_in_num)
return
def?shwtm(*args):??#?當(dāng)選中一門課程,時間listbox改為對應(yīng)的時間
print('here')
timelist.delete(0,?END)
tmlst?=?crslst[courselist.get(courselist.curselection())]
if?len(tmlst)?!=?0:
for?time?in?tmlst:
timelist.insert(END,?time)
return
#?courselist的選中事件
courselist.bind('ListboxSelect',?shwtm)
#?加入課程和刪除課程的按鈕
addcourse?=?ttk.Button(frame1,?text='加入課程',?command=isrtcrs).grid(column=0,?row=2)
deletcourse?=?ttk.Button(frame1,?text='刪除課程',?command=delcrs).grid(column=0,?row=12)
#?已選課程的時間listbox
Label(frame1,?text='時間列表').grid(column=1,?row=3,?sticky=E)
timelist?=?Listbox(frame1,?height=8,?width=13,?exportselection=False)
timelist.grid(column=1,?row=4,?columnspan=2,?rowspan=8,?sticky=E)
def?isrttim():??#?加入時間
num?=?1
time?=?[]
time_in_num?=?[]
strofod?=?''
for?day?in?daylist:
if?len(day.curselection())?!=?0:
strofod?=?numtoch[num]
temp?=?day.curselection()
for?cls?in?temp:
strofod?=?strofod?+?'?'?+?str(cls?+?1)
time_in_num.append((num?-?1)?*?13?+?(cls?+?1))
num?+=?1
if?len(strofod)?!=?0:
time.append(strofod)
strofod?=?[]
if?len(time)?!=?0:
timelist.insert(END,?time)
crslst[courselist.get(courselist.curselection())].append(time)
crslst_in_num[courselist.get(courselist.curselection())].append(time_in_num)
print(crslst)
print(crslst_in_num)
return
def?deltim():??#?刪除時間
print(timelist.curselection())
for?sel?in?timelist.curselection():
crslst[courselist.get(courselist.curselection())].pop(sel)
crslst_in_num[courselist.get(courselist.curselection())].pop(sel)
timelist.delete(timelist.curselection())
print(crslst)
print(crslst_in_num)
return
#?加入時間和刪除時間的按鈕
addtime?=?ttk.Button(frame1,?text='加入時間',?command=isrttim).grid(column=1,?row=2)
delelttime?=?ttk.Button(frame1,?text='刪除時間',?command=deltim).grid(column=1,?row=12)
def?creatcourselist():??#?建立課程列文本文檔
with?open('slist.txt',?'w')?as?slist:
slist.writelines(str(len(crslst_in_num))?+?'\n')??#?課程數(shù)
for?crs,?tlst?in?crslst_in_num.items():
slist.writelines(crs?+?'\n')??#?課程名
slist.writelines(str(len(tlst))?+?'\n')??#?可選時間數(shù)
for?time?in?tlst:
slist.writelines(str(len(time))?+?'\n')??#?某一可選時間的節(jié)數(shù)
for?n?in?time:
slist.writelines(str(n)?+?'\n')??#?第幾節(jié)
return
def?showoutput():??#?在右側(cè)的選擇課表combobox里顯示可選課表
filename_list?=?[]
for?filename_e?in?os.listdir('output'):
filename_list.append(filename_e)
outputlist['values']?=?filename_list
return
def?arrg():??#?排課
print('here')
creatcourselist()
for?filename_e?in?os.listdir('output'):
os.remove('output/'?+?filename_e)
arrange.arrangement_mod()
showoutput()
return
#?當(dāng)用戶選擇某一可選課表時,展示課表
def?showcrslist(*args):
print(outputlist.get())
for?filename_e?in?os.listdir('output'):??#?尋找所選項(xiàng)對應(yīng)的文件
if?filename_e?==?outputlist.get():
with?open('output/'?+?filename_e,?'r')?as?f_r:??#?打開對應(yīng)的文件
nr?=?f_r.readlines()??#?按行讀取內(nèi)容
k?=?0
for?day?in?daylist:
day.delete(0,?END)??#?刪除課表的原有內(nèi)容
for?num?in?range(1,?14):
#?print(nr[k])
#?加入新的內(nèi)容
if?nr[k]?==?'0\n':
day.insert(END,?'')
else:
day.insert(END,?nr[k].strip())
k?+=?1
break??#?完成之后退出循環(huán)
return
#?可選課表combobox選擇事件
outputlist.bind('ComboboxSelected',?showcrslist)
#?排課的按鈕
run?=?ttk.Button(frame1,?text='排課',?command=arrg).grid(column=0,?row=13,?columnspan=2)
#?frame_search
frame_s?=?ttk.Frame(root,?borderwidth=5,?relief='sunken')
frame_s.grid(column=2,?row=0)
ttk.Label(frame_s,?text='搜索課程').grid(column=0,?row=0,?columnspan=2)
ttk.Label(frame_s,?text='課程號:').grid(column=0,?row=1,?sticky=E)
crs_num?=?StringVar()
crs_search?=?ttk.Entry(frame_s,?textvariable=crs_num,?width=12).grid(column=1,?row=1,?sticky=E)
search_crs?=?ttk.Button(frame_s,?text='搜索').grid(column=0,?row=2)
addup?=?ttk.Button(frame_s,?text='加入').grid(column=1,?row=2)
ttk.Label(frame_s,?text='課程號:').grid(column=0,?row=3,?columnspan=2,?sticky=W)
ttk.Label(frame_s,?text='課程名:').grid(column=0,?row=4,?columnspan=2,?sticky=W)
ttk.Label(frame_s,?text='上課時間:').grid(column=0,?row=5,?columnspan=2,?sticky=W)
root.mainloop()
numpy.random包可以實(shí)現(xiàn)這一功能。numpy包是python的一種開源的數(shù)值計(jì)算擴(kuò)展。這種工具可用來存儲和處理大型矩陣,比python自身的嵌套列表結(jié)構(gòu)要高效的多,同時該結(jié)構(gòu)也可以用來表示矩陣。
from
numpy
import
random
randarray
=
random.random(size=(2,4))
random函數(shù)接收需要生成隨機(jī)矩陣的形狀的元組作為唯一參數(shù)。上面的代碼將會返回一個兩行四列的隨機(jī)矩陣,隨機(jī)數(shù)的值位于0到1之間,矩陣是numpy.array類型。除了random函數(shù)外,還有生成整數(shù)隨機(jī)矩陣的函數(shù)randint等等。
沒有辦法交互,用ftplib吧
#?例:FTP編程??
from?ftplib?import?FTP??
ftp?=?FTP()??
timeout?=?30??
port?=?21??
('192.168.1.188',port,timeout)?#?連接FTP服務(wù)器??
('UserName','888888')?#?登錄??
print???#?獲得歡迎信息???
('file/test')????#?設(shè)置FTP路徑??
list?=????????#?獲得目錄列表??
for?name?in?list:??
print(name)?????????????#?打印文件名字??
path?=?'d:/data/'?+?name????#?文件保存路徑??
f?=?open(path,'wb')?????????#?打開要保存文件??
filename?=?'RETR?'?+?name???#?保存FTP文件??
#?保存FTP上的文件??
#?刪除FTP文件??
('STOR?'+filename,?open(path,?'rb'))?#?上傳FTP文件??
#?退出FTP服務(wù)器
是最開始的兩行還是其中符合條件的兩行?
這里只寫最初的兩行
f?=?open(文件路徑)
s?=?f.readlines()
two_lines?=?s[:2]
其中two_lines就是最開始兩行
您好朋友,很高興為您解答問題!
把print()函數(shù)里的end參數(shù)修改成空格,python兩行就會同時出現(xiàn)結(jié)果。
例:1 print("hello world",end=‘ ’)
?2?print("hello again")
輸出:1 hello?world?hello again
擴(kuò)展知識:
python里print()函數(shù)的定義
print() 方法用于打印輸出,最常見的一個函數(shù)。
希望我的回答能夠?qū)δ兴鶐椭x謝!
分享名稱:python函數(shù)返回兩行,python中返回二進(jìn)制的函數(shù)
鏈接分享:http://chinadenli.net/article42/hsgihc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站、微信公眾號、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)