Python 板


LINE

我是用codecademy學python 2.7的 所以在3.6環境中錯誤我也完全不知道原因QQ ------------------------------------------------------------------------- code如下: def index(eng): return ord(eng) - ord("A") + 1 def N(eng): import string num=0 l=len(eng) for x in eng: l-=1 for y in string.ascii_uppercase: if x==y: num+=index(y)*26**l return num 也就是說 N是把字母對應到數字(excel那種A=1,B=2,...Z=26,AA=27...) 也就是說 N("A")=1,N("AA")=27 但是!在python 2.7這是沒問題的 但在3.6就掛了 (我知道python 3.6的print要變成print(),但問題不在這) 抽絲剝繭的結果,應該是def N(eng)這個函數有問題 因為我直接寫出一個special case如下時,在3.6跑是沒問題的: def index(eng): return ord(eng) - ord("A") + 1 import string num=0 l=len("AA") for x in "AA": l-=1 for y in string.ascii_uppercase: if x==y: num+=index(y)*26**l print (num) 也就是說 這是N("AA")的case,卻在3.6是沒問題的 所以我才猜測是函數定義在3.6不太一樣 請指教,謝謝 ------------------------------------------------------------ P.S. 遇到這種版本不同的error請問有有效率的自己解決方式嗎? 只能case by case問人? --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.255.233.84
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1513441035.A.19D.html
1F:→ djshen: 什麼叫掛了12/17 00:34
在2.7 N("A") 的return值是1 在3.6 N("A") 會是錯誤的 ※ 編輯: znmkhxrw (111.255.233.84), 12/17/2017 00:36:41
2F:→ WSzc: 你N("A")那邊的code是什麼? 我用print(N('A'))測正常啊12/17 00:40
https://imgur.com/A4sfwSI 我怎顯示錯誤QQ 然後2.7是對的
3F:→ djshen: 錯誤的是多少12/17 00:47
4F:推 KyotoAnime: 錯誤訊息?12/17 00:49
麻煩一下把code複製到這網站 選python 3.6 http://www.pythontutor.com/live.html#mode=edit 他一開始會run很久 然後顯示run太久了 之後停下來後只跑三步 最後一步它顯示 TypeError: N() missing 1 required positional argument: 'eng'
5F:→ WSzc: 我是用3.5測 但照理說3.6應該也會過12/17 00:51
朋友安裝的3.6也錯誤 應該不是網站的問題QQ ※ 編輯: znmkhxrw (111.255.233.84), 12/17/2017 00:56:23
6F:→ djshen: ubuntu 16.04 python 3.6.3沒問題12/17 00:58
7F:→ kenduest: 剛測過本機自己跑 py3.6 也正常啊12/17 01:17
8F:→ kenduest: 網站的話我是看到顯示記憶體錯誤這類12/17 01:17
9F:→ kenduest: import string 搬到第一行去測試一下就可以跑了12/17 01:18
10F:→ djshen: 網站應該是用thread去跑 我記得python import lock是全域12/17 01:22
11F:→ kenduest: https://i.imgur.com/FS81gz9.png 執行結果12/17 01:24
12F:→ djshen: import一個有thread的東西 然後thread裡面又import就會12/17 01:24
13F:→ djshen: dead lock不過這是python2的狀況 這邊反而是python312/17 01:25
14F:→ djshen: python3應該修好了才對 變成各module有各的lock12/17 01:26
@d & @k大 確實把import擺到第一行就可以了耶 但是d大說應該py2才會有這種error 可是py2.7卻可以把import放入def內卻可以跑XD 真奇怪的bug
15F:→ kenduest: 我本機是使用 3.6.3 版本,所以原貼是 3.6.X 哪個 ? 12/17 01:28
我適用那個網站 http://www.pythontutor.com/live.html#mode=edit 他只寫py 3.6 -------------------------------------------------------------------- 不好意思再請教類似問題 以下這個code是把數字轉成英文: def letter(num): string="ABCDEFGHIJKLMNOPQRSTUVWXYZ" for x,y in enumerate(string,1): if x==num: return y def remainder(num): string="ZABCDEFGHIJKLMNOPQRSTUVWXY" for x,y in enumerate(string): if x==num: return y def L(num): string="" N=num while N>0: string=(string[::-1]+remainder(N%26))[::-1] if N%26==0: N=N/26-1 else: N=N/26 return string print(L(28)) 這個一樣在py2.7成功,py3.6失敗... 那個網站顯示3.6失敗的地方在於 string=(string[::-1]+remainder(N%26))[::-1] 這行 錯誤類別為 TypeError: must be str, not NoneType ------------------------------------------------- 請再幫忙一下 感恩QQ ※ 編輯: znmkhxrw (111.255.233.84), 12/17/2017 01:36:18
16F:→ djshen: python3 除法有兩種12/17 01:46
17F:→ djshen: 我發現for x in string.ascii_uppercase: pass會timeout12/17 01:55
18F:→ djshen: [x for x in string.ascii_uppercase]就不會 奇怪的問題12/17 01:55
19F:→ znmkhxrw: py3.6除法我明天研究 謝謝12/17 02:09
20F:→ znmkhxrw: pass timeout是指?12/17 02:09
21F:→ znmkhxrw: x for x 初學沒看過耶XD 只有for x12/17 02:09
22F:→ abc2090614: x for x 叫作list comprehension12/17 02:47
23F:→ djshen: 目前發現有這些問題的module有collections,json,re,string12/17 02:56
24F:→ djshen: typing12/17 02:56
25F:→ djshen: 只要在function裡面import並且用for loop去iterate12/17 02:57
26F:→ djshen: module內的東西就會發生同樣的問題12/17 02:57
27F:→ djshen: 而不是import的時候就出問題12/17 02:58
28F:→ djshen: 不知道他在實現讓for loop可以一步一步跑的時候做了什麼12/17 02:59
29F:→ znmkhxrw: 謝謝a大跟d大解釋 懂了~12/17 10:21
※ 編輯: znmkhxrw (111.255.233.84), 12/17/2017 10:21:57







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP