看板 Python 關於我們 聯絡資訊
版上諸位先進大家好 我不斷嘗試如何直接從外部設定條件 藉此從api抓資料 但我目前卡在這裡 https://pastebin.com/2E7Yr95N 我只要把程式命令提示字元 就會出現以下圖示 https://imgur.com/a/vI52TJ2 請問我做錯了什麼 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.224.171 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1555768021.A.492.html
lajji: 你要用sys.argv[1]就要輸入參數啊 04/20 22:41
alubasteve: 給lajji,我不懂您說的輸入參數,可以解釋更清楚一點嗎 04/21 00:31
lajji: 你用sys.argv[1]的用意是什麼 04/21 08:04
alubasteve: 給lajji,我是照著書打的,sys.argv[1]的解釋是 04/21 09:11
alubasteve: 將sys.argv的第2個項目,亦即第1參數的"想搜尋的標題" 04/21 09:13
alubasteve: 指派給search_word 04/21 09:15
charlie11438: https://i.imgur.com/1B4Le9A.jpg 04/21 09:36
charlie11438: 圈起來的部分就是你需給的參數 sys.argv的參數就是 04/21 09:36
charlie11438: 你在執行時後面所付的東西 為一list 0的位置存放檔 04/21 09:36
charlie11438: 名 後面放置所傳入的參數 04/21 09:36
charlie11438: https://i.imgur.com/0IJznfU.png 像這樣 print第 04/21 09:37
charlie11438: 一個傳入的參數 如沒傳入 list的長度為1 自然會ind 04/21 09:37
charlie11438: ex out of range 04/21 09:37
charlie11438: 如果沒要這樣傳入 應該是用input 如果有錯請大家糾 04/21 09:38
charlie11438: 正 我也是新手 04/21 09:38
alubasteve: 給charlie11438,感謝你的協助,所以就你的答案來看 04/21 10:55
alubasteve: 我一直搞不清楚要如何透過sys.argv[1]去抓預設參數 04/21 10:58
alubasteve: 所以這是否代表我少準備一個檔案,所以檔案不成功 04/21 11:00
alubasteve: 另外,我也不懂如果用input要怎麼改,可以請您告訴我嗎 04/21 11:01
alubasteve: 抱歉我還太嫩,您跟lajji要表達的我實在不大懂 04/21 11:02
TitanEric: argv是參數list, 第一個也就是argv[0]是代表程式名稱 04/21 11:27
TitanEric: 你的程式裡面有用到argv[1]代表有用到第二個元素 04/21 11:27
TitanEric: 但是你下指令的時候只有程式名稱 自然就如版友提到的會 04/21 11:27
TitanEric: out of range 04/21 11:27
TitanEric: 使用argv跟input都是可以要參數的方法 04/21 11:30
TitanEric: 新手的話可能用input會比較友善 04/21 11:30
TitanEric: input寫法就是改成 search word=input() 04/21 11:30
TitanEric: 這樣在執行程式的時候 會等你輸入才會繼續跑下去 04/21 11:30
charlie11438: 如果是要改成input,上面的版友已經給了,應該不是 04/21 12:10
charlie11438: 你少檔案,而是你在命令提示字元執行時後面要加入 04/21 12:10
charlie11438: 參數,也就是python *. py [你要加的參數] 04/21 12:10
charlie11438: 以空格區分 分別存入list中 第幾個就是存放的位置 04/21 12:10
charlie11438: eg 第一個傳入的參數index=1 不過用input也可以 就 04/21 12:10
charlie11438: 是variable=input('文字') 04/21 12:10
charlie11438: https://reurl.cc/NNK16 你可以看一下這個 04/21 12:11
charlie11438: https://i.imgur.com/T4xukQD.png 04/21 12:28
charlie11438: https://i.imgur.com/2i3pRyT.png 04/21 12:28
charlie11438: sys.argv的原理大概像這樣 為一list 也可以查找ind 04/21 12:29
charlie11438: ex 執行命令後一串的參數將會分別存入。 04/21 12:29
charlie11438: https://i.imgur.com/oLV9BtZ.png 04/21 12:30
alubasteve: 給TitanEric,多謝你的協助,我把原本程式的第3行 04/21 13:11
alubasteve: 改成search word=input(),就可輸入想要搜尋的對象 04/21 13:12
alubasteve: 然後形成html檔案,只是輸錯名稱就糗了 04/21 13:13
alubasteve: 但請恕我才疏學淺,TitanEric+charlie114,我反而更不懂 04/21 13:14
alubasteve: input和sys.argv為何有此差異,事實上我連charlie11438 04/21 13:16
alubasteve: 給的範例都看不懂,不,根本大家的都看不懂,我只能猜測 04/21 13:17
alubasteve: 使用input之後,input變成在命令提示字元可以輸入字詞 04/21 13:19
alubasteve: 的理由,但我還是無法理解原本少了什麼 04/21 13:28
alubasteve: 例如"命令提示字元執行時後面要加入參數,也就是" 04/21 13:30
alubasteve: "python *. py [你要加的參數]",抱歉還是看不懂 04/21 13:31
charlie11438: 要打的東西有點多,已經變成一篇文章,你再看看。 04/21 13:54