python學(xué)習(xí)筆記-函數(shù)練習(xí)-<8>

<h5>1.給定一個字符串a(chǎn),如a='12345',對a進(jìn)行逆序輸出a</h5>
<pre>

-- coding:utf-8 --

def fun1(a):
return a[::-1]
</br>
def fun11(a):
b = list(a)
b.reverse()
return ''.join(b)
</pre>

<h5>2.給你一字典a伍玖,如a={1:1,2:2,3:3}窍箍,輸出字典a的key丽旅,以','鏈接纺棺,如‘1,2,3'。</h5>
<pre>

-- coding:utf-8 --

def fun2(a):
b = []
for i in a.keys():
if type(i) == str:
b.append(i)
elif type(i) == int or type(i) == tuple:
b.append(str(i))
else:
print u'函數(shù)參數(shù)有誤'
return ','.join(b)
</br>

x = {'a':1,'b':2,'c':3}
y = {1:1,2:2,3:3}
z = {'a':1,2:2,(1,2,3):999}
fun2(x)
'a,c,b'
fun2(y)
'1,2,3'
fun2(z)
'a,2,(1, 2, 3)'
fun2({1:1,2:2,3:3})
'1,2,3'
fun2({[1,2]:1,'b':2})
</pre>

<h5>3.給你一個字符串 a茅撞, 輸出字符奇數(shù)位置的字符串巨朦。如a=‘12345’,則輸出135罪郊。</h5>
<pre>

-- coding:utf-8 --

def fun3(a):
return a[::2]
</br>
def fun33(a):
b = []
for i in range(len(a)):
if i % 2 == 0:
b.append(a[i])
return ''.join(b)
</br>

a='12345'
fun3(a)
'135'
fun33(a)
'135'
</pre>

<h5>4.輸出n以內(nèi)的所有素?cái)?shù)</h5>
素?cái)?shù)之間以一個空格區(qū)分悔橄,質(zhì)數(shù)(prime number)又稱素?cái)?shù),有無限個癣疟。質(zhì)數(shù)定義為在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù)的數(shù)稱為質(zhì)數(shù)
<pre>

-- coding:utf-8 --

def sushu1(n):
a = set()
b = []
for i in range(2,n+1):
for j in range(2,i):
if i % j == 0:
a.add(i)
s = set(range(2,n+1)) - a
s = list(s)
for k in s:
b.append(str(k))
return ' '.join(b)
print sushu1(100)
</br>
def sushu2(n):
a = ''
for i in range(2,n+1):
flag = 1
for j in range(2,i):
if i % j == 0:
flag = 0
if flag == 1:
a += str(i) + ' '
return a
print sushu2(100)
</br>
def sushu3(n):
a = ''
for i in range(2,n):
for j in range(2,i):
if i % j == 0:
break
else:
a += str(i) + ' '
return a
print sushu3(100)
</br>
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
</pre>

<h5>5.給你一個整數(shù)a,數(shù)出a在二進(jìn)制表示下1的個數(shù)扎狱,并輸出</h5>
<pre>

-- coding:utf-8 --

def fun(a):
b = bin(a)
return b.count('1')

fun(8)
1
fun(16)
1
fun(7)
3
fun(255)
8
fun(254)
7
</pre>

<h5>6.給你一個整數(shù)組成的列表L,按照下列條件輸出:</h5>
若L是升序排列的,則輸出"UP";
若L是降序排列的,則輸出"DOWN";
若L無序匠抗,則輸出"WRONG"污抬。
<pre>

-- coding:utf-8 --

def fun6(l):
result = ''
isUp = 1
isDown = 1
isSame = 1
for i in range(0,len(l)-1):
if l[i+1] < l[i]:
isUp = 0
isSame = 0
elif l[i+1] > l[i]:
isDown = 0
isSame = 0
if isSame == 1:
result = 'Same'
elif isUp == 1:
result = 'Up'
elif isDown == 1:
result = 'Down'
else:
result = 'Wrong'
return result
</br>
def fun66(l):
a = l[:]
a.sort()
b = a[:]
b.reverse()
if a == l:
print 'UP'
elif b == l :
print 'DOWN'
else:
print 'WRONG'
</br>
def fun666(l):
if sorted(l) == l:
print 'UP'
elif list(reversed(sorted(l))) == l :
print 'DOWN'
else:
print 'WROGR'
</br>

a = [2,3,3,4,8,9]
b = [8,7,6,6,5,4]
c = [2,6,3,4,5,8]
d = [2,2,2,2,2,2]
fun6(a)
'Up'
fun66(a)
UP
fun666(a)
UP
fun6(b)
'Down'
fun66(b)
DOWN
fun666(b)
DOWN
fun6(c)
'Wrong'
fun66(c)
WRONG
fun666(c)
WROGR
fun6(d)
'Same'
fun66(d)
UP
fun666(d)
UP

</pre>

<h5>7.給你一個整數(shù)列表L,判斷L中是否存在相同的數(shù)字印机,
若存在,輸出YES射赛,否則輸出NO。</h5>
<pre>

-- coding:utf-8 --

def fun7(l):
a = ''
for i in l:
if l.count(i) > 1:
a = 'YES'
else:
a = 'NO'
return a
</br>
def fun77(l):
if len(l) == len(set(l)):
print 'NO'
else:
print 'YES'
</br>

l = [2,3,6,8,5,4]
l1 = [5,3,6,2,1,3]
fun7(l)
'NO'
fun77(l)
NO
fun7(l1)
'YES'
fun77(l1)
YES
</pre>

