當前位置:首頁 » 編程語言 » python的var函數

python的var函數

發布時間: 2022-08-07 15:02:00

⑴ 享學課堂淺談python序列內建函數都有哪些

1、Python類型操作符和內建函數總結
表4.5列出了所有操作符和內建函數,其中操作符順序是按優先順序從高到低排列的。同一種灰度的操作符擁有同樣的優先順序。注意在operator模塊中有這些(和絕大多數Python)操作符相應的同功能的函數可供使用。

表4.5 標准類型操作符和內建函數

操作符/函數

描 述

結 果a

字元串表示

``

對象的字元串表示

str

內建函數

cmp(obj1, obj2)

比較兩個對象

int

repr(obj)

對象的字元串表示

str

str(obj)

對象的字元串表示

str

type(obj)

檢測對象的類型

type

值比較

<

小於

bool

>

大於

bool

<=

小於或等於

bool

>=

大於或等於

bool

==

等於

bool

!=

不等於

bool

<>

不等於

bool

對象比較

is



bool

is not

不是

bool

布爾操作符

not

邏輯反

bool

and

邏輯與

bool

or

邏輯或

bool

2、Python數值類型操作符和內建函數

一、工廠函數
數值工廠函數總結類(工廠函數) 操作
bool(obj) b 返回obj對象的布爾值,也就是 obj.__nonzero__()方法的返回值。
int(obj, base=10) 返回一個字元串或數值對象的整數表 示, 類似string.atoi();
從Python 1.6起, 引入了可選的進制參數。
long(obj, base=10) 返回一個字元或數據對象的長整數表 示,類似string.atol(),
從Python1.6起, 引入了可選的進制參數 float(obj) ,
返回一個字元串或數據對象的浮點數 表示,類似string.atof()。
complex(str) or返回一個字元串的復數表示,或 者根據給定的實數,
complex(real, imag=0.0) (及一個可選 的虛數部分)生成一個復數對象。

二、內建函數
1、分類
Python 有五個運算內建函數用於數值運算:
abs(num), coerce(num1,num2), divmod(num1,num2), pow(num1,num2,mod=1)和 round(flt,ndig=0)
其中abs()返回給定參數的絕對值。如果參數是一個復數, 那麼就返回math.sqrt(num.real2 + num.imag2).
coerce()是一個數據類型轉換函數,不過它的行為更像一個運算符.數coerce()為程序員提供了不依賴Python 解釋器,而是自定義兩個數值類型轉換的方法。對一種新創建的數值類型來說, 這個特性非常有用.函數coerce()僅返回一個包含類型轉換完畢的兩個數值元素的元組.
divmod()內建函數把除法和取余運算結合起來, 返回一個包含商和余數的元組.對整數來說,它的返回值就是地板除和取余操作的結果.對浮點數來說,返回的商部分是math.floor(num1/num2),對復數來說,商部分是ath.floor((num1/num2).real).
pow()它和雙星號 (**)運算符都可以進行指數運算.不過二者的區別並不僅僅在於一個是運算符,一個是內建函數.在Python 1.5 之前,並沒有 ** 運算符,內建函數pow()還接受第三個可選的參數,一個余數參數.如果有這個參數的, pow() 先進行指數運算,然後將運算結果和第三個參數進行取余運算.這個特性主要用於密碼運算,並且比 pow(x,y) % z 性能更好, 這是因為這個函數的實現類似於C 函數pow(x,y,z).
round()用於對浮點數進行四捨五入運算。它有一個可選的小數位數參數.如果不提供小數位參數, 它返回與第一個參數最接近的整數(但仍然是浮點類型).第二個參數告訴round 函數將結果精確到小數點後指定位數.

2、函數int()/round()/math.floor()它們之間的不同之處:
函數 int()直接截去小數部分.(返回值為整數)
函數 floor()得到最接近原數但小於原數的整數.(返回值為浮點數)
函數 round() 得到最接近原數的整數.(返回值為浮點數)

