對Python應用程序進行簡述說明
經過長時間學習Python應用程序,于是和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會你更多東西,學習Python應用程序時,你可能會遇到Python應用程序問題,這里將介紹Python應用程序問題的解決方法。
在所有有名的形參的后面可以有兩個特殊的形參,一個以*args的形式命名,一個以**kw 的形式命名。有了*args形式的形參后函數在調用時就可以在正常的能匹配的實參表后面輸入任意個數的參數。
這些參數組成一個序表賦給args形參,不能匹配的關鍵字參數組成一個字典賦給kw形參。在任意個數形參之前可以有0到多個正常的參數。例如:
- def cheeseshop(kind, *arguments, **keywords):
- print "-- Do you have any", kind, '?'
- print "-- I'm sorry, we're all out of", kind
- for arg in arguments: print arg
- print '-'*40
- for kw in keywords.keys(): print kw, ':', keywords[kw]
- cheeseshop('Limburger', "It's very runny, sir.",
- "It's really very, VERY runny, sir.",
- client='John Cleese',
- shopkeeper='Michael Palin',
- sketch='Cheese Shop Sketch')
因為許多人的要求,Python應用程序中加入了一些在函數編程語言和Lisp中常見的功能。可以用lambda 關鍵字來定義小的無名函數。這是一個返回其兩個參數的和的函數:“lambda a, b: a+b” 。Lambda形式可以用于任何需要函數對象的地方。
從句法上講lambda形式局限于一個表達式。從語義上講,這只是正常的函數定義的句法甜食。像嵌套函數定義一樣,lambda形式不能訪問包含其定義的作用域中的變量,但審慎地使用缺省參數之可以繞過這個限制。例如:
- >>> for n in range(2, 10):
- ... for x in range(2, n):
- ... if n % x == 0:
- ... print n, 'equals', x, '*', n/x
- ... break
- ... else:
- ... print n, 'is a prime number'
- ...
- 2 is a prime number
- 3 is a prime number
- 4 equals 2 * 2
- 5 is a prime number
- 6 equals 2 * 3
- 7 is a prime number
- 8 equals 2 * 4
- 9 equals 3 * 3
- >>>
關于文檔字符串的內容與格式正在形成一些慣例。***行應該為簡短的對象目的概括說明。為了簡明起見,這一行不應該提及對象的名字或類型。因為這些可以通過其他途徑得知(當然如果對象名字就是一個描述函數操作的動詞則當然可以提及其名字)。著以行應該用大些字母開始,以句點結尾。
如果文檔字符串中有多行,第二行應該是空行,把概括說明與其它說明分開。以下的行可以是一段或幾段,描述對象的調用方法,它的副作用,等等。Python的掃描程序不會從多行字符串中去掉縮進空白,所以處理文檔的工具需要自己處理縮進。只要遵循如下的慣例就可以有利于縮進空白的處理。
在***行之后的***個非空白的行決定整個文檔字符串的縮進數量(我們不用***行,因為它經常是直接跟在表示字符串開始的引號后面)。文檔字符串中除***行以外的各行都要刪除等價于此行的縮進量的空白。對制表符將擴展為空格后再刪除。
Python應用程序內置的另一個有用的數據類型是字典。字典在其它語言中有時被稱為“關聯記憶” 或“關聯數組”。字典不象序列,它不是用在一個范圍之內的數字下標來索引,而是用鍵值來索引,鍵值可以是任何不可變類型。
字符串和數值總可以作鍵值。如果序表只包含字符串、數值或序表則序表也可以作鍵值使用。列表不能用作鍵值,因為列表可以用其append()方法就地改變值。***把字典看成是一系列未排序的“鍵值:值”的集合。
在同一字典內鍵值是互不相同的。一對空大括號產生一個空字典:{}。在大括號內加入用逗號分開的“鍵值:值”對可以在字典內加入初始的鍵值和值對,字典在輸出時也是這樣顯示的。
對字典的主要操作是以某個鍵值保存一個值,以及給定鍵值后查找對應的值。也可以用del刪除某個鍵值:值對。如果用一個已有定義的鍵值保存某個值則原來的植被遺忘。用不存在的鍵值去查找會出錯。
【編輯推薦】