Python之三元運算、集合、函數

來源:互聯網
上載者:User

標籤:echo   個數   全域變數   .com   列表   money   mod   格式   存在   

一、三元運算子三元運算子就是在賦值變數的時候,可以直接加判斷,然後賦值格式:[on_true] if [expression] else [on_false]res = 值1 if 條件 else 值21.舉例說明:a =1b = 2c= a if a>1 else b #如果a大於1的話,c=a,否則c=b 如果不用三元運算子,就用if-else條件判斷,如下:a = 1b = 2if a >1:c = aelse:c = b 2.三元運算子也可以用在列表和字典中例:1-10的數字,列印出其中的偶數三元運算:ss = [i for i in range(1,11) if i%2==0 ] #迴圈1-11間的值(不包括11),如果值能被2整除(即取偶數),就寫到ss這個list中print(ss) #最終列印結果 [2, 4, 6, 8, 10] if-else條件判斷s = []for i in range(1,11):if i %2==0:s.append(i)print(s)  二、集合集合:set持有一系列元素,和list很像,也是一種資料類型,但是set的元素沒有重複,而且是無序的特點:set不包含重複的元素(天生去重)且無序 2.集合的定義a.定義一個列表,通過強制轉換來定義集合nums = [1,1,2,3,5,6,77,8]num_set = set(nums)b.直接定義num_set1={1,2,3,3,4}集合不能通過下標來訪問元素 3.迴圈遍曆sets = set([‘Adam‘, ‘Lisa‘, ‘Bart‘])for name in s:print (name)結果:LisaBartAdam 4.添加元素s = {1,2,3}s.add(4)print(s)#結果 {1, 2, 3, 4} s.update([333,444,333])s.update({56,78,999}) 5.刪除元素s.remove(333) #刪除元素,如果元素不存在就會報錯s.pop() #刪除一個隨機的元素,並返回刪除的元素s.discare(111) #如果刪除的元素存在,刪除,不存在不做處理  三、函數1.什麼是函數?定義: 函數是指將一組語句的集合通過一個名字(函數名)封裝起來,要想執行這個函數,只需調用其函數名即可。 2.使用函數的好處a.簡化代碼b.提高代碼的複用性c.代碼可擴充 3.python中函數定義def functionname( parameters ): function_suite return [expression]說明:def為關鍵字,後面為函數名,函數名不能重複,括弧中內容為參數,根據實際情況,定義你需要的參數個數function_suite 為 函數體return 為傳回值 如果不寫return這一行的話,預設返回為None 4.函數調用def hello():print(‘hello!‘)hello() #函數調用,函數調用的方式為,函數名後跟括弧 5.形參和實參函數在調用的時候,可以傳入參數,有形參和實參形參:形參變數只有在被調用時才分配記憶體單元,在調用結束時,即刻釋放所分配的記憶體單元。因此,形參只在函數內部有效。 實參:實參可以是常量、變數、運算式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須有確定的值,以便把這些值傳送給形參。函數調用結束返回主調用函數後則不能再使用該形參變數。 6.函數的參數類型函數的四種參數類型:位置參數、預設參數、不定長參數、關鍵字參數位置參數:位置參數,就是按照參數的位置來進行傳參例:def reg(name,age):print(‘hello %s,age is %s‘ %(name,age))#name,age是必填參數,位置參數reg(‘hhf‘,27)說明:有幾個位置參數在調用的時候就要傳幾個,否則就會報錯如果有多個位置參數,但卻記不住參數的位置,可以使用位置參數的名字來指定調用具體調用為reg(name=‘huihui‘,age=25),這種調用方式叫做關鍵字傳參 預設參數:預設參數就是在定義形參的時候,給函數預設賦一個值預設參數不是必填的,如果給預設參數傳值的話,它就會使用你傳入的值。如果使用預設值參數的話,必須放在位置參數後面定義 例:def reg(name,age,sex=‘男‘):print(‘hello %s,age is %s‘ %(name,age))#name,age是必填參數,位置參數 #sex是預設值參數,不是必填參數reg(‘hhf‘,27)#不傳sex,sex使用預設值參數,sex=‘男‘reg(‘huihui‘,28,‘女‘) #給sex傳值,sex=‘女‘ 非固定參數:上面的兩種位置參數和預設參數都是參數個數是固定的如果有一個函數,參數不是固定的,也不知道函數會擴充成啥樣,可能參數越來越多,這個時候如果使用固定的參數,後面程式就不好擴充,這時候就可以用非固定參數了非固定參數有兩種,一種是可變參數,一種是關鍵字參數可變參數:可變參數用*來接收,後面想傳多少個參數就傳多少個,如果位置參數、預設值參數、可變參數一起使用的的話,可變參數必須在位置參數和預設值參數後面。可變參數也是非必傳的。例:def post(*args):print(args)post(‘001‘,‘denglu‘,‘http://www.baidu.com‘,post,a=1)post()說明:可變參數,也叫參數組,也不是必填的,它接收到的是一個元組它把調用函數時傳進去的每一個參數到一個元組裡 關鍵字參數:關鍵字參數使用**來接收,後面的參數也是不固定的,想寫多少個寫多少個,當然也可以和上面的幾種一起來使用,如果要一起使用的話,關鍵字參數必須在最後面。使用關鍵字參數的話,調用的時候必須使用關鍵字傳參,關鍵字參數也是非必傳的例:def kw(**kwargs):print(kwargs)kw()kw(age=18,name=‘aaa‘)d={‘age‘:18,‘name‘:‘aaa‘}kw(**d)說明:關鍵字參數,接收的是一個字典,調用得用xx=11,也不是必填的傳入字典調用的時候就得寫**{‘age‘:18,‘name‘:‘aaa‘} 其它例子:def other2(name,country=‘china‘,*args,**kwargs):print(name)print(country)print(args)print(kwargs)other2(‘hhf‘)other2(‘niuhui‘,‘beijing‘,‘python‘,‘changping‘,user=‘niu‘)說明:如果必填參數,預設值參數,可變參數和關鍵字參數要一起使用的話,必須參照必填參數、預設值參數、可變參數和關鍵字參數的順序接收,否則會報錯 def write(filename,model,ending,user,os,money,other):print(filename)print(model)print(ending)print(user)print(os)print(money)print(other) write(os=‘Windows‘,user=‘wubing‘,model=‘w‘,filename=‘a.tx‘,ending=‘utf8‘,money=9999,other=‘xxx‘)-#write(os=‘windows‘,‘a.txt‘) #位置參數調用參數必須在關鍵字調用前,否則報錯write(‘a.txt‘,‘w‘,‘gbk2312‘,‘hhf‘,os=‘windwos‘,money=9999,other=‘xxx‘) 7.函數傳回值def plus(a,b):c=a+breturn c說明:a函數碰到return,立即結束這個函數b調用完函數之後,返回計算結果c函數可以沒有傳回值,如果沒有傳回值的話,預設返回None,如果這個函數的處理結果我們需要在別的地方用到,就得給函數一個傳回值如果函數return多個值的話,那麼它就會把多個值放到一個元組裡面去 score1 = 50score2 = 90def echo():return score1,score2 8.局部變數和全域變數局部變數:在局部內生效,出了這個變數的範圍,這個變數就失效了全域變數:在整個程式裡面都生效的,在程式最前面定義的都是全域變數-# score3 = [1,2,3,4,5]-# score3 = {"id":1}score3 = 100def my_open():fw = open(‘a.txt‘,‘a+‘)fw.seek(0)print(‘score3‘,score3)d={‘id‘:2}d[‘price‘]=99說明:a.在函數裡面定義變數叫局部變數,它只能在函數裡面用,出了該函數外,就不能使用了b.在函數外面定義的變數,是全域變數,在函數內也可以使用c 如果想在函數裡面修改全域變數的值,那麼要先用global關鍵字聲明要修改全域變數是int、string的話,必須得寫global如果是字典和list的話,要修改的話,不能加global

Python之三元運算、集合、函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.