3、進制轉換函數:
返回字元串表示的8 進制和16 進制整數,它們分別是內建函數:
oct()和 hex(). oct(255)='0377'/hex(255)='0xff'
函數chr()接受一個單位元組整數值(0到255),返回一個字元串(ASCII),其值為對應的字元.chr(97)='a'
函數ord()則相反,它接受一個字元(ASCII 或 Unicode),返回其對應的整數值.ord('A')=65
3、Python字元串函數
(一)標准類型操作符和標准內建函數
1)、標准類型操作符
>,<,>=,<=,==,!=,<>對象值得比較
註:做比較時字元串是按ASCII值的大小來比較的
is 對象身份比較
and,or,not 布爾類型
2)標准內建函數
type(obj)
cmp(obj1,obj2)
str(obj)和repr(obj) 或反引號運算符(``) 可以方便的以字元串的方式獲取對象的
內容、類型、數值屬性等信息。str()函數得到的字元串可讀性好, 而repr()函數得到的字元
串通常可以用來重新獲得該對象, 通常情況下 obj == eval(repr(obj)) 這個等式是成立的
isinstance(obj,type) 判斷對象的類型
(二)序列操作
1、序列操作
字元串屬於序列對象,可以使用所有序列的操作和函數
切片 [] [:] [::]
簡單總結:
*索引(S[i])獲取特定偏移的元素。
——第一個元素偏移為0
——(S[0])獲取第一個元素。
——負偏移索引意味著從最後或右邊反向進行計數
——(S[-2])獲取倒數第二個元素(就像S[len(s)-2]一樣
*分片[S[i:j]提取對應的部分作為一個序列
——右邊界不包含在內
——分片的邊界默認為0和序列的長度,如果沒有給出的話S[:]
——(S[1:3])獲取了從偏移為1,直到但不包括偏移為3的元素
——(S[1:])獲取從偏移為1到末尾之間的元素
——(S[:3])獲取從偏移為0直到但不包括偏移為3的元素
——(S[:-1])獲取從偏移為0直到但不包括最後一個元素之間的元素
——(S[:])獲取從偏移為0到末尾之間的元素,這有效地實現了頂層S拷貝
拷貝了一個相同值,但是是不同內存區域的對象。對象字元串這樣不可變的對象不是很有用,但是對於可以實地修改的對象來說很有用。
比如列表。
擴展分片:第三個限制值 【步進】
完整形式:X[I:J:K]:這標識索引X對象的元素,從偏移為I直到J-1,每隔K元素索引一次。第三個限制值,K,默認為1
實例

Python Code

1
2
3
4
5

>>> S='abcdefghijk'
>>> S[1:10]
'bcdefghij'
>>> S[1:10:2]
'bdfhj

也可以使用負數作為步進。
分片表達式

Python Code

1
2

>>> "hello"[::-1]
'olleh'

通過負數步進,兩個邊界的意義實際上進行了反轉。
3、成員操作符 in ,not in
返回布爾值True 或False
可以使用string模塊來判斷輸入字元的合法性,可見成品中的idcheck.py
4、字元串連接
+ 連接字元串 『name』+' '+'jin'
字元串格式化 '%s %s' % ('name','jin')
join()方法 ' '.join(('name','jin')) ' '.join(['name','jin'])
5、刪除清空字元串
del aString
aString=''
(三)、序列函數
序列類型函數
len(str) 返回字串的長度
enumerate(iter):接受一個可迭代對象作為參數,返回一個enumerate
max(str)/min(str):max()和min()函數對其他的序列類型可能更有用,但對於string類型它們能很好地運行,返回最大或者最小的字元(按照ASCII 碼值排列),
zip([it0, it1,... itN]) 返回一個列表,其第一個元素是it0,it1,...這些元素的第一個元素組成的一個元組,第二個...,類推.
reversed(seq)c 接受一個序列作為參數,返回一個以逆序訪問的迭代器(PEP 322)
sorted(iter,func=None,key=None,reverse=False) 接受一個可迭代對象作為參數,返回一個有序的列表;可選參數func,key 和reverse 的含義跟list.sort()內建函數的參數含義一樣.
注意:
sorted等需要在原處修改的函數無法用在字元串對象,但可以產生新的對象
sum處理的對象是數字,不能用在字元串
>>> sorted(s)
['a', 'e', 'e', 'g', 'g', 'g', 'o']
(四)只適合於字元串類型的函數
1)raw_input()函數
內建的raw_input()函數使用給定字元串提示用戶輸入並將這個輸入返回,下面是一個使
用raw_input()的例子:
>>> user_input = raw_input("Enter your name: ")
>>> prin user_input
2)str() and unicode()
str()和unicode()函數都是工廠函數,就是說產生所對應的類型的對象.它們接受一個任
意類型的對象,然後創建該對象的可列印的或者Unicode 的字元串表示. 它們和basestring 都
可以作為參數傳給isinstance()函數來判斷一個對象的類型
3)chr(), unichr(), and ord()
chr()函數用一個范圍在range(256)內的(就是0 到255)整數做參數,返回一個對應的字元.unichr()跟它一樣,只不過返回的是Unicode 字元
ord()函數是chr()函數(對於8 位的ASCII 字元串)或unichr()函數(對於Unicode 對象)
的配對函數,它以一個字元(長度為1 的字元串)作為參數,返回對應的ASCII 數值,或者Unicode
數值,如果所給的Unicode 字元超出了你的Python 定義范圍,則會引發一個TypeError 的異常
(五)、只適用於字元串的操作符
1、格式化操作符 %
字元串格式化符號
格式化字元 轉換方式
%c 轉換成字元(ASCII 碼值,或者長度為一的字元串)
%ra 優先用repr()函數進行字元串轉換
%s 優先用str()函數進行字元串轉換
%d / %i 轉成有符號十進制數
%ub 轉成無符號十進制數
%ob 轉成無符號八進制數
%xb/%Xb (Unsigned)轉成無符號十六進制數(x/X 代表轉換後的十六進制字元的大
小寫)
%e/%E 轉成科學計數法(e/E 控制輸出e/E)
%f/%F 轉成浮點數(小數部分自然截斷)
%g/%G %e 和%f/%E 和%F 的簡寫
%% 輸出%
格式化操作符輔助指令
符號 作用
* 定義寬度或者小數點精度
- 用做左對齊
+ 在正數前面顯示加號( + )
<sp> 在正數前面顯示空格
# 在八進制數前面顯示零('0'),在十六進制前面顯示'0x'或者'0X'(取決於
用的是'x'還是'X')
0 顯示的數字前面填充『0』而不是默認的空格
% '%%'輸出一個單一的'%'
(var) 映射變數(字典參數)
m.n m 是顯示的最小總寬度,n 是小數點後的位數(如果可用的話)
2、字元串模板: 更簡單的替代品
由於新式的字元串Template 對象的引進使得string 模塊又重新活了過來,Template 對象
有兩個方法,substitute()和safe_substitute().前者更為嚴謹,在key 缺少的情況下它會報一
個KeyError 的異常出來,而後者在缺少key 時,直接原封不動的把字元串顯示出
3、原始字元串操作符( r/R )
字元串抑制轉義r'帶特殊符號的字串'
myfile=open(r'C:\new\text.data','w')
4、Unicode 字元串操作符( u/U )
u'abc' U+0061 U+0062 U+0063
u'\u1234' U+1234
u'abc\u1234\n' U+0061 U+0062 U+0063 U+1234 U+0012

