#%%
#1.1
#顯示内建函數
dir(__builtins__)
#檢視具體明細
help(abs)
#顯示某一package明細
import math
dir(math) #顯示下級函數
help(math) #幫助資訊
#%%
#1.2
#順序,選擇,結構
#guess number(0~300)
from random import randint
x=randint(0,300)
print 'Please input a number between 0~300'
digit=input()
if digit==x:
print 'Bingo!'
elif digit>x:
print 'Too large, please try again'
else:
print 'Too small, please try again'
#%%
print range(3,11,2)
print range(3,11)
print range(11)
#xrange産生生成器
print xrange(3,11,2)
a=xrange(3,11,2)
for i in a:
print i
#%%
#1.2.3 Loops
sumA=0
j=1
while j<10:
sumA+=j
print j,sumA
j+=1
print sumA
s='python'
for c in s:
print c
for i in range(3,11,2):
print i
#%%
#清單解析->函數式程式設計
[i+1 for i in range(10) if i%3==0]
#%%
#1.2.4 break,continue,else
sumA=0
i=0
while True:
sumA+=1
i+=1
if sumA>10:
break
print 'i=%d,sum=%d'%(i,sumA)
#%%
#2-100之間素數
from math import sqrt
j=2
while j<=100:
i=2
k=sqrt(j)
while i<=k:
if j%i==0:break
i=i+1
if i>k:
print j
j+=1
for i in range(2,101):
flag=1
k=int(sqrt(i))
for j in range(2,k+1):
if i%j==0:
flag=0
break
if flag:
print i
#%%
#else+while/for->如果正常結束,執行;break結束,不執行else
k=5
for i in range(1,10):
if k==3:
break
else:
print i
#%%
#1.2.5自定義函數
def addMe2Me(x):
#文檔字元串,用.__doc__顯示
'apply operation+ to argument'
return(x+x)
#建立1-100之間素數函數
from math import sqrt
def isprime(x):
'check whehter number is prime'
if x==1:
return False
k=int(sqrt(x))
for j in range(2,k+1):
if x%j==0:
return False
return True
#調用isprime函數
for i in range(2,101):
if isprime(i):
print i,
#預設參數,關鍵字參數
def f(x,y=True):
'Whether xand y both correct words or not'
if y:
print x,' are y both correct'
print x,'OK'
#調用f
f(8,True)
f(9,False)
f(y=False,x=68)
#傳遞函數
def self(f,y):
print f(y)
#調用函數
self(addMe2Me,2.2)
#匿名函數
r=lambda x:x+x
r(5)
my_add=lambda x,y:x+y
my_add(3,5)
#%%
#1.2.6遞歸
def fib_loop(n):
'Loop for Fibo'
a,b=0,1
count=1
while count<n:
a,b=b,a+b
count=count+1
print a
def fib_recur(n):
if n==0 or n==1:
return n
else:
return (fib_recur(n-1)+fib_recur(n-2))
fib_loop(10);print fib_recur(10)
def hanoi(a,b,c,n):
'a,b,c表示3個柱子,n表示盤子數量'
if n==1:
print a,'->',c
else:
hanoi(a,c,b,n-1)
print a,'->',c
hanoi(b,a,c,n-1)
hanoi('A','B','C',3)
#%%
#1.2.7變量作用域
def f(x):
global a
print a
a=5
print a+x
a=3
f(8)
print a
#%%
#1.2練習
def level_score(x):
'''define the leve of grade x'''
x=int(x)
if x in range(90,101):
return 'A'
elif x in range(70,90):
return 'B'
elif x in range(60,70):
return 'C'
elif x in range(0,59):
return 'D'
else:
return 'Invalid Score'
print map(level_score,[95,89,60,35,130])
import math
def fun(num):
if num<0:
print '-',
num=-num
#數字分拆成字元
if num/10:
fun(num/10)
print chr(num%10+48),
fun(-1234)
def proc(n):
if n<0:
print '-',
n=-n
if n/10:
proc(n/10)
print n%10,
proc(-345)
#%%
from math import sqrt,pow
def is_prime(x):
'''check x in prime'''
if x==1:
return False
k=int(sqrt(x))
for i in range(2,k+1):
if x%i==0:
return False
return True
def mersenne(num):
'''M=2P-1,M and P both are prime number'''
if is_prime(num):
return True
'''>50 will overflow memory'''
for n in range(2,50):
p=n
if is_prime(p):
m=pow(2,n)-1
if mersenne(m):
print n,int(m)
版權聲明:本文為CSDN部落客「weixin_34004576」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/weixin_34004576/article/details/91973598