Python里小程序

来源:互联网 发布:bruker核磁软件 编辑:程序博客网 时间:2024/05/01 23:02

  面向过程的编程语言,一般有三种控制结构:顺序、选择和循环;而面向对象的编程语言,主要是继承、封装和多态。Python是一种动态脚本语言,它即支持面向过程,又支持面向对象,运行效率在编译语言(比如C、C++)之后,而在静态解释语言(Matlab)之前。
  Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++、Java、R、Matlab)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
  下面,介绍在Python里一些案例程序。
  1.计算1+2+3+…+100的值  

#-*- coding: UTF-8 -*-import systype = sys.getfilesystemencoding()##问题:1+2+3...+100s=0for n in range(1,101): ## 1 ≤ n < 101    s = s+nprint'1+2+3+...+100= ',s

  2.输出九九乘法表  

##输出九九乘法表for i in range(1,10):    for j in range(1,i+1):        m = j*i        print '%d * %d = %d\t' %(j,i,m),    print('\n')

  3.打印杨辉三角  

##打印杨辉三角def demo(t):    print([1])    print([1,1])    line = [1,1]    for i in range(2,t):        r=[]        for j in range(0,len(line)-1):            r.append(line[j]+line[j+1])        line=[1]+r+[1]        print (line)demo(10)

  4.求最小公倍数和最大公约数
  编写函数,接收两个正整数作为参数,返回一个数组,其中第一个元素是最大公约数,第二个元素是最小公倍数。
  

##求最小公倍数,最大公约数def gcdyue(m,n):    if m>n:        m,n = n,m  ##交换m,n    p = m*n    while m!=0:        r=n%m        n=m        m=r    return (int(p/n),n)print gcdyue(20,30)

  5.输出100到1000以内的水仙花数
  所谓水仙花数,是指数字x等于它每个数位上的立方和。即
  x = (abc…) = Σ(a^3+b^3+….)
  比如,153 = 1^3+5^3+3^3  

##输出1001000以内的水仙花数for i in range(100,1000):    ge = i%10    shi = (i//10)%10    bai = i//100    if ge**3+shi**3+bai**3 == i:        print(i)

  6.质数判断
  如果整数a>1,且a只能整除1和a,那么a就是质数,或者素数。比如2,3,5就是质数,1不是质数(因为1只有1个约数,而质数有且仅有两个约数)。  

#-*- coding: UTF-8 -*-import systype = sys.getfilesystemencoding()##素数判断import mathdef isPrime(n):    if n<=1:        return False    if n==2:        return True    for i in range(2,int(math.sqrt(n))+1):        if n%i == 0:            return False        return Trueif(isPrime(2) == True):    print('2是质数').decode('utf-8').encode(type)else:    print ('2不是质数').decode('utf-8').encode(type)if(isPrime(4) == True):    print('4是质数').decode('utf-8').encode(type)else:    print ('4不是质数').decode('utf-8').encode(type)

  7.鸡兔同笼问题
  已知一个笼子里装有鸡和兔,数量一共30只,而脚一共有90只,问鸡、兔各多少只?

##鸡兔同笼for cock in range(0,31):    if 2*cock+(30-cock)*4 == 90:        print 'cock =%d ,tu= %d'%(cock,30-cock),

  8.闰年判断
  能被100和400同时整数的年份为闰年,或者能被4整数但不能被100整除的年份为闰年,其他都为平年。  

#-*- coding: UTF-8 -*-import systype = sys.getfilesystemencoding()##闰年import mathdef isLeapYear(n):    m = math.fabs(n)    if(m %100 ==0 and m %400 == 0):        return True    elif (m%4 ==0 and m%100!=0):        return True    return False  ##默认是平年if(isLeapYear(1996)==True):    print ('1996是闰年').decode('utf-8').encode(type)else:    print ('1996不是闰年').decode('utf-8').encode(type)if(isLeapYear(2000)==True):    print ('2000是闰年').decode('utf-8').encode(type)else:    print ('2000不是闰年').decode('utf-8').encode(type)

  9.输出由1,2,3,4所组成的所有不相同的三位数  

#-*- coding: UTF-8 -*-import systype = sys.getfilesystemencoding()##用list存储不同的数字digits = (1,2,3,4)result = []for i in digits:    for j in digits:        if j==i:            continue        for k in digits:            if k==i or k==j:                continue            #print '%d'%(i*100+j*10+k),            result.append(i*100+j*10+k)for i in range(0,len(result)):    print result[i],    n = i+1    if(n%5 == 0):  ##一行输出5个        print '\n'

  10.生成含有10个随机数列表,且每个元素在1~100之间。  

#-*- coding: UTF-8 -*-import systype = sys.getfilesystemencoding()##生成随机数列表import randomx=[]while True:    if len(x) == 10:        break    n = random.randint(1,100)    if n not in x:        x.append(n)print (x)  ##原序列print (len(x)) ##序列的长度print (sorted(x)) ##按从小到大顺序输出
1 0
原创粉丝点击