(六)字元串對象的方法:
1、刪減
T2.lstrip() 移除字元串前面字元(默認空格),返回字元串
T2.rstrip() 移除字元串後面字元(默認空格),返回字元串
T2.strip() 移除字元串前後面空格,返回字元串 默認空格,可以其他字元 S.strip('"')
2、切割
partition(sep),
rpartition(sep),
splitlines([keepends]),#把S按照行分割符分為一個list,keepends是一個bool值,如果為真每行後而會保留行分割符
split([sep [,maxsplit]]),#以sep為分隔符,把S分成一個list。maxsplit表示分割的次數。默認的分割符為空白字元
rsplit([sep[,maxsplit]]) #從右到左切割
備註:
partition()函數族是2.5版本新增的方法。它接受一個字元串參數,並返回一個3個元素的 tuple 對象。
如果sep沒出現在母串中,返回值是 (sep, 『』, 『』);
否則,返回值的第一個元素是 sep 左端的部分,第二個元素是 sep 自身,第三個元素是 sep 右端的部分。
>>> S.partition(';')
('', ';', ' generated by /sbin/dhclient-script\nnameserver 172.16.10.171\nnameserver 8.8.8.8\nnameserver 172.16.0.2\nnameserver 178.79.131.110\nnameserver 202.96.199.133\n')
參數 maxsplit 是分切的次數,即最大的分切次數,所以返回值最多有 maxsplit+1 個元素。
s.split() 和 s.split(『 『)的返回值不盡相同
>>> ' hello world!'.split()
['hello', 'world!']
>>> ' hello world!'.split(' ')
['', '', 'hello', '', '', 'world!']
>>> S.split('\n',3)
['; generated by /sbin/dhclient-script', 'nameserver 172.16.10.171', 'nameserver 8.8.8.8', 'nameserver 172.16.0.2\nnameserver 178.79.131.110\nnameserver 202.96.199.133\n']
超過最大切割個數後面的全部為一個元素
按行切割
>>> S
'; generated by /sbin/dhclient-script\nnameserver 172.16.10.171\nnameserver 8.8.8.8\nnameserver 172.16.0.2\nnameserver 178.79.131.110\nnameserver 202.96.199.133\n'
>>> S.splitlines()
['; generated by /sbin/dhclient-script', 'nameserver 172.16.10.171', 'nameserver 8.8.8.8', 'nameserver 172.16.0.2', 'nameserver 178.79.131.110', 'nameserver 202.96.199.133']

