限制:不能向後移動
不能回到開始
無法複製一個迭代器
要重新進行迭代只能再重新生成一個新的迭代器對象
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]
----------------------------------------