学习->用Python玩转数据->Week1/5

#%%
#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)    

 

转载于:https://my.oschina.net/tedzheng/blog/851667

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值