The first glance at Python

这是当年初学Python时写下的笔记,本来是放在SolidMCP@Baidu的。但技术Blog搬家到了cnblog,每次在久不用之后需要参考Python的某些语法时,总得到Baidu空间去晃一圈,很是麻烦。

最近准备学习JavaScript,干脆把The first glance at PythonThe first glance at Scala也搬过来,一次看个够。

 

>> Python Basic

Python_Basic.py
# ''' is docstring which is used for documenting.

moduleName = 'The first glance at Python: Python_Basic'

print 'multiple',\
        'lines'
# ------------------------------------------------------------- # How to use if-elif-else # ------------------------------------------------------------- def TryIF(a, b): ''' ----Function : How to use if-elif-else----''' if a > b : print a, 'is bigger' elif a == b: print a, 'equals', b else: print b, ' is bigger' #print TryIF.__doc__ #TryIF(3, 'a') #TryIF(3, 3) #TryIF(5, 3) # ------------------------------------------------------------- # How to use while # Please notice that we can add a else case for while.. # ------------------------------------------------------------- def TryWhile(): ''' ---Function : How to use while----''' number = 100 running = True while running: guessValue = int(raw_input('Enter a integer:')) if guessValue == number: running = False elif guessValue == 1234: print 'Quit' break elif guessValue == 555: print '555 is input, let\'s continue' continue else: print 'continue' else: print 'Right! Jump out of while scope' #TryWhile()
# ------------------------------------------------------------- # How to use for # for in Python is more like foreach # Also, we need to notice that we can add a else case for it.
# -------------------------------------------------------------
def TryFor(): ''' ----Function : How to use for----''' kickNum = 36 step = 2 number = 100 for i in range(0, step * 10): number = i * step print '\tcurrent number is', number, '\n' if number == kickNum: print 'Quit if number = ', kickNum break for i in range(0, 10): print 'for loop:', i else: print 'Out of range:', i #TryFor() # ------------------------------------------------------------- # How to use global variable # ------------------------------------------------------------- def TryGlobalVariable(changedValue = 6789): ''' --- Function : How to use Global Value ---''' global gValue print 'Current Value = ', gValue gValue = changedValue print 'gValue is changed to', gValue return gValue #gValue = 32 #print 'Global Value Test \n', TryGlobalVariable() == 6789 # ------------------------------------------------------------- # Show Document help for above functions # ------------------------------------------------------------- #help(TryIF) #help(TryWhile) #help(TryFor) #help(TryGlobalVariable) # ------------------------------------------------------------- # Show all methods in a python lib: math # -------------------------------------------------------------
import math #help(math)

 

sys module and Import our module

# -------------------------------------------------------------
# How to use SYS module and my own module
# -------------------------------------------------------------
import sys
#help(sys)
print 'The command line arguments are :'
for i in sys.argv:
    print i
print '\n The System Path is : ' , sys.path
print 'File System Encoding = ', sys.getfilesystemencoding()
print 'Windows OS version = ', sys.getwindowsversion()
print 'Major Version = ', sys.version

#using Python_Basic.py
import Python_Basic
print 'Imported Module Name :', Python_Basic.moduleName
print '\nFunctions, Classes, Variables in sys module: \n', dir(sys)
print '\nFunctions, Classes, Variables in Python_Basic module: \n', dir(Python_Basic)

 

>> Python Data Structures

# -------------------------------------------------------------
# Data Structure in Python
# -------------------------------------------------------------

# Before all, we need to know that even int is a class in python.
#help(int)

# list class
print '\n\nBegin to study list class'
#help(list)
teamMember = ['Bike', 'Bush', 'Xiao']
print 'Index of \'Bush\' is:', teamMember.count('Bush') #index of list starts from 0
teamMember.append(8888)
print 'New object ', teamMember[3],'is added. Now, memeber count is', len(teamMember)
del teamMember[2]
print 'The 3th Object is:', teamMember[2]
print 'Pre-Sorted Members:'
for i in range(0, 3):
    print teamMember[i]
teamMember.sort()
print 'Sorted Members:'
for i in range(0, 3):
    print teamMember[i]
print 'using sliceing to list some members', teamMember[0:3]

# tuple class
print '\n\nBegin to study tuple'
#help(tuple)
subTuple = ('Mike', 'Monkey', 'Carl')
parentTuple = ('Tuple1', 'Tuple2', subTuple)
print 'Both methods should return Carl, sure?'
print subTuple[2]
print parentTuple[2][2]
print parentTuple[2]
print 'using sliceing to list some members', parentTuple[0:3] #we need to use 3 here, why?

# String class
print '\n\nBegin to study string'
#help(str)
myString = 'Piaoger is a good man..'
print 'To Upper: ', myString[0:10].upper()

