原创 棧的簡單應用——四則運算(一)

       在Java中用堆棧實現四則運算是一種很巧妙的方法。棧的先進後出原理可以很方便地判斷並控制加、減、乘、除的優先級,利用這一優勢,我們可以很高效的將一箇中綴表達式轉換爲去除符號優先級的後綴表達式。 一、基礎知識 中綴表達式 

原创 SICP Section 2.1.3

Exercise 2.4 #lang racket (define (cons x y) (lambda (m) (m x y))) (define (car z) (z (lambda (p q) p))) ;(cons x y

原创 棧的簡單應用——四則運算(二)

待解決問題      解決任意整數或小數的加減乘除四則運算。 解決方法       在後綴表達式中把整數或小數放到圓括號裏,將它們作爲一個整體來處理,例如,"2+50"會轉換爲"2(50)+","2.1+1.2"會被轉換爲"(2.1)

原创 SICP Section 2.1.4

Exercise 2.7 #lang racket (define (make-interval a b) (cons a b)) (define (upper-bound interval) (cdr interval)) (def

原创 SICP Sections 2.1.1-2.1.2

Exercise 2.1 #lang racket ;the greatest common divisor of the two integers (define (gcd a b) (if (= b 0) a

原创 棧的簡單應用——四則運算(三)

待解決問題       如何計算帶括號的四則運算? 解決方案        一、採用符號入棧的解決方式,只是圓括號的操作方式會有所改變。圓括號的優先級最高,"("入棧後,只有遇到")"後纔會出棧,並且要先彈出"("後的遺留操作符,保證"(

原创 python多繼承與mro

1、深度優先 #!/usr/bin/env python class Account: """bank account""" def __init__(self, holder): self.balance = 0 self

原创 SICP Section 2.2.1

Exercise 2.17 #lang racket (define (last-pair l) (if (null? (cdr l)) l (last-pair (cdr l)))) Exercise 2.

原创 python中的迭代器與生成器

一、迭代器 實現一個迭代器,應滿足如下條件: python2中,實現next()方法的類(python3可用__next__()取代)可變對象,unhashable type總是返回當前迭代位置之前的值(有限長度的迭代器,無法迭代最後值

原创 python中的__all__與__import__

__all__   __all__屬性由列表構成,它規定了模塊的所有可見方法,會使屬性列表之外的成員全部私有化。   只有在執行語句 from module import * 時,__all__屬性纔會起作用。此時所有枚舉的成員被im

原创 如何使用Python實現進程間通信

socket是什麼? 在網絡通訊中,socket是數據傳輸通道的節點,控制着數據的傳輸與接收。socket依靠兩個主要的屬性控制數據的傳輸與接收:地址族(address families)與連接類型(socket type)。 addr

原创 ngnix+uWSGI實現python CGI編程

    Nginx是一個開源的web服務器,它能夠很好地處理高負載的web任務。Nginx在處理靜態文件,比如圖片、html文檔,要比Apache服務器快的多。和Apache不一樣,Nginx本身並沒有提供對CGI腳本的內部支持,所以需要

原创 urllib2實現文件上傳

需要做什麼? 如果使用get方法向服務器發送如下數據: name: zhangsan from: beijing content-type爲application/x-www-form-urlencoded,則會傳輸數據: n

原创 webpy+uploadify實現文件異步上傳

  Uploadify的官方文檔見鏈接:點擊打開鏈接   程序結構圖       源代碼 $def with () <!--file_upload.html--> <html lang="zh"> <head>

原创 http緩存

1、Cache-Control 作用於瀏覽器端,可以用來設置緩存的max-age值(單位爲秒)指定數據存活的時間。 import web import datetime urls = ( '/', 'Index', ) app =