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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

002 exercises

發布時間:2023/12/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 002 exercises 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 求列表全排列

lst?=?[1,2,3] l1?=?[(x,y,z)?for?x?in?lst?for?y?in?lst?for?z?in?lst?if?x?!=?y?if?y?!=?z?if?x?!=?z] print(l1)
  • 給定一個非負整數num,重復的加每一位,直到最后只剩下一位

例如: num = 38,計算過程如下:

3 + 8 =11

1 + 1 = 2

最后輸出結果為2

#遞歸 def?add(num):if?len(str(num))?==?1:return?numret?=?0for?i?in?str(num):ret?+=?int(i)return?retreturn(add(ret)) print(add(8))#累加器 def?add(num):ret?=?0for?i?in?str(num):ret?+=?int(i)return?retdef?cacl(num):ret?=?numwhile?ret?>=?10:ret?=?add(ret)return?ret print(cacl(38))#使用列表解析優化版 def?add(num):return?sum([int(x)?for?x?in?str(num)]) def?cacl(num):ret?=?numwhile?ret?>=?10:ret?=?add(ret)return?ret print(cacl(38))
  • 尋找happy number

happy number值,對一個數字的每一位取平方后相加,對得到的結果反復執行上一步,直到最后只有一位,如果最后結果為1,這個數就為happy number.

例如 19 就是happy number.因為

1^2 + 9^2 = 82

8^2 + 2^2 = 68

6^2 + 8^2 = 100

1^2 + 0^2 + 0^2 = 1

def?add(num):ret?=?0for?i?in?str(num):ret?+=?(int(i)?**?2)return?retdef?happy_number(num):results?=?{num}ret?=?numwhile?ret?>=?10:ret?=?add(ret)if?ret?in?results:return?Falseresults.add(ret)return?ret?==?1for?i?in?range(1,10000):if?happy_number(i):print('{0}?is?happy?number'.format(i)) #使用列表解析優化上版 def?add(num):return?sum([int(x)?**?2?for?i?in?str(num)])def?happy_number(num):results?=?{num}ret?=?numwhile?ret?>=?10:ret?=?add(ret)if?ret?in?results:return?Falseresults.add(ret)return?ret?==?1for?i?in?range(1,10000):if?happy_number(i):print('{0}?is?happy?number'.format(i))
  • 裝飾器

寫一個帶一個default_user 參數的裝飾器,此裝飾器檢查傳入函數的關鍵字參數,如果沒有名為user的參數,使用default_user 作為user 參數傳遞給函數.

例如:

@inject_user(default_user=comyn)

def do_something(*args,**kwargs):

print(kwargs['user'])

調用do_something() 時能輸入comyn

from?functools?import?wraps def?inject_user(default_user):def?func(fn):@wraps(fn)def?deco(*args,?**kwargs):if?'user'?not?in?kwargs.keys():kwargs['user']?=?default_userreturn?fn(*args,?**kwargs)return?decoreturn?func@inject_user(default_user='comyn') def?do_somethings(*args,?**kwargs):print(kwargs['user'])do_somethings()


  • 列表匹配

寫一個find函數,傳入兩個列表,其中origin和iterms, items具有默認值[3, 4].查找iterms中每個元素在origin中的所有位置.返回值為字典,key是iterms中的元素,value是位置的元組.

例如:

find([2, 3, 5, 3, 4, 2, 7, 4]) 返回{3:(1, 3), 4:(4, 7)}

def?find(origin,items=[3,?4]):fin?=?dict()for?x?in?iter(items):lst?=?list()for?k,?v?in?enumerate(origin):if?x?==?v:lst.append(k)fin[x]?=?tuple(lst)return?finfind([2,?3,?5,?3,?4,?2,?7,?4])#使用列表解析優化 def?find(origin,items=[3,?4]):fin?=?dict()for?x?in?items:lst?=?list()[lst.append(k)?for?k,?v?in?enumerate(origin)?if?x?==?v]fin[x]?=?tuple(lst)return?finfind([2,?3,?5,?3,?4,?2,?7,?4])


轉載于:https://blog.51cto.com/390892467/1749770

總結

以上是生活随笔為你收集整理的002 exercises的全部內容,希望文章能夠幫你解決所遇到的問題。

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