日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python基础小白题3

發布時間:2023/12/13 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python基础小白题3 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目021:猴子吃桃問題

猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個

第二天早上又將剩下的桃子吃掉一半,又多吃了一個。

以后每天早上都吃了前一天剩下的一半零一個。

到第10天早上想再吃時,見只剩下一個桃子了。

求第一天共摘了多少。

'''

def tm021():

? ? '''

第十天num=1個,第九天必然是4個:4/2-1=1,也就是(num+1)*2=4。

? ? 做這種題,先用算數式列出來,然后用代碼描述就行了。

? ? '''

? ? num = 1

? ? for i in range(10-1):

? ? ? ? num = (num+1)*2

? ? print(num)

?

?

'''

題目022:兩個乒乓球隊進行比賽,各出三人。

甲隊為a,b,c三人,乙隊為x,y,z三人。

已抽簽決定比賽名單。有人向隊員打聽比賽的名單。

a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。

'''

?

def tm022():

? ? '''

? ? 【個人備注】:關鍵是將抽象化,將問題抽象成代碼方式。

? ? 我的解題思路,是用排列組合函數,列出方案,然后排除。

? ? 而官方解答里面有一個純粹的for循環加if的求解方式,

? ? 更抽象一些,用了一個很常用固定范式,直接拿來解題了。

? ? 稍微對其抽象的方法注釋了一下。

? ? '''

? ? import itertools

? ? jia = ['a','b','c']

? ? yi = ['x','y','z']

? ? arr = list(itertools.permutations(yi,3)) # 面對甲隊a,b,c時,乙隊所有排列 [('x', 'y', 'z'), ('x', 'z', 'y'), ('y', 'x', 'z'), ('y', 'z', 'x'), ('z', 'x', 'y'), ('z', 'y', 'x')]

? ? arr = [[jia[i]+a[i] for i in range(3)] for a in arr] #將a,b,c寫上,得到所有對陣組合 [['ax', 'by', 'cz'], ['ax', 'bz', 'cy'], ['ay', 'bx', 'cz'], ['ay', 'bz', 'cx'], ['az', 'bx', 'cy'], ['az', 'by', 'cx']]

? ? for i in arr:

? ? ? ? if 'ax' in i:

? ? ? ? ? ? pass

? ? ? ? elif 'cx' in i or 'cz' in i:

? ? ? ? ? ? pass

? ? ? ? else:

? ? ? ? ? ? print(i) # 得到 ['az', 'bx', 'cy']

?

?

def tm022_1():

? ? for a in ['x','y','z']: ? ? ? ? ? ? ? ? ? ? ? ? ? ? # a在x,y,z中挑一個打

? ? ? ? for b in ['x', 'y', 'z']: ? ? ? ? ? ? ? ? ? ? ? # b在x,y,z中挑一個打

? ? ? ? ? ? for c in ['x', 'y', 'z']: ? ? ? ? ? ? ? ? ? # c在x,y,z中挑一個打 三層總計27種打法

? ? ? ? ? ? ? ? if a!=b and b!=c and c!=a: ? ? ? ? ? ? ?# a,b,c不能挑同一個人 縮減到6種打法

? ? ? ? ? ? ? ? ? ? if a!='x' and c!='x' and c!='z': ? ?# 依據題意不能ax,cx,cz 縮減到1種打法

? ? ? ? ? ? ? ? ? ? ? ? print('a'+a,'b'+b,'c'+c)

?

?

'''

題目023:

打印出如下圖案(菱形):

? ?*

? ***

?*****

*******

?*****

? ***

? ?*

'''

def tm023():

? ? '''

? ? 【個人備注】:想到了絕對值,

? ? 然后將[0,1,2,3,4,5,6]變成了[3,2,1,0,1,2,3],也就是每行左邊空格數。

? ? '''

? ? num = 7

? ? for i in range(num):

? ? ? ? blank = abs(num//2-i)

? ? ? ? print(' '*blank+'*'*(num-2*blank)+' '*blank)

?

?

'''

題目024:有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和。

'''

def tm024():

? ? # 沒啥好說的

? ? a,b,num = 2,1,0

? ? for i in range(20):

? ? ? ? num+=a/b

? ? ? ? a=a+b

? ? ? ? b=a-b

? ? print(num)

?

?

'''

題目025:求1+2!+3!+...+20!的和。

'''

def tm025():

? ? '''

? ? 【個人備注】:實現起來很簡單。

? ? 下面官方的代碼,比我寫的更簡潔。

? ? '''

? ? s,t=0,1

? ? for n in range(1,21):

? ? ? ? t*=n

? ? ? ? s+=t

? ? print(s)

?

?

'''

題目026:利用遞歸方法求5!。

'''

def fac(x):

? ? if x>1:

? ? ? ? return x*fac(x-1)

? ? else:

? ? ? ? return x

?

def tm026():

? ? '''

? ? 【個人備注】:按題目要求,公式f(n)=n*f(n-1),遞歸調用求解。

? ? '''

? ? print(fac(5))

?

?

'''

題目027:利用遞歸函數調用方式,將所輸入的5個字符,以相反順序打印出來。

'''

def output(s,l):

? ? if l==0:

? ? ? ?return

? ? print (s[l-1])

? ? output(s,l-1)

?

def tm027():

? ? '''

? ? 【個人備注】:直接從官網復制,不喜歡遞歸。

? ? '''

? ? s = input('Input a string:')

? ? l = len(s)

? ? output(s,l)

?

?

'''

題目028:有5個人坐在一起,

問第五個人多少歲?他說比第4個人大兩歲。

問第4個人,他說比第3個人大兩歲。

問第3個人,又說比第2個人大兩歲。

問第2個人,說比第1個人大兩歲。

最后問第一個人,他說是10歲。

請問第五個人多大?

'''

def age(x):

? ? if x>1:

? ? ? ? return 2+age(x-1)

? ? else:

? ? ? ? return 10

?

def tm028():

? ? '''

? ? 【個人備注】:官網給的還是遞歸方法,因為不用遞歸的話就是個口算題。

? ? '''

? ? print(age(5))

?

?

'''

題目029:給一個不多于5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。

'''

def tm029():

? ? '''

? ? 【個人備注】:用Python,So Easy~

? ? list倒序可以用list.reverse();

? ? 字符串就只能用步長=-1的方式來倒序了。

? ? '''

? ? num = 12345

? ? s = str(num)

? ? print(len(s))

? ? print(s[::-1])

?

?

?

'''

題目030:一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。

'''

def tm030():

? ? '''

? ? 【個人備注】:沒啥可說的。

? ? '''

? ? num = 12321

? ? s = str(num)

? ? for i in range(len(s)//2):

? ? ? ? if s[i]!=s[-i-1]:

? ? ? ? ? ? print(False)

? ? ? ? ? ? break

? ? else:

? ? ? ? print(True)

總結

以上是生活随笔為你收集整理的python基础小白题3的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。