學習python,每日練習20200820

2021-10-23 13:33:30 字數 2582 閱讀 3131

'''

今天的題目比較有意思。

會給你乙個列表,有四個數,[2,3,1,6]

你需要做的是,把這四個數字組成乙個時間格式,並使得這個時間是所有組合中最晚的組合。

例如[2,3,1,6]可以組成,13:26,16:23等等,但是最晚的時間是23:16。所以請返回23:16這個結果。

如果四個數無法組成時間格式,返回""。

答案一樣會延遲放出。你猜我到底是會還是不會呢?

解題思路

1)四個數字中必須有兩個資料小於等於2,才能組成時間格式(小時是有0,1,2這三個數字中任一兩個組成)

2)[2,3,1,6]*[2,3,1,6]的permutations 排列

3)在組成的排列中找最大的時間為小時的組合且剩下的兩個數字必須有乙個小於6(如果剩下的兩個數字均大於6 ,則無法組合為分;例如2,1,6,6 不能為21:66

必須為16:26)

'''import itertools

def late_clock(list):

compose = itertools.permutations(list, 2)

max_local = 0

max_global = 0

list_end1 =

list_end2 =

for each in compose:

list_each = list.copy()

list_each.remove(each[0])

list_each.remove(each[1])

sum1 = each[0] * 10 + each[1]

if sum1 < 24 and min(list_each) < 6:

if max_local <= sum1:

max_local = sum1

list_end1 = each[0:2]

list_end2 = list_each[0:2]

if max_global < max_local:

max_global = max_local

list_end1 = each[0:2]

list_end2 = list_each[0:2]

if(len(list_end1)!=0):

hour = list_end1[0] * 10 + list_end1[1]

list_end2.sort()

minute = list_end2[1] * 10 + list_end2[0]

if minute > 60:

minute = list_end2[0] * 10 + list_end2[1]

result = str(hour) + ':' + str(minute)

return result

else:

return ''

def assert_equals(funs,target,*args):

if(funs == target):

print("succ")

else:

print("fail ! not eaqual".format(funs,target))

assert_equals(late_clock([9, 1, 2, 5]), '21:59')

assert_equals(late_clock([0, 2, 2, 2]), '22:20')

assert_equals(late_clock([9, 0, 1, 1]), '19:10')

assert_equals(late_clock([2, 3, 2, 4]), '23:42')

assert_equals(late_clock([1, 2, 8, 9]), '19:28')

assert_equals(late_clock([4, 7, 8, 9]), '')

'''

這題算明天的。星期天來點簡單的。

春天到了,樹上的小鳥總是叫個不停。

男生叫起來'ha',女生叫起來'ha',男生一句女生一句但是一句隨便叫幾聲。

好了,現在請你根據叫聲,算出有幾隻小鳥。

給出乙個函式:def kooka_counter(laughing),返回小鳥的數量。

例如:hahahahahahaha 分段為: 男 hahaha 女 haha 男 haha,所以這是3只。返回是3。

''''''

解題思路:

1、定義乙個變數temp存在每次更新的叫聲例如第一次為ha,如果發現變化了那麼temp= ha

2、定義乙個變數count,每次temp變數就+1

'''def kooka_counter(laughing):

temp = ''

count = 0

for i in range(0,len(laughing),2):

if temp != laughing[i:i+2]:

temp = laughing[i:i+2]

count += 1

return count

print(kooka_counter("hahahahahahahahaha"))

學習python,每日練習0530

將乙個正整數分解質因數。例如 輸入90,列印出90 2 3 3 5 定義乙個方法判斷這個數是否是素數 def isprime num flag 0 if num 2 return true else for i in range 2 num 2 1 if num i 0 flag 1 break i...

每日python練習

python 計算列表元素之積 def multiplylist mylist result 1 for x in mylist result result x return result list1 1,2,3 list2 4,5,6 print multiplylist list1 print ...

每日python練習1

題目 1.輸入乙個包含數字,小寫字母,大寫字母的字串 2.輸入乙個引數,當引數為 1 時,將字串中小寫字母按公升序排列,當引數為 2 時,將字串中大寫字母按公升序排列,當引數為 3 時,將字串中數字按公升序排列。例如 字串 41aascd2b0vdddc 當引數為 3 時,輸出 41aabcd2d0...