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/cn.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