Python编程语言入门经典案例

【程序1】

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

1#!/usr/bin/python

2#-*- coding:utf-8 -*-

3#there is no ++ operator in Python

4importstring

5defmain():

6s = raw_input('input a string:')

7letter =

8space =

9digit =

10other =

11forcins:

12ifc.isalpha():

13letter+=1

14elifc.isspace():

15space+=1

16elifc.isdigit():

17digit+=1

18else:

19other+=1

20print'There are %d letters,%d spaces,%d digits and %d other characters in your string.'%(letter,space,digit,other)

21

22if__name__=='__main__':

23main()

【程序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 i99999:

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/

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

本文来自企鹅号 - python媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端说吧

echarts - 特殊需求实现代码汇总之【线图】篇

继7月24的echarts-柱图配置汇总后,echarts特殊配置连载第四篇 之 线图终于也被我这个懒家伙放出来了!

1103
来自专栏数据小魔方

子弹图(bullet chart)

今天跟大家分享的图表是——子弹图(bullet chart)! ▽▼▽ 名字听起来是不是很高大上呀,这个图表是用于日常绩效评估的,可以从图表中了解到各个项目的目...

2668
来自专栏前端说吧

css布局 - 常规上中下分左右布局的一百种实现方法(更新中...)

左侧nav栏目,要固定也要用fixed。不过固定定位的元素要想高度百分百,可以使用top+bottom对应方位值的拉伸效果:

572
来自专栏企鹅号快讯

新手不知道的,前端关于html5入门学习顺序

现在html5移动端非常的火,很多小伙伴想学习又不知道从哪开端学起,今天就分享一下前html5该怎么入门。 ? 首先还是给大家推荐一个学习氛围很好的裙,我自己的...

3696
来自专栏flutter开发者

自定义View概述

在前面的文章中我们学习了ExpansionPanelList的用法,使用ExpansionPanelList可以很轻松的实现可展开列表的效果,在文章的最后依然给...

713
来自专栏HenCoder

HenCoder Android 开发进阶:自定义 View 1-4 Canvas 对绘制的辅助

这期是 HenCoder 自定义绘制的第 1-4 期:Canvas 对绘制的辅助——范围裁切和几何变换。

882
来自专栏owent

HDU HDOJ 3398 String 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3398

633
来自专栏守候书阁

个人总结(css3新特性)

css3这个相信大家不陌生了,是个非常有趣,神奇的东西!有了css3,js都可以少写很多!我之前也写过关于css3的文章,也封装过css3的一些小动画。个人觉得...

821
来自专栏数据结构与算法

洛谷P1829 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演)

今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple)。对于两个正整数a和b,LCM(a, b)表示能同时整除a和b的最...

881
来自专栏Android群英传

模拟自然动画的精髓——TimeInterpolator与TypeEvaluator

781

扫码关注云+社区