<h5>8.利用遞歸寫斐波那契數(shù)列的函數(shù)f(n)竣灌。</h5>
注:(斐波那契數(shù)列:1,1,2,3,5,8,13,21,34,55,·······)
解析:
f(1) = 1
f(2) = 1
f(3) = f(1) + f(2)
.....
f(n) = f(n-2) + f(n-1)
<pre>

-- coding:utf-8 --

def fun8(n):
if n == 1 or n == 2:
return 1
else:
return fun9(n-2)+fun9(n-1)

fun8(1)
1
fun8(2)
1
fun8(3)
2
fun8(4)
3
fun8(5)
5
fun8(6)
8
fun8(7)
13
fun8(8)
21
fun8(5)
5
</pre>

<h5>9.編寫一個簽名函數(shù):</h5>
valid(text,chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')
這個函數(shù)應(yīng)當(dāng)返回一個(或者是空的)字符串帐偎,它是只含有char字符的text的副本蛔屹。
例如
valid('Barking!') #Returns 'B'
valid('KL754','0123456789') #Returns '754'
valid('BEAN','abcdefghijklmnopqrstuvwxyz') #Returns ''
該函數(shù)應(yīng)該在6行左右完成,可以使用一個for循環(huán)和一個if語句兔毒。
<pre>

-- coding:utf-8 --

def valid(text,char='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'):
a = []
for i in text:
if i in char:
a.append(i)
return ''.join(a)

valid('Barking!')
'B'
valid('KL754','0123456789')
'754'
valid('BEAN','abcdefghijklmnopqrstuvwxyz')
''
</pre>

<h5>10.編寫一個簽名函數(shù):</h5>
charcount(text)
這個函數(shù)應(yīng)當(dāng)返回一個帶有28鍵的字典育叁,28鍵是'a','b',·······,'z',
外加'whitespace'和'others'。對于text中每一個小寫字符豪嗽,如果字符是字母
,增加其對應(yīng)的鍵的數(shù)量隐锭;如果該字符是空格计贰,增加'whitespace'鍵的數(shù)量;
否則躁倒,增加'other'鍵的數(shù)量。
例如褐桌,如下調(diào)用:
stats= charcount('Exceedingly Edible')
將意味著福贞,stats是一個帶有如下內(nèi)容的字典:
{'whitespase': 1, 'other': 0, 'a': 0,
'c': 1, 'b': 1, 'e': 5, 'd': 2, 'g': 1, 'f': 0, 'i': 2, 'h': 0, 'k': 0, 'j': 0,
'm': 0, 'l': 2, 'o': 0, 'n': 1, 'q': 0, 'p': 0, 's': 0, 'r': 0, 'u': 0, 't': 0,
'w': 0, 'v': 0, 'y': 1, 'x': 1, 'z': 0}
使用一個字典和一個for循環(huán),應(yīng)該可以用12行左右的代碼完成
<pre>

-- coding:utf-8 --

def charcount(text):
a = {'whitespase': 0, 'others': 0,'a': 0,
'c': 0, 'b': 0, 'e': 0, 'd': 0, 'g': 0, 'f': 0, 'i': 0, 'h': 0, 'k': 0, 'j': 0,
'm': 0, 'l': 0, 'o': 0, 'n': 0, 'q': 0, 'p': 0, 's': 0, 'r': 0, 'u': 0, 't': 0,
'w': 0, 'v': 0, 'y': 0, 'x': 0, 'z': 0}
for i in text.lower():
if i in a.keys():
a[i] += 1
elif i == ' ':
a['whitespase'] += 1
else:
a['others'] += 1
return a

stats= charcount('Exceedingly Edible')
stats
{'whitespase': 1, 'others': 0, 'a': 0, 'c': 1, 'b': 1, 'e': 5, 'd': 2, 'g': 1, 'f': 0, 'i': 2, 'h': 0, 'k': 0, 'j': 0, 'm': 0, 'l': 2, 'o': 0, 'n': 1, 'q': 0, 'p': 0, 's': 0, 'r': 0, 'u': 0, 't': 0, 'w': 0, 'v': 0, 'y': 1, 'x': 1, 'z': 0}
</pre>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末完丽,一起剝皮案震驚了整個濱河市拇舀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌聘鳞,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件站楚,死亡現(xiàn)場離奇詭異搏嗡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)采盒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門磅氨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人烦租,你說我怎么就攤上這事∑ず” “怎么了赏迟?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長甩栈。 經(jīng)常有香客問我糕再,道長,這世上最難降的妖魔是什么突想? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任猾担,我火速辦了婚禮,結(jié)果婚禮上绑嘹,老公的妹妹穿的比我還像新娘。我一直安慰自己姨丈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布翁潘。 她就那樣靜靜地躺著歼争,像睡著了一般唐础。 火紅的嫁衣襯著肌膚如雪矾飞。 梳的紋絲不亂的頭發(fā)上呀邢,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天价淌,我揣著相機(jī)與錄音,去河邊找鬼蝉衣。 笑死,一個胖子當(dāng)著我的面吹牛濒翻,可吹牛的內(nèi)容都是我干的啦膜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼雀摘,長吁一口氣:“原來是場噩夢啊……” “哼八拱!你這毒婦竟也來了阵赠?” 一聲冷哼從身側(cè)響起肌稻,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤灯萍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后旦棉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體药薯,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡童本,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年脸候,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泵额。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡携添,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烈掠,到底是詐尸還是另有隱情,我是刑警寧澤瘾蛋,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布矫限,位于F島的核電站,受9級特大地震影響叼风,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜咬扇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望懈贺。 院中可真熱鬧经窖,春花似錦梭灿、人聲如沸画侣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至搬泥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間忿檩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工沙咏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人班套。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓吱韭,卻偏偏與公主長得像窖壕,于是被迫代替她去往敵國和親杉女。 傳聞我的和親對象是個殘疾皇子鸳吸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容