Py学习  »  Python

Python编程语言入门经典案例

python • 6 年前 • 375 次点击  


【程序1】

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。


 1 #!/usr/bin/python 
2
#-*- coding:utf-8 -*-
3
#there is no ++ operator in Python
4
import string
5
def main():
6
s = raw_input('input a string:')
7
letter = 0
8
space = 0
9
digit = 0
10 other = 0
11 for c in s:
12 if c.isalpha():
13 letter+=1
14 elif c.isspace():
15 space+=1
16 elif c.isdigit():
17 digit+=1
18 else:
19 other+=1
20 print 'There are %d letters,%d spaces,%d digits and %d other characters in your string.'%(letter,space,digit,other)
21
22 if __name__ == '__main__':
23 main()

【程序2】

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

【程序3】
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
找出1000以内的所有完数。

'''

【程序28】 

题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第

   3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 

   问第一个人,他说是10岁。请问第五个人多大?

'''

def fun(i):

    if i==1:

        return 10

    return fun(i-1)+2


print fun(5)

'''

【程序29】 

题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

'''

def fun(i,cnt):

    if i==0:

        print 'There are %d digit in the number.'%cnt

        return

    print i%10,

    i/=10

    cnt+=1

    fun(i,cnt)


i = int(raw_input('Input a number:'))

fun(i,0)

'''

【程序30】

题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。   

'''

ans=['Yes','No']

i = int(raw_input('Input a number(10000~99999):'))

if i<10000 or i>99999:

    print 'Input Error!'

else:

    i = str(i)

    flag = 0

    for j in range(0,2):

        if i[j]!=i[4-j]:

            flag = 1

            break

    print ans[flag]

'''

【程序36】【筛选法】

题目:求100之内的素数   

'''

a = [0]*101

for i in range(2,11):

    for j in range(i+i,101,i):

        a[j]=-1;

for i in range(2,101):

    if a[i]!=-1:

        print ' ',i,

'''

【程序37】

题目:对10个数进行排序

'''

print 'input 10 numbers please:'

l = []

for i in range(10):

    l.append(int(raw_input('Input a number:')))

#可以直接使用sort函数:l.sort()

#也可以自己写排序代码(选择排序)

for i in range(9):

    for j in range(i+1,10):

        if l[j]

            temp = l[j]

            l[j] = l[i]

            l[i] = temp    

print l

'''

【程序38】

题目:求一个3*3矩阵对角线元素之和 

'''

l = []

for i in range(3):

    for j in range(3):

        l.append(int(raw_input('Input a number:')))

s = 0

for i in range(3):

    s += l[3*i+i]

print s

'''

【程序39】

题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

'''

l = [0,10,20,30,40,50]


print 'The sorted list is:',l

cnt = len(l)

n = int(raw_input('Input a number:'))

l.append(n)

for i in range(cnt):

    if n

        for j in range(cnt,i,-1):

            l[j] = l[j-1]

        l[i] = n

        break

print 'The new sorted list is:',l

'''

【程序40】

题目:将一个数组逆序输出。

'''

a = [1,2,3,4,5,6,7,8,9]

l = len(a)

print a

for i in range(l/2):

    a[i],a[l-i-1] = a[l-i-1],a[i] #注意此句

print a

'''

【程序56】

题目:画圆【Tkinter模块】

'''

if __name__ == '__main__':

    from Tkinter import *


    canvas = Canvas(width=800, height=600, bg='red')  

    canvas.pack(expand=YES, fill=BOTH)                

    k = 1

    j = 1

    for i in range(0,26):

        canvas.create_oval(310 - k,250 - k,310 + k,250 + k, width=1)

        k += j

        j += 0.3


    mainloop()

'''

【程序57】

题目:画直线。

1.程序分析:           

2.程序源代码: 

'''

if __name__ == '__main__':

    from Tkinter import *


    canvas = Canvas(width=300, height=300, bg='green')   

    canvas.pack(expand=YES, fill=BOTH)                  

    x0 = 263

    y0 = 263

    y1 = 275

    x1 = 275

    for i in range(19):

        canvas.create_line(x0,y0,x0,y1, width=1, fill='red')

        x0 = x0 - 5

        y0 = y0 - 5

        x1 = x1 + 5

        y1 = y1 + 5


    x0 = 263

    y1 = 275

    y0 = 263

    for i in range(21):

        canvas.create_line(x0,y0,x0,y1,fill = 'red')

        x0 += 5

        y0 += 5

        y1 += 5


    mainloop()

'''

【程序58】

题目:画方形。   

'''

if __name__ == '__main__':

    from Tkinter import *

    root = Tk()

    root.title('Canvas')

    canvas = Canvas(root,width = 400,height = 400,bg = 'yellow')

    x0 = 263

    y0 = 263

    y1 = 275

    x1 = 275

    for i in range(19):

        canvas.create_rectangle(x0,y0,x1,y1)

        x0 -= 5

        y0 -= 5

        x1 += 5

        y1 += 5

        

    canvas.pack()

    root.mainloop()

'''

题目:画图,综合例子。

1.程序分析:

2.程序源代码:

'''

if __name__  == '__main__':

    from Tkinter import *

    canvas = Canvas(width = 300,height = 300,bg = 'green')

    canvas.pack(expand = YES,fill = BOTH)

    x0 = 150

    y0 = 100

    canvas.create_oval(x0 - 10,y0 - 10,x0 + 10,y0 + 10)

    canvas.create_oval(x0 - 20,y0 - 20,x0 + 20,y0 + 20)

    canvas.create_oval(x0 - 50,y0 - 50,x0 + 50,y0 + 50)

    import math

    B = 0.809

    for i in range(16):

        a = 2 * math.pi / 16 * i

        x = math.ceil(x0 + 48 * math.cos(a))

        y = math.ceil(y0 + 48 * math.sin(a) * B)

        canvas.create_line(x0,y0,x,y,fill = 'red')

    canvas.create_oval(x0 - 60,y0 - 60,x0 + 60,y0 + 60)

    


    for k in range(501):

        for i in range(17):

            a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * k

            x = math.ceil(x0 + 48 * math.cos(a))

            y = math.ceil(y0 + 48 + math.sin(a) * B)

            canvas.create_line(x0,y0,x,y,fill = 'red')

        for j in range(51):

            a = (2 * math.pi / 16) * i + (2* math.pi / 180) * k - 1

            x = math.ceil(x0 + 48 * math.cos(a))

            y = math.ceil(y0 + 48 * math.sin(a) * B)

            canvas.create_line(x0,y0,x,y,fill = 'red')

    mainloop()


作者: ZH奶酪——张贺 
出处: http://www.cnblogs.com/CheeseZH/ 

声明:文章著作权归作者所有,如有侵权,请联系小编删除


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/JQG2tvJDc3
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/4516
 
375 次点击