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

你可能感兴趣的:(python)