產生差異的原因在於當忽略 sep 參數或sep參數為 None 時與明確給 sep 賦予字元串值時 split() 採用兩種不同的演算法
對於前者,split() 先去除字元串兩端的空白符,然後以任意長度的空白符串作為界定符分切字元串
即連續的空白符串被當作單一的空白符看待;
對於後者則認為兩個連續的 sep 之間存在一個空字元串。因此對於空字元串(或空白符串),它們的返回值也是不同的:
>>> ''.split()
[]
>>> ''.split(' ')
['']
3、變形
lower(),#全部小寫
upper(),#全部小寫
capitalize(),#首字母大寫
swapcase(),#大小寫交換
title()#每個單詞第一個大寫,其他小寫
備注
因為title() 函數並不去除字元串兩端的空白符也不會把連續的空白符替換為一個空格,
所以建議使用string 模塊中的capwords(s)函數,它能夠去除兩端的空白符,再將連續的空白符用一個空格代替。

Python Code

1
2
3
4

>>> ' hello world!'.title()
' Hello World!'
>>> string.capwords(' hello world!')
'Hello World!'

4、連接
join(seq)
join() 函數的高效率(相對於循環相加而言),使它成為最值得關注的字元串方法之一。
它的功用是將可迭代的字元串序列連接成一條長字元串,如:
>>> conf = {'host':'127.0.0.1',
... 'db':'spam',
... 'user':'sa',
... 'passwd':'eggs'}
>>> ';'.join("%s=%s"%(k, v) for k, v in conf.iteritems())
'passswd=eggs;db=spam;user=sa;host=127.0.0.1'
>>> S=''.join(T) #使用空字元串分割把字元列表轉換為字元串
5、查找
count( sub[, start[, end]]),#計算substr在S中出現的次數
find( sub[, start[, end]]),#返回S中出現sub的第一個字母的標號,如果S中沒有sub則返回-1。start和end作用就相當於在S[start:end]中搜索
index( substr[, start[, end]]),#與find()相同,只是在S中沒有substr時,會返回一個運行時錯誤
rfind( sub[, start[,end]]),#返回S中最後出現的substr的第一個字母的標號,如果S中沒有substr則返回-1,也就是說從右邊算起的第一次出現的substr的首字母標號
rindex( sub[, start[, end]])
T2.find('ie') 字元串方法調用:搜索
find()----找到的第一個符合字元的index
rfind()-----找到最後一個符合的字元的index
備註:
find()函數族找不到時返回-1,index()函數族則拋出ValueError異常。
另,也可以用 in 和 not in 操作符來判斷字元串中是否存在某個模板
6、替換
replace(old, new[,count]),#把S中的oldstar替換為newstr,count為替換次數。這是替換的通用形式,還有一些函數進行特殊字元的替換
translate(table[,deletechars]) #使用上面的函數產後的翻譯表,把S進行翻譯,並把deletechars中有的字元刪掉
備註:
replace()函數的 count 參數用以指定最大替換次數
translate() 的參數 table 可以由 string.maketrans(frm, to) 生成
translate() 對 unicode 對象的支持並不完備,建議不要使用
7、判定
isalnum(),#是否全是字母和數字,並至少有一個字元
isalpha(),是否全是字母,並至少有一個字元
isdigit(),是否全是數字,並至少有一個字元 ,如果是全數字返回True,否則返回False
islower(),#S中的字母是否全是小寫
isupper(),#S中的字母是否是大寫
isspace(),#是否全是空白字元,並至少有一個字元
istitle(),S是否是首字母大寫的
startswith(prefix[, start[, end]]), #是否以prefix開頭
endswith(suffix[,start[, end]]),#以suffix結尾
備註:
這些函數都比較簡單,顧名知義。需要注意的是*with()函數族可以接受可選的 start, end 參數,善加利用,可以優化性能。
另,自 Py2.5 版本起,*with() 函數族的 prefix 參數可以接受 tuple 類型的實參,當實參中的某人元素能夠匹配,即返回 True。
8、填充
字元串在輸出時的對齊:
center(width[, fillchar]), 字元串中間對齊
ljust(width[, fillchar]), 字元串左對齊,不足部分用fillchar填充,默認的為空格
rjust(width[, fillchar]), 字元串右對齊,不足部分用fillchar填充,默認的為空格
zfill(width), 把字元串變成width長,並在右對齊,不足部分用0補足
expandtabs([tabsize])把字元串中的製表符(tab)轉換為適當數量的空格。
fillchar 參數指定了用以填充的字元,默認為空格
zfill的z為zero的縮寫,顧名思義,是以字元0進行填充,用於數值輸出
expandtabs()的tabsize 參數默認為8。它的功能是把字元串中的製表符(tab)轉換為適當數量的空格。
9、編碼
encode([encoding[,errors]]),
decode([encoding[,errors]])
這是一對互逆操作的方法,用以編碼和解碼字元串。因為str是平台相關的,它使用的內碼依賴於操作系統環境,
而unicode是平台無關的,是Python內部的字元串存儲

