2011年1月27日 星期四

[python]list and can't print big5 list(is oK)

程式碼
# -*- coding: utf-8 -*-
# File name list.py
str = ['蘋果', '香蕉', '火龍果', '橘子']
print '我有', len(str),'樣東西在清單理'
for item in str:
    print item,
print
print '我也需要買米'
str.append('米')
print '我的新的清單','[',
for item in str:
    print item,
print ']'
print '排序我的清單','[',
for item in str:
    print item,
print ']'
str.sort()
print '排序好的清單','[',
for item in str:
    print item,
print ']'
print '我第一個要買的',str[0]
olditem = str[0]
del str[0]
print '我買了',olditem
print'我的現在清單','[',
for item in str:
    print item,
print ']'


輸出結果

我有 4 樣東西在清單理
蘋果 香蕉 火龍果 橘子
我也需要買米
我的新的清單 [ 蘋果 香蕉 火龍果 橘子 米 ]
排序我的清單 [ 蘋果 香蕉 火龍果 橘子 米 ]
排序好的清單 [ 橘子 火龍果 米 蘋果 香蕉 ]
我第一個要買的 橘子
我買了 橘子
我的現在清單 [ 火龍果 米 蘋果 香蕉 ]

上面這個程式碼原本不是這樣寫的,因為在print list 發現以下問題
str1 = ['蘋果', '香蕉', '火龍果', '橘子']
str2 = ['a', 'b', 'c', 'd']
print str1
print str2

輸出結果
['\xe8\x98\x8b\xe6\x9e\x9c', '\xe9\xa6\x99\xe8\x95\x89', '\xe7\x81\xab\xe9\xbe\x8d\xe6\x9e\x9c', '\xe6\xa9\x98\xe5\xad\x90']
['a', 'b', 'c', 'd']

list裡面如果是英文字可以直接印出來,但如果是中文字都會變成了編碼。

目前還沒找到解決的方法。

總算在換了python的版本後解決了這個問題,原本是用2.7版本。
現在換到最近的3.1就解決了
# -*- coding: utf-8 -*-
# File name list.py
str = ['蘋果', '香蕉', '火龍果', '橘子']
print ('我有', len(str),'樣東西在清單理')
for item in str:
    print (item,end=" ")
print ('我也需要買米')
str.append('米')
print ('我的新的清單')
for item in str:
    print (item,end=" ")
print ('排序我的清單')
str.sort()
print ('排序好的清單')
for item in str:
    print (item,end=" ")
print ('我第一個要買的',str[0])
olditem = str[0]
del str[0]
print ('我買了',olditem)
print ('尚未購買的清單')
print (str ,end =" ")
輸出的結果
我有 4 樣東西在清單理
蘋果 香蕉 火龍果 橘子 我也需要買米
我的新的清單
蘋果 香蕉 火龍果 橘子 米 排序我的清單
排序好的清單
橘子 火龍果 米 蘋果 香蕉 我第一個要買的 橘子
我買了 橘子
尚未購買的清單
['火龍果', '米', '蘋果', '香蕉'] 

不過3.0之後的版本在print做了更改
不管是"字串" "變數"在print 後都需要加上()
javascript:void(0)
print (str ,end =" ")#新的不換行寫法
print str,#舊的寫法
參考網站:

Python v3.0.1 documentation


 ZHPY

沒有留言: