我改了一下
創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、老邊網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、商城網(wǎng)站定制開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為老邊等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
dictionary={}????#?創(chuàng)建一個空字典
#?定義一個函數(shù),功能:向字典中增加記錄
#?dictionary?是字典,en?是英文單詞,ch?是對應(yīng)中文單詞
def?add_dict(dictionary,?en,?ch):
dictionary[en]?=?ch??????????????#?增添or?更新一條記錄
dictionary[ch]?=?en
print("添加成功")??
#?定義一個函數(shù),功能:翻譯
#?dictionary?是字典,string?是要查找的單詞(中文or?英文)
def?find(dictionary,?string):
if?string?not?in?dictionary:?????#?如果string?不在dict?內(nèi),打印提示信????????????????????????????????????????息
print("該單詞不在dict?內(nèi)")
else:????????????????????????????#?否則,給出對應(yīng)中文釋義
print("該單詞",?string,?"的意思是:",?dictionary[string])
#?向字典內(nèi)增添幾個記錄,測試增加記錄的功能,也可嘗試用while?循環(huán)持續(xù)接收用戶添加詞條
for?i?in?range(3):
en?=?input("增添的英文單詞:?")??????#?接受輸入
ch?=?input("對應(yīng)的中文單詞:?")
add_dict(dictionary,?en,?ch)??????#?調(diào)用add_dict?函數(shù),往字典中添加內(nèi)?????????????????????????????????????????容
#?接收用戶輸入,調(diào)用find?函數(shù)實現(xiàn)翻譯
string?=?input("請輸入要查詢的單詞:?")
find(dictionary,?string)
運行效果:
增添的英文單詞:?apple
對應(yīng)的中文單詞:?蘋果
添加成功
增添的英文單詞:?banana
對應(yīng)的中文單詞:?香蕉
添加成功
增添的英文單詞:?peach
對應(yīng)的中文單詞:?桃子
添加成功
請輸入要查詢的單詞:?peach
該單詞?peach?的意思是:?桃子
錯誤應(yīng)該是你定義函數(shù)時的變量名(dictionary)和函數(shù)內(nèi)部的變量名(dict)不一致導(dǎo)致的,還有你在測試add_dict的時候把add_dict的返回值None賦給了一個名叫dictionary的變量,這是完全沒必要的,并且導(dǎo)致了和現(xiàn)有的dictionary的沖突,使得第二次循環(huán)添加單詞時出現(xiàn)錯誤。
意思:返回字符串、列表、字典、元組等長度。
語法:len(str)。
參數(shù):str:要計算的字符串、列表、字典、元組等。
返回值:字符串、列表、字典、元組等元素的長度。
電腦:華為MateBook
系統(tǒng):Windows10
軟件:python3.6(Anaconda)
1、len函數(shù)的作用,是Return the number of items in a container.,翻譯過來,就是返回容器中項目的數(shù)目。
2、len的變量必須是容器,單獨的數(shù)字行不通:
a=2
print(len(a))
3、容器可以是列表:
a=
print(len(a))
4、容器可以是嵌套列表:
a=,1,2,3,]
print(len(a))
5、容器可以是字符串:
6、字符串的長度與字符有關(guān):
a='abcdefg369'
print(len(a))
7、反斜杠組合而成的轉(zhuǎn)移符,只是一個字符:
a='\n\t'
print(len(a))
這里要特別注意,\n是一個字符。
8個超好用內(nèi)置函數(shù)set(),eval(),sorted(),reversed(),map(),reduce(),filter(),enumerate()
python中有許多內(nèi)置函數(shù),不像print那么廣為人知,但它們卻異常的強大,用好了可以大大提高代碼效率。
這次來梳理下8個好用的python內(nèi)置函數(shù)
1、set()
當(dāng)需要對一個列表進行去重操作的時候,set()函數(shù)就派上用場了。
用于創(chuàng)建一個集合,集合里的元素是無序且不重復(fù)的。集合對象創(chuàng)建后,還能使用并集、交集、差集功能。
2、eval()之前有人問如何用python寫一個四則運算器,輸入字符串公式,直接產(chǎn)生結(jié)果。用eval()來做就很簡單:eval(str_expression)作用是將字符串轉(zhuǎn)換成表達式,并且執(zhí)行。
3、sorted()在處理數(shù)據(jù)過程中,我們經(jīng)常會用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。這時候就需要用到sorted() ,它可以對任何可迭代對象進行排序,并返回列表。對列表升序操作:
對元組倒序操作:
使用參數(shù):key,根據(jù)自定義規(guī)則,按字符串長度來排序:
根據(jù)自定義規(guī)則,對元組構(gòu)成的列表進行排序:
4、reversed()如果需要對序列的元素進行反轉(zhuǎn)操作,reversed()函數(shù)能幫到你。reversed()接受一個序列,將序列里的元素反轉(zhuǎn),并最終返回迭代器。
5、map()做文本處理的時候,假如要對序列里的每個單詞進行大寫轉(zhuǎn)化操作。這個時候就可以使用map()函數(shù)。
map()會根據(jù)提供的函數(shù),對指定的序列做映射,最終返回迭代器。也就是說map()函數(shù)會把序列里的每一個元素用指定的方法加工一遍,最終返回給你加工好的序列。舉個例子,對列表里的每個數(shù)字作平方處理:
6、reduce()前面說到對列表里的每個數(shù)字作平方處理,用map()函數(shù)。那我想將列表里的每個元素相乘,該怎么做呢?這時候用到reduce()函數(shù)。
reduce()會對參數(shù)序列中元素進行累積。第一、第二個元素先進行函數(shù)操作,生成的結(jié)果再和第三個元素進行函數(shù)操作,以此類推,最終生成所有元素累積運算的結(jié)果。再舉個例子,將字母連接成字符串。
你可能已經(jīng)注意到,reduce()函數(shù)在python3里已經(jīng)不再是內(nèi)置函數(shù),而是遷移到了functools模塊中。這里把reduce()函數(shù)拎出來講,是因為它太重要了。
7、filter()一些數(shù)字組成的列表,要把其中偶數(shù)去掉,該怎么做呢?
filter()函數(shù)輕松完成了任務(wù),它用于過濾序列,過濾掉不符合條件的元素,返回一個迭代器對象。filter()函數(shù)和map()、reduce()函數(shù)類似,都是將序列里的每個元素映射到函數(shù),最終返回結(jié)果。我們再試試,如何從許多單詞里挑出包含字母w的單詞。
8、enumerate()這樣一個場景,同時打印出序列里每一個元素和它對應(yīng)的順序號,我們用enumerate()函數(shù)做做看。
enumerate翻譯過來是枚舉、列舉的意思,所以說enumerate()函數(shù)用于對序列里的元素進行順序標注,返回(元素、索引)組成的迭代器。再舉個例子說明,對字符串進行標注,返回每個字母和其索引。