def
factors1
(num,fac=
):#因式分解
for i in
range(2
,int
(num**
0.5)+1
):if num%i ==0:
factors1(num/i,fac)
break
;#break會使得, else之中只保留最後剩下的結果。
else
:#這個else真的有必要?
int(num)
)fac =
num =
2048
ans = factors1(num,fac)
print
(fac)
#answer:[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
#我對於此**的時間複雜度表示懷疑,遞迴呼叫毫無意義
deffactors2
(num,fac=
):#因式分解
for i in
range(2
,int
(num**
0.5)+1
):if num % i ==0:
for j in
range()
:# for 實現方式
if num % i ==0:
num = num / i;
else
:break
if num !=0:
fac =
num =
2048
ans = factors1(num,fac)
print
(fac)
#answer:[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2] , for的效率將更高
from time import
*from datetime import
*#輸出時間
date = localtime(
)year, month, day = date[:3
]print
(year,month,day)
#range(start, stop, step) 起始點,終結點,步長
#range(5) 預設表示從0開始的五個元素,0 1 2 3 4
import random
import string
#迴圈digits =
for i in
range(1
,1000):
result =
for i in digits:
for j in digits:
for k in digits:
100+ j *
10+ k)
for i in
range
(len
(result)):
#len的時間複雜度為o(1)
print
(result[i]
)#python 區域性變數查詢的速度要快於全域性變數的查詢速度
#條件運算子
a =10
b =6
if a >
13else
9print
(b)flag =3or
4print
(flag)
flag =3|
4print
(flag)
#answer:
#3#7
flag =
5and
7print
(flag)
flag =5&
7print
(flag)
flag =
5and
0print
(flag)
#answer
#7#5
#0flag =
true
if flag ==
true
:print(3
)print(5
)#在一行寫入多個語句使用;分割
if flag ==
true
:print(4
)print(6
);#效果同上
#exit(0)
python基礎 基本資料型別
十進位制 逢10進1,1,2,3,4,5,6,7,8,9,10,11 二進位制 逢2進1,001,010,011,100,101,110,111 八進位制 逢8進1,1,2,3,4,5,6,7,10,11,12,13,14,15,16,20 十六進製制 逢16進1,1,2,3,4,5,6,7,8,9...
Python基礎 基本資料型別
1 數字型別的組成 整數 預設十進位制 二進位制0b開頭,八進位制0o開頭,十六進製制0x開頭 十進位制與其他進製的轉換,輸出結果為字串型別 a bin 16 轉二進位制 b oct 16 轉十進位制 c hex 16 轉十六進製制 其他進製與十進位制的轉換,輸出結果為整型 d int a,2 二進...
Python基礎02 基本資料型別
簡單的資料型別以及賦值 python的變數不需要宣告,你可以直接輸入 a 10 那麼你的記憶體裡就有了乙個變數a,它的值是10,它的型別是integer 整數 在此之前你不需要做什麼特別的宣告,而資料型別是python自動決定的。print a print type a 那麼會有如下輸出 10 這裡...