作者查詢 / gmccntzx1
作者 gmccntzx1 在 PTT [ Python ] 看板的留言(推文), 共854則
限定看板:Python
看板排序:
7F→: 在最後一行前面加上return07/29 04:27
8F→: 會接到 None 就表示 function 沒有回傳值07/29 04:28
1F→: 先猜你的test裡各個欄位的資料型態是str對吧?07/10 14:23
2F→: 記得轉int後再求mean07/10 14:24
1F→: 先把程式碼貼到 codepad/ideone/gist/... 上面06/17 02:14
1F→: python script內檢查sys.argv是否有額外的檔案路徑,06/15 11:26
2F→: 有的話就直接執行,反之就照你講的,跳一個視窗給使用者06/15 11:27
3F→: 選擇要處理的檔案.06/15 11:27
7F→: d(`・∀・)b06/15 16:36
1F→: 遇到什麼樣的問題,可否舉例?06/10 18:48
2F→: 另外,`//`是floor division06/10 18:48
5F→: 幫@cutekid補充, py2沒有做06/10 21:05
6F→: `from __future__ import division`前, int(-5/2)是-306/10 21:05
10F→: 我猜你的環境是py3,或是像我上面所說的已經引入true06/11 01:25
11F→: division了.06/11 01:25
12F→: 當你用true division時,出來的結果的型別會是float06/11 01:25
13F→: 而float的mantissa不一定可以在有限位數內還原你的數字06/11 01:29
14F→: 所以當你將該floating number再次轉成integer後,就會06/11 01:29
15F→: 產生一些因為當初mantissa位數不足表達部份的誤差06/11 01:32
16F→: 參考: IEEE 754 floating point number06/11 01:33
2F→: 當你不知道該怎麼改的時候,建議你把你預期的輸出和實際06/10 18:29
3F→: 的輸出附上,好讓其他人了解你到底是遇到什麼問題06/10 18:30
4F→: 然後,如果都說自己查過了也翻過書了,卻仍不知道怎麼改06/10 18:31
5F→: 那就附上你看不懂的地方,不然別人要怎麼跟你說明?06/10 18:31
6F→: 最後,你真的有認真的查資料嗎? 去看一下官方的文件吧06/10 18:35
7F→: https://docs.python.org/2/library/string.html06/10 18:35
8F→: 下方format examples的部份先看過,不懂的再來問06/10 18:36
2F→: 1. 先了解append()的作用,新的元素是放在最後面06/04 20:59
3F→: 2. demo[0][0]就是'a', 但你是要把addA加到demo[0]才對06/04 21:00
4F→: 3. 去查一下list.insert()怎麼用吧06/04 21:02
5F→: 補充: 根據你回文要的功能,建議你重新了解list結構ˇ06/04 21:04
6F→: 如果是想把A當作選到整個['A1', 'A2', 'A3']時的回傳值06/04 21:22
7F→: ,你可以寫一個新的class配上dict和__getitem__去處理06/04 21:24
8F→: (繼承list)06/04 21:24
9F→: 譬如說,在__getitem__()裡判斷目前取得的元素是否為06/04 21:27
10F→: dict,是的話回傳該dict的key. 但是這邊要注意到,dict是06/04 21:28
11F→: 可擴充的,所以若該dict有複數個key,那這種方法又會失效06/04 21:29
12F→: 有需要討論的話,可以站內信給我,我們用discord講比較快06/04 21:30
14F→: https://repl.it/repls/GrimAdorableDeskscan06/04 22:37
15F→: 這樣的效果是你要的嗎?06/04 22:37
16F→: 簡單來說,建立一個繼承list的class. 裡面多一個屬性06/04 22:39
17F→: `name`作為該list的名稱. 然後你要的效果就從__repr__06/04 22:40
18F→: 去處理.06/04 22:41
19F→: 補充說明一下: 我之所以會說用discord討論是因為那個06/04 22:49
20F→: 註冊一下就可以用了,而且又不會透露你實際上是誰06/04 22:49
21F→: https://codeshare.io 好像也是可以,只是它好像沒有單06/04 22:52
22F→: 純的voice chat06/04 22:52
26F→: 回覆關於你說的要產生第3個維度: 我的範例4中, nl原本06/04 23:00
27F→: 是1維,照你想要的效果來看,就是將其中一個元素重新指派06/04 23:00
28F→: 為一個NamedList(也就是說該元素的維度增加).06/04 23:01
29F→: ok. 只是看完你的code,感覺你寫一個class去整理會更清06/04 23:08
30F→: 楚喔!06/04 23:08
32F→: 我的意思是把你要從db抓出的東西包成一個class06/04 23:17
33F→: 目前看來,你應該是想要抓出word,然後再根據word抓出06/04 23:19
34F→: 其他東西.06/04 23:19
37F→: https://repl.it/repls/PoorStupidDisassembler06/04 23:46
38F→: 新增一個Class MyData,用這個去存你要的資料. 這樣至少06/04 23:47
39F→: 比一直用list[m][n][o]去抓資料容易懂06/04 23:47
40F→: 其他你寫的東西我有稍微修改,不過整體沒有動到.06/04 23:48
41F→: 等你確定做出要的功能後,再自己把code整理一下吧06/04 23:49
42F→: 重貼 http://codepad.org/rTnBeOrz (上面的沒存成功)06/04 23:52
43F→: 了解. 那剩下的你再試試看囉06/04 23:55
44F→: 記得你的那個叫做list的method最好改一下名稱.06/04 23:55
45F→: 我的46行寫錯,左值應該要改成category[i]06/04 23:58
46F→: 等等...我搞錯了. 那行不用改G_G06/05 00:00
47F→: 因為那邊本來就是要把category[i][j]這個word換成06/05 00:01
48F→: MyData. 暈了我...06/05 00:01
49F→: 別想的太複雜.06/05 00:09
50F→: 1. __init__()就是物件的建構式,我在裡面加上word這個06/05 00:10
51F→: 欄位,方便之後底下的__repr__去處理你要的功能.06/05 00:10
52F→: 2. __repr__()是回傳物件的表示,像是print(object)時,06/05 00:12
53F→: 就會去呼叫物件的__repr__()06/05 00:12
54F→: __init__()裡面,第一行是取出kwargs中為word的值06/05 00:25
55F→: kwargs是一個dict,所以如果kwargs裡沒有key為word的值06/05 00:26
56F→: 的話,就會回傳None.06/05 00:27
57F→: 第二行super(...).__init__(...)則是呼叫父類別(list)06/05 00:28
58F→: 的建構式__init__().06/05 00:28
59F→: self[:] ← 因為MyData是list,所以self[:]就是取出list06/05 00:30
60F→: 內的所有元素.06/05 00:30
61F→: 後面的if else就相當於C的三元運算子06/05 00:31
62F→: 再稍微修改後的結果: http://codepad.org/QcD1aN0Z06/05 00:34
63F→: 關於*args和**kwargs,看一下這個連結的說明06/05 00:37
64F→: https://stackoverflow.com/questions/339483506/05 00:37
65F→: args和kwargs只是變數名稱,不一定非要用這幾個字06/05 00:38
66F→: 然後在class裡面self這個關鍵字是指`物件自己`06/05 00:39
67F→: 不過正確說,`self`是大家常用的詞,不算是keyword06/05 00:42
68F→: ok的! 有問題就再更新內容吧06/05 00:43
69F→: 那算是coding style (詳見PEP8),就跟class method的第06/05 00:44
70F→: 一個參數常用cls或clz一樣06/05 00:45
71F→: ok 加油囉y06/05 00:45
72F→: 突然想到,44行 mydata = getData(link, mydata.word)06/05 01:11
73F→: 要改成1. mydata.append(getData(link, mydata.word))06/05 01:12
74F→: 寫錯,1. mydata.extend(getData(link, mydata.word))06/05 01:13
75F→: 或2. mydata[:] = getData(link, mydata.word)06/05 01:14
1F→: ok... 先補上跳出的錯誤訊息再來04/26 11:08
2F推: 從你給的三張圖來看,看不出是要使用pyinstaller打包的04/26 18:48
3F→: 動作. 1. `pyinstaller --version`:這應該是用來檢查04/26 18:49
4F→: pyinstaller版本的指令. 2. `pip install pyinstaller`04/26 18:49
5F→: :這是用來安裝pyinstaller的指令.04/26 18:50
6F→: 另外,想確認你是否把你寫的scripts放到04/26 18:51
7F→: `Python27\Scripts\`底下了? 因為這個資料夾不是拿來給04/26 18:51
8F→: 你放一般scripts用的,而是放一些可執行檔的地方.04/26 18:53
9F→: 等等... 我前面講的先忽略,抱歉04/26 18:59
10F→: 檢查一下你的setuptools版本是多少?04/26 19:25
11F→: >>>import setuptools; print(setuptools.__version__)04/26 19:25
13F推: 更新一下setup tools,再重新用pip安裝一次04/26 20:08
17F→: 設定一下 `--log-level=DEBUG`,看看問題在哪04/26 23:29
19F→: 嗯嗯04/26 23:37
21F→: 看來需要寫一個script,用subprocess.Popen去執行04/27 02:00
22F→: pyinstaller,然後把stdout寫出來. 不然沒辦法知道發生04/27 02:01
23F→: 什麼事04/27 02:01
24F→: 參考: https://stackoverflow.com/questions/453725904/27 02:02
25F→: stdout和stderr都寫出來好了04/27 02:03
28F→: 你把stdout,stderr寫到文字檔看看04/28 00:23
7F推: 只是原PO家裡電腦的App Paths底下有chrome.exe,但仍無04/26 12:10
8F→: 法靠`start chrome`開啟,這點比較奇怪0.004/26 12:11
5F推: 執行regedit,檢查HKEY_LOCAL_MACHINE\SOFTWARE\04/26 01:06
6F→: Windows\CurrentVersion\App Paths\chrome.exe04/26 01:06
7F→: 這個資料夾,預設值有沒有指定到chorme.exe的路徑?04/26 01:07
8F→: 補一下說明好了... App Paths底下沒有chorme.exe,就新04/26 01:17
9F→: 增一個機碼名為chrome.exe,然後預設值設為04/26 01:18
10F→: C:\Program Files (x86)\Google\Chrome\Application\04/26 01:19
11F→: chrome.exe04/26 01:19
12F→: 這樣就可以在cmd用`start chrome`開啟chrome04/26 01:19
13F→: 這樣還蠻怪的... 所以你用家裡的電腦windows+R04/26 01:52
14F→: 然後打chrome也無法執行嗎?04/26 01:52
18F→: windows鍵+R -> 開啟`執行`視窗04/26 02:32
19F→: 因為如果App Paths底下有chrome,照理來說也可以用04/26 02:33
20F→: `執行`去跑.04/26 02:33
24F→: 試試看: 1. windows+R -> 7zfm; 2. cmd: start 7zfm04/26 03:10
25F→: 如果上述兩個動作也都無法執行7zip的話再看看04/26 03:12
36F→: 看來問題只在chrome身上,但我目前沒有頭緒.04/26 11:35
37F→: 不過現在新版的chrome.exe應該都會在你文章中說的路徑04/26 11:36
38F→: (至少在win7以上是如此). 所以你可以先靠這點來解決.04/26 11:37