⑵ Python中處理屬性的重要屬性和函數是什麼

處理屬性的重要屬性和函數

1、特殊屬性

__class__:對象所屬類的引用(即obj.__class__和type(obj)的作用相同)。Python中的某些特殊方法比如 __getattr__,只在對象的類中尋找,而不在實例中尋找。__dict__:一個映射,存儲對象或類的可寫屬性。__slots__:類可以定義這個屬性,限制實例有哪些屬性。

2、內置函數

dir([object]):列出對象的大多數屬性。getattr(object,name[,default]):從object對象中獲取name字元串對應的屬性。獲取的屬性可能來自對象所屬的類或超類。hasattr(object,name):若object對象中存在指定的屬性,或者能以某種方式(如繼承)通過object對象獲取指定的屬性,返回True。setattr(object,name,value):把object對象指定屬性的值設為value,前提是object對象能接受那個值。這個函數可能會創建一個新屬性,或者覆蓋現有的屬性。var([object]):返回object對象的__dict__屬性。

相關推薦:《Python視頻教程》

3、特殊方法

__delattr__(self,name):只要使用del語句刪除屬性,就會調用這個方法。__dir__(self):把對象傳給dir函數時調用,列出屬性。__getattr__(self,name):僅當獲取指定的屬性失敗,搜索過obj,Class和超類之後調用。__getattribute__(self,name):嘗試獲取指定的屬性時總會調用這個方法。不過尋找的屬性是特殊屬性或特殊方法時除外。為了防止無限遞歸,__getattribute__方法的實現要使用super().__getattribute__(obj,name)。__setattr__(self,name,value):嘗試設置指定的屬性時總會調用這個方法。點號和setattr內置函數會觸發這個方法。

