python學習-02

#1. 迭代器 iter()
    限制:不能向後移動
         不能回到開始
         無法複製一個迭代器
    要重新進行迭代只能再重新生成一個新的迭代器對象

   python中for循環就是用的迭代器,因此 for 能對序列進行迭代

    使用:
   a = [1,2,3,4]
   a = iter(a)
   a.next()   

#2. 字典 dict{}
    a = {}   建立一個空的字典    
    字典裏元素的格式: {'key1':'value1',"key2":"value2",......}
       key值不能重複,如果有重複的key值,以從左到右最後出現的那個爲準
       key值不能更改,但是value值可以更改
       一個key值對應一個 value 值 如果有重複的,後面的會把前面的覆蓋掉

  adict.keys() 返回一個包含字典所有KEY的列表;
  adict.values() 返回一個包含字典所有value的列表;
  adict.items() 返回一個包含所有(鍵,值)元祖的列表;
  adict.clear() 刪除字典中的所有項或元素;
  adict.copy() 返回一個字典淺拷貝的副本;
  adict.fromkeys(seq, val=None)  創建並返回一個新字典,以seq中的元素做該字典的鍵,
                                 val做該字典中所有鍵對應的初始值(默認爲None);
  adict.get(key, default = None) 返回字典中key對應的值,若key不存在字典中,
                                                                            則返回default的值(default默認爲None);
  adict.has_key(key) 如果key在字典中,返回True,否則返回False。 現在用 in 、 not in;
  adict.iteritems()、adict.iterkeys()、adict.itervalues() 與它們對應的非迭代方法一樣,
                                                                                                                                 不同的是它們返回一個迭代子,而不是一個列表;
  adict.pop(key[,default]) 和get方法相似。如果字典中存在key,刪除並返回key對應的vuale;
                                                            如果key不存在,且沒有給出default的值,則引發keyerror異常;
  adict.setdefault(key, default=None) 和set()方法相似,但如果字典中不存在Key鍵,
                                                                                     由 adict[key] = default 爲它賦值;
  adict.update(bdict) 將字典bdict的鍵值對添加到字典adict中

 用字典實現case語句功能,進行四則運算
 --------------------------------------------------------
  #!/usr/bin/python
  #coding=utf-8

  from __future__ import division
  a = input("請輸入一個數字:")
  b = input("請輸入一個數字:")
  c = raw_input("請選擇要進行的運算(+ - * /):")

  d = {'+':a+b,'-':a-b,'*':a*b,'/':a/b}

  if c in d.keys():
          print "%s%s%s =" %(a,c,b),d[c]
  else :
          print "沒有這種操作"  
 ---------------------------------------------------------


#3.

    continue    ##跳出本次循環
    break       ##跳出當前循環
    pass        ##什麼都不做



#4. 函數 def


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

    函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號()。
    任何傳入參數和自變量必須放在圓括號中間。圓括號之間可以用於定義參數。
    函數的第一行語句可以選擇性地使用文檔字符串—用於存放函數說明。
    函數內容以冒號起始,並且縮進。
  return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回 None

 示例:
 def fun():
     print 1+1

  函數的調用直接使用函數名就行

   函數的參數:
            1>必備參數
            2>關鍵字參數
        def fun(x):
            print x
        標準調用: fun(3)   fun('haha')
        關鍵字調用:fun(x='hello')

            3>默認參數
        def fun(x,y=1):
            print x+y
        調用:  fun(1)   fun(1,2)
        有缺省值的參數要寫在沒有缺省值參數的後面

            4>不定長參數
                傳入的參數個數不一定,在參數前面加一個 * 號,在函數內部,參數 a 接收到的是一個 元組(tuple),
        因此調用該函數時,可以傳入任意個參數
         def fun(*a):
                   s=0
                   for n in a:
                           s = s + n
                   print s
          
           調用 :  fun(1,2,3,4)
 
    函數的返回值:
        函數可以返回一個值:
                return f
        也可以返回多個值:
                return a,b,c
            python函數返回多個值時,其實是返回一個元組,在語法上,返回一個元組可以省略括號


#5.單引號,雙引號,三引號

在python中  單引號('...'),雙引號("..."),三引號("""...""")都能用來表示字符串,他們的區別在下面:
1.只有三引號包含的字符串可以由多行組成,而不用加換行符,表示大段的敘述性字符串
2.三引號,雙引號可以包含單引號,三引號可以包含雙引號,換而言之,在三引號內,雙引號與單引號都可以正常輸出,而不用轉義,
   在雙引號內,單引號也可以正常輸出.不用轉義

例子:
要輸出 it`s yours  時  可以用雙引號直接輸出,而用單引號,就必須要對 ` 進行轉義
要輸出  I love "hello world" 時  就可以用三引號,而用單引號或者雙引號,就必須對 "" 進行轉義



腳本:

  ------------------------------------
  #!/usr/bin/env python
  #coding=utf-8

  a = []
  count = input("您要輸入幾組姓名:")

  print "請依次輸入%d組姓名,按如下格式:\n\t姓,名\n" %(count)
  i = 0
  j = 0
  while 1:
          if i == count :
                  break
          else :
                  name = raw_input("請輸入姓名:")
          if ","  not in name or  "," == name[0] or "," == name[-1] or name.count(',') != 1:
                  print "您的輸入有誤,請按照正確格式重新輸入。"
                  j += 1
          else :
                  i += 1
                  a.append(name)
                  print "輸入成功!"
 
  a.sort()
  print "\n您輸錯了%d次\n" %(j)
  print  "最終輸入結果爲:"
  for i in range(0,count):
          print a[i]
  ----------------------------------------

發佈了54 篇原創文章 · 獲贊 32 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章