[心得] Pydev + Eclipse
如果要用Eclipse 寫 Python的話, 除了下載Pydev以外,有一個小事要注意,例如:
sum = 0
while True:
a_string = input("Enter your age")
if a_string == "No"
print("exit!\n")
break
num = int(a_string)
sum = sum + num
print("current sum = %d" % sum)
這段程式碼在IDLE和python command line運作得很好,但是(輸入No時)在Eclipse會出現:
Traceback (most recent call last):
.....
in <module>
num = int(a_string)
ValueError: invalid literal for int() with base 10: 'No '
為什麼會這樣呢?可以參考以下連結:
http://pydev.org/faq.html
原因是因為當輸入No時, input解讀成 No\r(可用Eclipse的Debug模式觀察)
所以它認為a_string 不是 "No", 而是"No\r"
如此一來在執行 num = int(a_string) 就會出錯,因為根本不能翻譯成integer
但是如果改成if a_string == "No\r",
在IDLE就不正常了,因為它認為input讀到的是"No"
所以要改成:
a_string = input("Enter your age").replace('\r','')
來把'\r'拿掉,
另外在Python 3.0後的版本,好像只有input(), 沒有raw_input(),
兩者似乎和在一起,變成只有input()了
不過Eclipse算是蠻好用的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.157.116
→
01/27 23:51, , 1F
01/27 23:51, 1F
→
01/27 23:54, , 2F
01/27 23:54, 2F
→
01/28 00:29, , 3F
01/28 00:29, 3F
→
01/28 00:30, , 4F
01/28 00:30, 4F
→
01/28 00:30, , 5F
01/28 00:30, 5F
推
01/28 00:34, , 6F
01/28 00:34, 6F
→
01/28 01:25, , 7F
01/28 01:25, 7F
→
01/28 01:26, , 8F
01/28 01:26, 8F
→
01/28 01:26, , 9F
01/28 01:26, 9F
→
01/28 03:24, , 10F
01/28 03:24, 10F
→
01/28 03:26, , 11F
01/28 03:26, 11F
→
01/28 03:26, , 12F
01/28 03:26, 12F
→
01/28 13:26, , 13F
01/28 13:26, 13F
Python 近期熱門文章
PTT數位生活區 即時熱門文章