'''1、輸入乙個正整數,輸出該正整數的階乘的值'''
#思路:用遞迴實現,也可以用reduce或者遍歷
def prime(n):
if n<=1:
return 1
else:
return n*prime(n-1)
input_num = int(input('輸入乙個正整數:'))
print("%d的階乘為:%d"%(input_num,prime(input_num)))
'''2、生成字串」acegi」'''
s = ''
for i in range(0,9,2):
s +=chr(ord('a')+i)
print(s)
'''3、生成列表[「a」,」c」,」e」,」g」,」i」]'''
print([chr(ord('a')+i) for i in range(0,9,2)])
'''4、生成字典'''
d =
print(d)
'''5、將以上字典的key和value拼接成字串,不能使用字串連線符(+)'''
new_list =
for k,v in d.items():
print(''.join(new_list))
'''6、寫乙個函式,引數傳入字串」abc」,函式返回字串「xyz」'''
def change_str(s):
if not isinstance(s,str):
return none
new_str=''
for word in s:
new_str += chr(ord(word)+23)
return new_str
print(change_str('abc'))
'''7、寫乙個函式,如果傳入的是list,且list長度大於3,只保留前3個元素並返回;'''
def get_list_frist_3_numbers(s):
if not isinstance(s,list):
return none
if len(s)<3:
return none
return s[:3]
print(get_list_frist_3_numbers('abc'))
print(get_list_frist_3_numbers([1,12]))
print(get_list_frist_3_numbers([1,2,3,4]))
'''8、使用者輸入」abc123」,程式返回」a321cb」'''
input_data=input('input a sentences:')
print( input_data[0]+input_data[-1:0:-1])
'''9、將[「wulaoshi」,」is」,」a」,」boy」]替換成[「wulaoshi」,」is」,」good」,」big」」boy」] '''
sentences = ["wulaoshi","is","a","boy"]
for i in range(len(sentences)):
if sentences[i] == 'a':
sentences[i:i+1]=['good','big']
break
print(sentences)
'''10、統計「you are ,a beautifull girl,666! 」中數字和字母的總個數;'''
s = "you are ,a beautifull girl,666! "
#方法一:遍歷
result = 0
for i in s:
if i.isalnum():
result +=1
print(result)
#方法二:filter+lambda
print(len(list(filter(lambda x:x.isalnum(),s))))
python3每日十題(六)
1 ksljj kkk122 sfsf kjk 12abd kk xyz 以字串中所有相鄰的字母整體為列表元素,生成乙個列表 s ksljj kkk122 sfsf kjk 12abd kk xyz 方法一 正則 import re print re.findall r a za z s 方法二 將...
LeetCode每日十題 陣列(四)
這次 只通過了一半多的用例,不是因為有bug,而是思路錯了,這裡是不能用二分法的,因為整個序列不滿足單調性。雖然在初始排序的時候控制了負數和正數的區別,但在while迴圈裡還是用了二分法。當然可以不用二分法,既然都寫到這了,直接比較就行,可是這樣複雜度就高了,也意味著這種方法行不通。看了解答,用的是...
leetCode每日十題 棧(難度 困難)
因為寫的十棧裡面的題目,所以剛開始在想用棧來寫的時候,是真的一點思路沒有。琢磨著各種可以取到高分的情況,發現那是一環扣著一環,每次決定都受之後分數序列的影響,既然如此,便想到用遞迴來寫 呸,看題解的 說實話,遞迴這東西是真的巧妙啊,你不用去討論如何才能取最大,你只需要告訴計算機,我就是要去最大,然後...