Python里小程序

  面向过程的编程语言,一般有三种控制结构:顺序、选择和循环;而面向对象的编程语言,主要是继承、封装和多态。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 sys
type = sys.getfilesystemencoding()

##问题:1+2+3...+100
s=0
for n in range(1,101): ## 1 ≤ n < 101
    s = s+n
print'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 sys
type = sys.getfilesystemencoding()

##素数判断
import math

def 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 True

if(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 sys
type = sys.getfilesystemencoding()


##闰年
import math
def 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 sys
type = 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 sys
type = sys.getfilesystemencoding()

##生成随机数列表
import random

x=[]
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)) ##按从小到大顺序输出
展开阅读全文

没有更多推荐了,返回首页