標題無意冒犯,就是覺得這個廣告挺好玩的
前言
前期回顧:你要偷偷學Python,然后驚呆所有人(第四天)
在第四天的時候,我們接觸了Python的模塊調用,這也是Python能夠火起來的一大優勢。我們還實踐了csv模塊。
不過冷靜下來想想,這樣的速度會不會有點過於快了,這樣速成的話勢必會遺漏掉不少的知識點,而且也有不少小伙伴來問我Python相關的問題。如果大家在學習中遇到困難,想找一個python學習交流環境,可以加入我們的python圈,裙號930900780,可領取python學習資料,會節約很多時間,減少很多遇到的難題。
(tip:言下之意就是:可以和一群有趣的靈魂一起學習有趣的技能,而且講的也會更全面詳細的啦)
好的接下來依舊是那段“高冷的”台詞:
本系列文默認各位有一定的C或C++基礎,因為我是學了點C++的皮毛之后入手的Python。 本系列文默認各位會百度,學習‘模塊’這個模塊的話,還是建議大家有自己的編輯器和編譯器的,上一篇已經給大家做了推薦啦? 本系列也會着重培養各位的自主動手能力,畢竟我不可能把所有知識點都給你講到,所以自己解決需求的能力就尤為重要,所以我在文中埋得坑請不要把它們看成坑,那是我留給你們的鍛煉機會,請各顯神通,自行解決。 1234567
好,這是一篇復習文,坐好咯,打開你們的編譯器,不論是在線編譯器還是PC編譯器
其實我不知道print函數要不要試一下,是挺簡單的,不過嘛,也是有那么些坑坑窪窪的哦。
比方說打這個出來:
* * * ’ * * * ’ * * * * * * * * * 12345
你會發現打的是什么鬼。
這里想說的是print函數在處理tab鍵上要注意的點。
以及對打印引號的處理辦法。
轉義字符
\n 代表換行;’ 代表單引號。
三引號
三引號可以把內容里的單引號打印出來且可以換行。
字符串拼接
給你一些變量如下:
name = '祖沖之' contribute = '計算出了π' than = '雖然我記不住,但是我知道整數部分是' number = '3.14' 1234
請你打印出以下這句話:“祖沖之計算出了π,雖然我記不住,但是我知道整數部分是3”。
條件判斷與循環語句
其實條件判斷與循環語句上次是有寫過了,那個猜數字的,也有些基礎好的朋友就直接調用了random包,很強。
但也不是所有人基礎都好的嘛,所以之前沒有用隨機數而是用偽隨機數的朋友就再做一次吧,
這樣吧,我們換個玩法。
題目需求:
1、這個數介於1~1000 2、你可以猜個數,系統告訴你偏大偏小並會壓縮范圍 3、你可以讓系統在這個數的左右各壓縮一次隨機范圍,碧如說現在這個數的范圍為1~500,數是100,那么你選擇壓縮一半范圍之后系統就會告訴你(20~300),這樣的 4、你可以讓系統告知你奇偶數,這個條件不作為重新划分區間的辦法 以上,2、3分別可以使用4次,4可以使用1次,猜中,就是猜中了,猜不着,那也很正常嘛哈哈哈 123456
列表與字典
寫了上面那個題目,估計大家也挺累的,到這里大家放松一下,可以自己去找一些列表啊、元組啊、字典啊的方法。
當然,我們的學習群里會詳細的介紹到。
注:列表和字典都是可任意嵌套的,可以同時包容不同類型的數據(如字符串、字典、列表等)。
所以,在提取數據時,要留意每個字符串都占據了一個偏移量。
函數與類
哎呀,想創意好累哦,差點我就放棄了,想讓你們把上面那個猜數字的封裝一個函數,然后把函數放類里面。
不過,啊哈,靈機一動。
要不咱寫個抽獎程序吧,這樣,聽我說:
1、來一個字典存名字(號碼牌+名字),來一個列表存禮品 2、先挑一個禮品出來,然后從這個字典中隨機抽一個號碼牌,抽到誰的號碼牌,禮品就是誰的了 3、以此類推,直到禮品發完 4、發禮品是要紀錄的啊,到時候找財務報銷嘛,這個賬單要求是不可修改的,那怎么辦呢?對,元組 5、如果要搞得逼真一點,可以設置一個定時器,時間到了亮結果,當然,我們先不弄那個輪盤轉轉轉的 12345
加油!!!
至於類嘛,把這個功能和上邊那個猜數字的整理到類里面嘛
模塊
模塊是嗎?前面用了幾個模塊了來着?這里再用一個吧,把禮品發放記錄的文件用Excel存起來吧,用openpyxl模塊吧。
圖片之后我會放上我的一些解答:
猜謎游戲
勉強能看啦,算法部分還可以優化,不過有點腰酸背痛,就,嗯。
import random
class GuessNum: def __init__(self,max,min): self.max = max self.min = min self.num_func1 = 4 #方法1:猜大小 self.num_func2 = 4 #方法2:壓縮一半大小 self.num_func3 = 1 def Num(self): random.seed() self.num = random.randint(self.max, self.min) return self.num def func1(self,guess): if self.num_func1 == 0: print('抱歉,機會已用完') else: self.num_func1-=1; if guess > self.num: print('太大了哦,再來一次吧') self.max = guess elif guess < self.num: print('再大點點,就快成功咯') self.min = guess else: print('好滴吧,記住這個數字,把剩下的機會用完吧,雖然你猜中了') def func2(self): if self.num_func2 == 0: print('抱歉,機會已用完') else: self.num_func2-=1 random.seed() self.min = random.randint(self.num, self.min) random.seed() self.max = random.randint(self.max, self.num) print('現在的范圍是:'+str(self.min)+'~'+str(self.max)) def func3(self): if self.num_func3 == 0: print('抱歉,機會已用完') else: self.num_func3-=1 if(self.num%2): print('奇數') else: print('偶數') def func4(self,guess): if(guess == self.Num()): print('好滴吧,沒得玩了。為啥?被你猜中了唄') else: print('抱歉哦,猜錯咯,再來一把唄') def Guess(self): num = self.Num() while(self.num_func1 | self.num_func2 | self.num_func3): print('你有三個選擇:\n' '選擇a:你猜一個數,我告訴你大小\n' '選擇b:系統將隨機為你壓縮大小\n' '選擇c:我直接告訴你是奇數還是偶數\n' '請輸入你的選擇,如果已有答案,請直接輸入數字:') num_in = input() if(num_in == 'a'): print('請輸入你的數據:') num_in = int(input()) self.func1(num_in) elif(num_in == 'b'): self.func2() elif(num_in == 'c'): self.func3() else: self.func4(num_in) print('機會已全部用完,請輸入你的數字:') num_in = int(input()) self.func4(num_in) guess = GuessNum(0,1000) guess.Guess() 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
抽獎模塊
我們假設這個禮品已經選好了,代碼是前面那個猜謎的提升版啊,重點我們放在那個Excel上。
有這么幾個獲獎幸運兒:
(
"小王:CSDN定制雙肩包", "小李:騰訊雲社區定制T恤", "小吳:異步社區會員月卡一張", "小劉:冬天的第一鍋火鍋" ) 123456
好,我們現在給它寫進Excel里面。
(本來想留個坑,想了想,還是填上了,略顯尷尬,調了十分鍾,最后發現元組里面忘記加逗號了。。。)
第一步:pip install openpyxl
創建一個Excel表格這點兒事兒我就不說啦,我們打開編輯器,我的是pycharm,導入新包,因為openpyxl不是它自帶的啊
所以你直接import是會報錯的(我已經安裝好了)
那怎么安裝呢?
如果不是用pycharm的朋友請看我小標題那條語句,在cmd終端中執行。
用pycharm的跟我做:
左上角,“File”->“setting”->
知道在哪兒啊,不用我多說啊。
然后右上角那個圈出來的“+”點一點->
先在上面的搜索框輸入咱要的,也就是openpyxl
然后再下面彈出來的選中它,接着左下角,install。
它就會開始:installing,下載完它會告訴你下載完,沒跟你說的話就要腦子靈光點了,然后退出的時候記得apply一下,上邊那個有“+”號的那個界面,右下角,“Apply”,千萬記得。
import datetime from random import choice from time import time from openpyxl import load_workbook from openpyxl.utils import get_column_letter # 設置文件 mingc addr = "抽獎程序.xlsx" # 打開文件 wb = load_workbook(addr) # 創建一張新表 ws = wb.create_sheet() # 第一行輸入 ws.append(['獲獎名單','獎品']) ##元組 tump = ( "小王:CSDN定制雙肩包", "小李:騰訊雲社區定制T恤", "小吳:異步社區會員月卡一張", "小劉:冬天的第一鍋火鍋" ) # 輸入內容(500行數據) for i in tump: #print(i) data = i.split(':') #print(data[0]+data[1]) ws.append([data[0], data[1]]) # 獲取最大行 row_max = ws.max_row # 獲取最大列 con_max = ws.max_column # 把上面寫入內容打印在控制台 for j in ws.rows: # we.rows 獲取每一行數據 for n in j: print(n.value, end="\t") # n.value 獲取單元格的值 print() # 保存,save(必須要寫文件名(絕對地址)默認 py 同級目錄下,只支持 xlsx 格式) wb.save(addr)
最后多說一句,想學習Python可聯系小編,這里有我自己整理的整套python學習資料和路線,想要這些資料的都可以進q裙930900780領取。
本文章素材來源於網絡,如有侵權請聯系刪除。