相關推薦:

Python中的屬性和特性是什麼

⑶ Python的函數都有哪些

Python 函數

函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。

函數能提高應用的模塊性,和代碼的重復利用率。你已經知道Python提供了許多內建函數,比如print()。但你也可以自己創建函數,這被叫做用戶自定義函數。

定義一個函數

你可以定義一個由自己想要功能的函數,以下是簡單的規則:

  • 函數代碼塊以def關鍵詞開頭,後接函數標識符名稱和圓括弧()。

  • 任何傳入參數和自變數必須放在圓括弧中間。圓括弧之間可以用於定義參數。

  • 函數的第一行語句可以選擇性地使用文檔字元串—用於存放函數說明。

  • 函數內容以冒號起始,並且縮進。

  • return [表達式]結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回 None。

  • 語法

    def functionname( parameters ): "函數_文檔字元串"
    function_suite
    return [expression]

    默認情況下,參數值和參數名稱是按函數聲明中定義的順序匹配起來的。

    實例

    以下為一個簡單的Python函數,它將一個字元串作為傳入參數,再列印到標准顯示設備上。

    實例(Python 2.0+)

    def printme( str ): "列印傳入的字元串到標准顯示設備上"
    print str
    return

    函數調用

    定義一個函數只給了函數一個名稱,指定了函數里包含的參數,和代碼塊結構。

    這個函數的基本結構完成以後,你可以通過另一個函數調用執行,也可以直接從Python提示符執行。

    如下實例調用了printme()函數:

    實例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-
    # 定義函數def printme( str ): "列印任何傳入的字元串"
    print str
    return
    # 調用函數printme("我要調用用戶自定義函數!")printme("再次調用同一函數")

    以上實例輸出結果:

  • 我要調用用戶自定義函數!再次調用同一函數

  • 參數傳遞

    在 python 中,類型屬於對象,變數是沒有類型的:

    a=[1,2,3]
    a="Runoob"

    以上代碼中,[1,2,3]是 List 類型,"Runoob"是 String 類型,而變數 a 是沒有類型,她僅僅是一個對象的引用(一個指針),可以是 List 類型對象,也可以指向 String 類型對象。

    可更改(mutable)與不可更改(immutable)對象

    在 python 中,strings, tuples, 和 numbers 是不可更改的對象,而 list,dict 等則是可以修改的對象。

  • 不可變類型:變數賦值a=5後再賦值a=10,這里實際是新生成一個 int 值對象 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。

  • 可變類型:變數賦值la=[1,2,3,4]後再賦值la[2]=5則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。

  • python 函數的參數傳遞:

  • 不可變類型:類似 c++ 的值傳遞,如 整數、字元串、元組。如fun(a),傳遞的只是a的值,沒有影響a對象本身。比如在 fun(a)內部修改 a 的值,只是修改另一個復制的對象,不會影響 a 本身。

  • 可變類型:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響

  • python 中一切都是對象,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變對象和傳可變對象。

    python 傳不可變對象實例

    實例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-
    def ChangeInt( a ): a = 10
    b = 2ChangeInt(b)print b # 結果是 2

    實例中有 int 對象 2,指向它的變數是 b,在傳遞給 ChangeInt 函數時,按傳值的方式復制了變數 b,a 和 b 都指向了同一個 Int 對象,在 a=10 時,則新生成一個 int 值對象 10,並讓 a 指向它。

    傳可變對象實例

    實例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-
    # 可寫函數說明def changeme( mylist ): "修改傳入的列表"
    mylist.append([1,2,3,4])
    print "函數內取值: ", mylist
    return
    # 調用changeme函數mylist = [10,20,30]changeme( mylist )print "函數外取值: ", mylist

    實例中傳入函數的和在末尾添加新內容的對象用的是同一個引用,故輸出結果如下:

  • 函數內取值: [10, 20, 30, [1, 2, 3, 4]]函數外取值: [10, 20, 30, [1, 2, 3, 4]]

  • 參數

    以下是調用函數時可使用的正式參數類型:

  • 必備參數

  • 關鍵字參數

  • 默認參數

  • 不定長參數

  • 必備參數

    必備參數須以正確的順序傳入函數。調用時的數量必須和聲明時的一樣。

    調用printme()函數,你必須傳入一個參數,不然會出現語法錯誤:

    實例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-
    #可寫函數說明def printme( str ): "列印任何傳入的字元串"
    print str
    return
    #調用printme函數printme()

    以上實例輸出結果:

  • Traceback (most recent call last):

  • File "test.py", line 11, in <mole>

  • printme()TypeError: printme() takes exactly 1 argument (0 given)

  • 關鍵字參數

    關鍵字參數和函數調用關系緊密,函數調用使用關鍵字參數來確定傳入的參數值。

    使用關鍵字參數允許函數調用時參數的順序與聲明時不一致,因為 Python 解釋器能夠用參數名匹配參數值。

    以下實例在函數 printme() 調用時使用參數名:

    實例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-
    #可寫函數說明def printme( str ): "列印任何傳入的字元串"
    print str
    return
    #調用printme函數printme( str = "My string")

    以上實例輸出結果:

  • My string

  • 下例能將關鍵字參數順序不重要展示得更清楚:

    實例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-
    #可寫函數說明def printinfo( name, age ): "列印任何傳入的字元串"
    print "Name: ", name
    print "Age ", age
    return
    #調用printinfo函數printinfo( age=50, name="miki" )

    以上實例輸出結果:

  • Name: mikiAge 50

  • 默認參數

    調用函數時,默認參數的值如果沒有傳入,則被認為是默認值。下例會列印默認的age,如果age沒有被傳入:

    實例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-
    #可寫函數說明def printinfo( name, age = 35 ): "列印任何傳入的字元串"
    print "Name: ", name
    print "Age ", age
    return
    #調用printinfo函數printinfo( age=50, name="miki" )printinfo( name="miki" )

    以上實例輸出結果:

  • Name: mikiAge 50Name: mikiAge 35

  • 不定長參數

    你可能需要一個函數能處理比當初聲明時更多的參數。這些參數叫做不定長參數,和上述2種參數不同,聲明時不會命名。基本語法如下:

    def functionname([formal_args,] *var_args_tuple ): "函數_文檔字元串"
    function_suite
    return [expression]

    加了星號(*)的變數名會存放所有未命名的變數參數。不定長參數實例如下:

    實例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-
    # 可寫函數說明def printinfo( arg1, *vartuple ): "列印任何傳入的參數"
    print "輸出: "
    print arg1
    for var in vartuple: print var
    return
    # 調用printinfo 函數printinfo( 10 )printinfo( 70, 60, 50 )

    以上實例輸出結果:

  • 輸出:10輸出:706050

  • 匿名函數

    python 使用 lambda 來創建匿名函數。

  • lambda只是一個表達式,函數體比def簡單很多。

  • lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。

  • lambda函數擁有自己的命名空間,且不能訪問自有參數列表之外或全局命名空間里的參數。

  • 雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內聯函數,後者的目的是調用小函數時不佔用棧內存從而增加運行效率。

  • 語法

    lambda函數的語法只包含一個語句,如下:

  • lambda [arg1 [,arg2,.....argn]]:expression

  • 如下實例:

    實例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-
    # 可寫函數說明sum = lambda arg1, arg2: arg1 + arg2
    # 調用sum函數print "相加後的值為 : ", sum( 10, 20 )print "相加後的值為 : ", sum( 20, 20 )

    以上實例輸出結果:

  • 相加後的值為 : 30相加後的值為 : 40

  • return 語句

    return語句[表達式]退出函數,選擇性地向調用方返回一個表達式。不帶參數值的return語句返回None。之前的例子都沒有示範如何返回數值,下例便告訴你怎麼做:

    實例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-
    # 可寫函數說明def sum( arg1, arg2 ): # 返回2個參數的和."
    total = arg1 + arg2
    print "函數內 : ", total
    return total
    # 調用sum函數total = sum( 10, 20 )

    以上實例輸出結果:

  • 函數內 : 30

  • 變數作用域

    一個程序的所有的變數並不是在哪個位置都可以訪問的。訪問許可權決定於這個變數是在哪裡賦值的。

  • 變數的作用域決定了在哪一部分程序你可以訪問哪個特定的變數名稱。兩種最基本的變數作用域如下:
  • 全局變數

  • 局部變數

  • 全局變數和局部變數

    定義在函數內部的變數擁有一個局部作用域,定義在函數外的擁有全局作用域。

    局部變數只能在其被聲明的函數內部訪問,而全局變數可以在整個程序范圍內訪問。調用函數時,所有在函數內聲明的變數名稱都將被加入到作用域中。如下實例:

    實例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-
    total = 0 # 這是一個全局變數# 可寫函數說明def sum( arg1, arg2 ): #返回2個參數的和."
    total = arg1 + arg2 # total在這里是局部變數.
    print "函數內是局部變數 : ", total
    return total
    #調用sum函數sum( 10, 20 )print "函數外是全局變數 : ", total

    以上實例輸出結果:

  • 函數內是局部變數 : 30函數外是全局變數 : 0

