python 100题_python3.0练习100题——001
自學python3中,現在開始每天在python2.71 100例中做一道題,用python3實現,并寫下一些思考~加油(? ??灬??)?
題目網站(http://www.runoob.com/python/python-100-examples.html)
001題目:有四個數字:1、2、3、4,能組成多少個互不相同且無重復數字的三位數?各是多少?
我的答案:
deffun():
n=0for x in range(1,5):for y in range(1,5):for z in range(1,5):if (x!=y) and (x!=z) and (y!=z):print("%d%d%d"%(x,y,z))
n=n+1
print("tatal:%d"%n)
fun()
思考:
1.用三個循環嵌套可以遍歷所有可能的數值,再用if條件篩選出來。但是在數據量大的時候遍歷,可能會延長時間。所以可以改進一下代碼:
deffun():
n=0for x in range(1,5):for y in range(1,5) :if y!=x: #增加if條件語句,讓循環要產生的數字減少,更省運行時間for z in range(1,5):if (x!=z) and (y!=z):print("%d%d%d"%(x,y,z))
n=n+1
print("tatal%d"%n)
fun()
2.用permutations的方法
from itertools importpermutationsfor i in permutations([1,2,3,4],3):print("%d%d%d" %(i[0],i[1],i[2]))
itertools.permutations(iterable,r)
創建了一個迭代器,返回iterable中所有長度為r的項目序列,如果省略了r,那么序列的長度與iterable中的項目數量相同: 返回p中任意取r個元素做排列的元組的迭代器。
等于說是從列表[1,2,3,4]任意取三個元素,各種排列后,返回含有三個元素的tuple。最后輸出的時候格式化一下就好了~
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的python 100题_python3.0练习100题——001的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: window连接不上linux ftp_
- 下一篇: 小额贷款逾期后果怎样