# dictionary(dict) class
print '\n\nBegin to study dictionary'
#help(dict)
directory = { 'Piaoger' : '139',
              'Mike'    : '123',
              'Bush'    : 'dsfsfd'
            }

print 'list all members in the directory\n'
for name, address in directory.items():
    print 'Name: %s\tValue: %s' % (name, address)
   
directory['Piaoger'] = '12345'
print 'Value of Piaoger is changed to ',directory['Piaoger']

if 'Sophia' not in directory:
    directory['Sophia'] = '888'
    print 'Failing to find Sophia in the directory'
if directory.has_key('Sophia'):
    print 'Sophia is in the directory now..'
    print 'Value of Sophia is ',directory['Sophia']


# reference V.s. copy for sequence classes: tuple, list, string...
# This Example tells us not to use reference for copy values in list..
origin=['Mike', 'Monkey', 'Carl']
originRef = origin
originCopy= origin[:]
del origin[2]
print 'After change:'
print '\'originRef == origin\' = ', originRef == origin, '\t\'originCopy == origin\' = ',originCopy== origin

 

>> Python in OO paradigm
Python_OO.py

# My first class with multiple inheritance: Markup
class Markup:
    '''This class is used to process markups.'''
    def __init__(self, fileName):
        '''Constructor'''
        self.fileName = fileName
    def __del__(self):
        '''Destructor'''
        print 'Byebye, Markup'

    def GetType(self):
        return 'Unknown'
       
    def Load(self):
        '''Method to load Markups'''
        print '%s file %s is loading' % (self.GetType() , self.fileName)


    def Save(self, bSaveCopyAs = False):
        '''Save Markups'''
        if bSaveCopyAs == True:
            print 'Dialog will be presented..'
        else:
            print 'Document is saved'
    def Action(self, strActionName, strActionContent):
        '''Process all action items.'''
        print 'Action Name = %s Content = %s' % (strActionName, strActionContent)

class Language:
    def GetLanguage(self):
        print 'Language ID is Chinese'
       
class PDFMarkup(Markup, Language):
    def GetType(self):
        '''Overloaded GetType for PDF Markup'''
        return 'PDF Markup'
       
help(Markup)

print 'Load a general markup file..'
markup = Markup("c:\\temp\\my.txt")
markup.Load()
markup.Action('My Action', 'To many action items....')
markup.Save()
del markup #it's better to do that by our own.

help(PDFMarkup)
print '\nLoad a PDF markup file..'
pdfMarkup = PDFMarkup("c:\\temp\\myfile.pdf")
pdfMarkup.GetLanguage()
pdfMarkup.Load()
pdfMarkup.Action('Look into PDF file', '[It\'s so complicated]')
pdfMarkup.Save(True)
del pdfMarkup

 

>> Other

Python_Other.py
 

#help(file)
print 'Begin to study File IO'
strContent = 'd'
myFile = file('C:\\temp\\users\\NAME1', 'r')
strContent = myFile.read()
print strContent
myFile.close()
myFile = file('C:\\temp\\users\\NAME1', 'a')
myFile.write('sssssssssssssssssssssssssss')
myFile.close()


# os Module
print 'Begin to study os module'
import os
help(os)
print 'os.name = ', os.name
print 'os.getcwd() = ', os.getcwd()
print 'path = ', os.getenv('path')
os.putenv('MyEnv', 'No')
print 'MyEnv =',os.getenv('MyEnv')
paths = os.listdir('c:\\windows\\Fonts') #list all font files
print 'dir count = ',len(paths)
#for i in range(0, len(paths)):
#    print '%s'% paths[i]
   
filePath = os.path.split('C:\\temp\\users\\NAME1')
print 'File Name = ', filePath[1]

#shell scripting
#
import os
#os.system('notepad C:\\temp\\users\\NAME1') #using os.system

# we need to download win32all from http://sourceforge.net/projects/pywin32/
import win32api
#help(win32api)
#using ShellExecute(hwnd, op , file , params , dir , bShow )
#win32api.ShellExecute(0, 'open', 'notepad.exe', 'C:\\temp\\users\\NAME1','',1)
#win32api.ShellExecute(0, 'open', 'http://www.google.com', '','',1)


# Registry Operation
# Environmnt Variables
#
#HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
#
import win32api
import win32con
key = win32api.RegOpenKey( win32con.HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment",0,win32con.KEY_ALL_ACCESS)
print 'path = \n',str(win32api.RegQueryValueEx(key, "Path")[0])
win32api.RegSetValueEx(key, "\nPythonStudy", 0, win32con.REG_SZ, "GoodLanguage")
print 'Key = PythonStudy, value = ', str(win32api.RegQueryValueEx(key, "PythonStudy")[0])
win32api.RegCloseKey(key)

 

 

 

>> More Materials

Python简明教程

http://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python

posted on 2012-05-06 09:31  飘行天下  阅读(401)  评论(0编辑  收藏  举报

导航