⑷ python編程統計列表中各數據的方差和標准差請編寫主函數和計算方差的函數var。(不能引用庫里)

def fangcha(): a=float(raw_input("請輸入a:")) b=float(raw_input("請輸入b:")) c=float(raw_input("請輸入C:")) d=(a+b+c)/3.0 e=((a-d)**2+(b-d)**2+(c-d)**2)/3.0 print "平均數是:%f方差是:%f" %(d,e) fangcha() Python2.7可用

⑸ python中的intvar()的含義與stringvar()的區別

一、作用不同

1、intvar():屬於Tkinter下的對象。用於處理整型。

2、stringvar():StringVar並不是python內建的對象,而是屬於Tkinter下的對象。

二、值變化不同

1、intvar():不需要跟蹤變數的值的變化。

2、stringvar():需要跟蹤變數的值的變化,以保證值的變更隨時可以顯示在界面上。


三、特點不同

1、intvar():intVar類型調用get函數時,先將變數轉變成了tuples類型的數據。

2、stringvar():StringVar類型調用set函數時,先將變數轉變成了tuples類型的數據。實際上調用set函數之前就直接使用Tuples類型的數據.


⑹ 請問怎樣用Python計算配對交易組合的VaR

*var在定義函數參數時,是可變個數參數的意思。在調用時,是要unpack tuple的意思,
t = (1,2,3)
直接帶入是一個參數,但是*t後就是3個參數了。所以你的2個都不對。
寫的時候
def restoreDataType(old_type, var):
調用時:
print restoreDataType(old_type='>f', var=(16435, 13107))

