Time of Update: 2016-06-06
Python是一種非常富有表現力的語言。它為我們提供了一個龐大的標準庫和許多內建模組,協助我們快速完成工作。然而,許多人可能會迷失在它提供的功能中,不能充分利用標準庫,過度重視單行指令碼,以及誤解Python基本結構等。本文是一個關於Python新手可能會陷入的一些陷阱的不完全列表。不知道Python版本這是一個在StackOverflow上反覆出現的問題。許多人能寫出在某個版本上完美工作的代碼,但在他們在自己的系統上安裝有不同版本的Python。要確保你知道你正在使用的Python版本。你可以
Time of Update: 2016-06-06
本文執行個體講述了python棧類。分享給大家供大家參考。具體如下:class Path: #a list used like a stack def __init__(self): self.P = [] def push(self,t): self.P.append(t) def pop(self): return self.P.pop() def top(self): return self.P[-1]
Time of Update: 2016-06-06
方法在Python中是如何工作的方法就是一個函數,它作為一個類屬性而存在,你可以用如下方式來聲明、訪問一個函數: >>> class Pizza(object):... def __init__(self, size):... self.size = size... def get_size(self):... return self.size...>>> Pizza.get_sizePython在告訴你,屬性_get_size是類Pizza的一個未Binder
Time of Update: 2016-06-06
本文執行個體講述了python擷取mp3檔案資訊的方法。分享給大家供大家參考。具體如下:將代碼產生.py檔案放在目錄下運行,可以擷取該目錄的所有mp3檔案的資訊,需要使用ID3庫import os, sysfrom ID3 import *files = os.listdir(os.getcwd())for f in files: x = os.path.splitext(f) if x[1] == '.mp3': n = x[0].split(' - ') author =
Time of Update: 2016-06-06
本文執行個體講述了Python中map和列表推導效率比較。分享給大家供大家參考。具體分析如下:直接來測試代碼吧:#!/usr/bin/env python # -*- coding: utf-8 -*- # list comprehension and map import time def test(f, name): st = time.time() f() print '%s %ss'%(name, time.time()-st) TIMES = 1000 ARR =
Time of Update: 2016-06-06
常用時間轉換及處理函數:import datetime# 擷取目前時間d1 = datetime.datetime.now()print d1# 目前時間加上半小時d2 = d1 + datetime.timedelta(hours=0.5)print d2# 格式化字串輸出d3 = d2.strftime('%Y-%m-%d %H:%M:%S')print d3# 將字串轉化為時間類型d4 = datetime.datetime.strptime(date,'%Y-%m-%d
Time of Update: 2016-06-06
本文執行個體講述了Python合并兩個字典的常用方法與效率比較。分享給大家供大家參考。具體分析如下:下面的代碼舉例了5種合并兩個字典的方法,並且做了個簡單的效能測試#!/usr/bin/python import time def f1(d1, d2): return dict(d1, **d2) def f2(d1, d2): return dict(d1.items() + d2.items()) def f3(d1, d2): d = d1.copy() d.update(
Time of Update: 2016-06-06
本文執行個體講述了python在控制台輸出進度條的方法。分享給大家供大家參考。具體實現方法如下:進度條效果如下所示:|#############################---------------------|59 percent done代碼如下:class ProgressBar(): def __init__(self, width=50): self.pointer = 0 self.width = width def __call__(self,x):
Time of Update: 2016-06-06
本文執行個體講述了Python基於Tkinter的HelloWorld入門執行個體。分享給大家供大家參考。具體分析如下:初學Python,打算做幾個Tkinter的應用來提高。剛學的HelloWorld,秀一下。我用Python3.2的,Windows版本的。原始碼如下:#匯入sys和tkinter模組 import sys, tkinter #建立主視窗 root = tkinter.Tk() root.title("HelloWorld") root.minsize(200, 100)
Time of Update: 2016-06-06
本文執行個體講述了python壓縮檔夾內所有檔案為zip檔案的方法。分享給大家供大家參考。具體如下:用這段代碼可以用來打包自己的檔案夾為zip,我就用這段代碼來備份import zipfilez = zipfile.ZipFile('my-archive.zip', 'w', zipfile.ZIP_DEFLATED)startdir = "/home/johnf"for dirpath, dirnames, filenames in os.walk(startdir): for
Time of Update: 2016-06-06
本文執行個體講述了Python基於Tkinter實現的記事本。分享給大家供大家參考。具體如下:from Tkinter import *root = Tk('Simple Editor')mi=StringVar()Label(text='Please input something you like~' ).pack()te = Text(height = 30,width =100)te.pack()Label(text=' File name ').pack(side =
Time of Update: 2016-06-06
記得之前learn python一書裡面,因為當時沒有官方支援,只能通過hack的方式實現抽象方法,具體如下 最簡單的寫法class MyCls(): def foo(self): print('method no implement')啟動並執行例子>>> a = MyCls()>>> a.foo()method no implement>>>這樣雖然可以用,但是提示不明顯,還是容易誤用,當然,還有更好的方法 較為可以接受的寫法class MyCls(): def foo(self)
Time of Update: 2016-06-06
Python3,開一個線程,間隔1秒把一個遞增的數字寫入隊列,再開一個線程,從隊列中取出數字並列印到終端 代碼如下:#! /usr/bin/env python3import timeimport threadingimport queue# 一個線程,間隔一定的時間,把一個遞增的數字寫入隊列# 生產者class Producer(threading.Thread): def __init__(self, work_queue): super().__init__() #
Time of Update: 2016-06-06
threading.ThreadThread 是threading模組中最重要的類之一,可以使用它來建立線程。有兩種方式來建立線程:一種是通過繼承Thread類,重寫它的run方法;另一種是建立一個threading.Thread對象,在它的初始化函數(__init__)中將可調用對象作為參數傳入。下面分別舉例說明。先來看看通過繼承threading.Thread類來建立線程的例子: #coding=gbkimport threading, time, randomcount = 0class
Time of Update: 2016-06-06
不久前,在互連網上出現了一篇有趣的文章,講的是對於同一個問題,不同層次的Python程式員編出的Python代碼,顯示出了不同的風格,代碼都很簡單,有趣。下面讓我們一起來看看一個Python程式猿進階的全過程吧。(偷笑)編程新手def factorial(x): if x == 0: return 1 else: return x * factorial(x - 1) //不簡單啊,迭代,新手哦。 print factorial(6)
Time of Update: 2016-06-06
待測試的類(Widget.py)# Widget.py # Python 2.7.6 class Widget: def __init__(self, size = (40,40)): self.size = size def getSize(self): return self.size def reSize(self,width,height): if width 測試類別(Auto.py)# coding=utf8 # Auto.dy #
Time of Update: 2016-06-06
本文執行個體分析了python中的全域變數用法。分享給大家供大家參考。具體分析如下:Python是一種物件導向的開發語言,在函數中使用全域變數,一般應作全域變數說明,只有在函數內經過說明的全域變數才能使用,這裡就來介紹下Python全域變數有關問題。首先應該說明的是需要盡量避免使用Python全域變數。不同的模組都可以自由的訪問全域變數,可能會導致全域變數的不可預知性。對全域變數,如果程式員甲修改了_a的值,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。全域變數降低了函數或模組之間的通用
Time of Update: 2016-06-06
本文執行個體講述了Python實現簡單截取中文字串的方法。分享給大家供大家參考。具體如下:web應用難免會截取字串的需求,Python中截取英文很容易:>>> s = 'abce'>>> s[0:3]'abc'但是截取utf-8的中文機會截取一半導致一些不是亂碼的亂碼.其實utf8截取很簡單,這裡記下來作為備忘#-*- coding:utf8 -*-s = u'中文截取's.decode('utf8')[0:3].encode('utf8')#
Time of Update: 2016-06-06
這兩個均是 python 的內建函數,通過讀取控制台的輸入與使用者實現互動。但他們的功能不盡相同。舉兩個小例子。>>> raw_input_A = raw_input("raw_input: ")raw_input: abc >>> input_A = input("Input: ")Input: abcTraceback (most recent call last): File "", line 1, in input_A = input("Input: ") File "",
Time of Update: 2016-06-06
本文執行個體講述了Python實現簡單HTML表格解析的方法。分享給大家供大家參考。具體分析如下:這裡依賴libxml2dom,確保首先安裝!匯入到你的腳步並調用parse_tables() 函數。1. source = a string containing the source code you can pass in just the table or the entire page code2. headers = a list of ints OR a list of strings