面向过程的编程语言,一般有三种控制结构:顺序、选择和循环;而面向对象的编程语言,主要是继承、封装和多态。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
##输出100到1000以内的水仙花数
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)) ##按从小到大顺序输出