Python: 编程遇到的一些问题以及网上解决办法?
0.Python:?TypeError: 'str' does not support the buffer interface,(點我)
fp.write(url.encode("utf-8"))
1.Python:object?of?type?'Response'?has?no?len(),如何解決?(點我)
Traceback (most recent call last):File "F:/Python/TD.py", line 7, in <module>soup = BeautifulSoup(wb_data,'lxml')File "C:\Python35\lib\site-packages\bs4\__init__.py", line 192, in __init__elif len(markup) <= 256 and ( TypeError: object of type 'Response' has no len()?2.Python:如何將Python腳本封裝成exe可執行程序?(點我1或點我2)
環境:?Python2.7.12 / win7_64位 / py2exe-0.6.9.win64-py2.7.exe
自己以打包C盤根目錄下面的workspace下randint.py文件為例,里面的內容一定要可以執行。
為了避免在運行時黑框一閃就關閉,可以在最后一行加上一句raw_input():同時在workspace下建立setup.py,輸入下面代碼:
#!/usr/bin/env python
? ?# -*- coding: utf-8 -*-
from distutils.core import setup
import py2exe
setup(console=[r'C://workspace/randint.py'])或者setup(console=[r'C:/workspace/randint.py'])(嘗試了兩種方法都可以)
? ? 最后一行代碼中輸入要打包的py文件的正確路徑,注意雙斜杠的方向。
? ? 打開cmd,切換到你的python27安裝目錄 c:\Python27>python
? ? 在后面輸入代碼 python c:\workspace\setup.py py2exe?就這樣我們的python程序打包完成了!
?現在去e:\python27目錄下面看到生成了一個名為 dist 的文件夾,進去雙擊randint.exe就可以運行我們的程序了。
? ? 注意:發布程序的時候要把這個文件夾里面的所有文件一起發布!文件夾和exe的名稱都是可以改變的。
3.Python:IOError: [Errno 22] invalid mode ('w') or filename: 'path\regionlog.txt'
Use forward slashes: 'path/regionlog.txt'
Or raw strings: r'path\regionlog.txt'
Or at least escape your backslashes: 'path\\regionlog.txt'
4.Python:多行注釋?
if 0:
''' '''
5.Python: IDLE如何清屏?(點我)
6.Python: print 打印格式?
? ? ?print 默認打印是換行的,要想不換行Py2.7中print('*'), ?Py3.5中print('*',end = " ")
?
7.Python:保證遍歷字典所有元素,但不保證遍歷的順序。如何保證遍歷順序?
?舉個例子:
score = {'A':90,'B':80,'C':70} for name in score:print name #A #C #B解決:
通過兩個List分別存儲Key和Value,然后通過zip合并為Dictionary,再遍歷:
8.Python:Non-ASCII character '\xe5' in file......
原因:Python默認是以ASCII作為編碼方式的,如果在自己的Python源碼中包含了中文(或者其他非英語系的語言),
此時即使你把自己編寫的Python源文件以UTF-8格式保存了,但實際上,這依然是不行的。
解決辦法很簡單,只要在文件開頭加入下面代碼就行了。
# -*- coding: UTF-8 -*-或#coding=utf-8
9.Python:怎么把list轉換為字符串?
? ? ?在確定list里的所有元素都是字符串的前提下,用字符串中的join()函數就可以實現:
? ? ? ? ? ? str = "".join(lIst) #""即空字符串
? ? 用一行 Python 代碼實現:把1到100的整數里,能被2、3、5整除的數取出,以分號(;)分隔的形式輸出?
";".join([str(i) for i in range(1,101) if (i%2 == 0 and i%3 == 0 and i%5 == 0)])
?
10.Python:raw_input和input區別?(點我)
py2.x
raw_input 輸入字符串或數字,返回字符串
input 輸入數字 返回數字。輸入字符串,返回出錯
除非對 input() 有特別需要,否則一般情況下我們都是推薦使用 raw_input() 來與用戶交互。
PYTHON 2.X在使用raw_input()時,如果用中文做提示raw_input(u'中文') ,會提示亂碼,
解決辦法:
raw_input(u'中文'.encode('gbk')) ,即可解決亂碼問題,中文CMD編碼默認為GB2312。
py3.x
沒有raw_input,只有input,input 輸出結果作為字符串
11.Python: ?if __name__ == "__main__":用法?(點我)
?在if __name__ == "__main__":之后的語句作為模塊被調用的時候,語句之后的代碼不執行;
?直接使用的時候,語句之后的代碼執行。通常,此語句用于模塊測試中使用。__name__作為模塊的內置屬性,
?.py文件有兩種使用方式:作為模塊被調用和直接使用。如果它等于"__main__"就表示是直接執行。
------2016-12-23--------------------------------------------
12.TypeError: 'range' object doesn't support item deletion
解決:(range 對象不支持元素刪除,將對象轉成列表。)
?
? ?
轉載于:https://www.cnblogs.com/billyzh/p/5883141.html
總結
以上是生活随笔為你收集整理的Python: 编程遇到的一些问题以及网上解决办法?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淘气值申请信用卡要多久?失败怎么办?
- 下一篇: Python:eval的妙用和滥用