⑺ python 算var用什麼函數

*var在定義函數參數時,是可變個數參數的意思。在調用時,是要unpack tuple的意思,
t = (1,2,3)
直接帶入是一個參數,但是*t後就是3個參數了。所以你的2個都不對。
寫的時候
def restoreDataType(old_type, var):

調用時:
print restoreDataType(old_type='>f', var=(16435, 13107))

熱點內容
順序表是線性表的什麼存儲結構 發布:2024-04-23 16:32:28 瀏覽:454
腳本刷皮膚 發布:2024-04-23 16:12:25 瀏覽:858
共享一個ip伺服器 發布:2024-04-23 15:46:26 瀏覽:142
如何打開好萊客密碼鎖 發布:2024-04-23 15:46:22 瀏覽:162
我的世界演戲伺服器房間號 發布:2024-04-23 15:44:11 瀏覽:84
雲伺服器的帶寬有用嗎 發布:2024-04-23 15:39:10 瀏覽:124
老款安卓平板玩吃雞反應慢怎麼辦 發布:2024-04-23 15:20:17 瀏覽:571
小程序全套源碼 發布:2024-04-23 15:07:58 瀏覽:716
伺服器業務ip地址怎麼配 發布:2024-04-23 15:03:05 瀏覽:990
銅排折彎最簡單的演算法 發布:2024-04-23 14:48:53 瀏覽:23