您的当前位置:首页正文

python语言经典基础级案例(含源代码)

2024-09-14 来源:好走旅游网
python语言经典案例(基础级)

案例1:

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

程序分析:利用 while 或 for 语句,条件为输入的字符不为 '\\n'。

实例 - 使用 while 循环

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import string

s = raw_input('请输入一个字符串:\\n') letters = 0 space = 0 digit = 0 others = 0 i=0

while i < len(s): c = s[i] i += 1

if c.isalpha(): letters += 1 elif c.isspace(): space += 1 elif c.isdigit(): digit += 1 else:

others += 1

print 'char = %d,space = %d,digit = %d,others = %d' % (letters,space,digit,others)

实例 - 使用 for 循环 #!/usr/bin/python

# -*- coding: UTF-8 -*-

import string

s = raw_input('请输入一个字符串:\\n') letters = 0 space = 0 digit = 0 others = 0 for c in s:

if c.isalpha(): letters += 1 elif c.isspace(): space += 1 elif c.isdigit(): digit += 1 else:

others += 1

print 'char = %d,space = %d,digit = %d,others = %d' % (letters,space,digit,others)

以上实例输出结果为:

请输入一个字符串: 123runoobc kdf235*(dfl char = 13,space = 2,digit = 6,others = 2

案例2:

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

程序分析:无 程序源代码:

Python 实例

#!/usr/bin/python

# -*- coding: UTF-8 -*- tour = [] height = []

hei = 100.0 # 起始高度 tim = 10 # 次数

for i in range(1, tim + 1):

# 从第二次开始,落地时的距离应该是反弹高度乘以2(弹到最高点再落下)

if i == 1:

tour.append(hei) else:

tour.append(2*hei) hei /= 2

height.append(hei)

print('总高度:tour = {0}'.format(sum(tour)))

print('第10次反弹高度:height = {0}'.format(height[-1]))

以上实例输出结果为:

总高度:tour = 299.609375

第10次反弹高度:height = 0.09765625

案例3:

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

程序源代码:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

for i in range(ord('x'),ord('z') + 1):

for j in range(ord('x'),ord('z') + 1): if i != j:

for k in range(ord('x'),ord('z') + 1): if (i != k) and (j != k):

if (i != ord('x')) and (k != ord('x')) and (k != ord('z')):

print 'order is a -- %s\ b -- %s\c--%s' % (chr(i),chr(j),chr(k))

以上实例输出结果为:

order is a -- z b -- x c--y

案例4:

题目:打印出如下图案(菱形):

* *** ***** ******* ***** *** * 程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。 程序源代码:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

from sys import stdout for i in range(4):

for j in range(2 - i + 1): stdout.write(' ') for k in range(2 * i + 1): stdout.write('*') print

for i in range(3):

for j in range(i + 1): stdout.write(' ')

for k in range(4 - 2 * i + 1): stdout.write('*') print

以上实例输出结果为:

* *** ***** ******* ***** *** * 案例5:

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

程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。 程序源代码:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

if __name__ == '__main__':

# 方法一 : 0 作为加入数字的占位符 a = [1,4,6,9,13,16,19,28,40,100,0] print '原始列表:'

for i in range(len(a)): print a[i],

number = int(raw_input(\"\\n插入一个数字:\\n\")) end = a[9]

if number > end: a[10] = number else:

for i in range(10): if a[i] > number: temp1 = a[i] a[i] = number

for j in range(i + 1,11): temp2 = a[j] a[j] = temp1 temp1 = temp2 break

print '排序后列表:' for i in range(11): print a[i],

以上实例输出结果为:

原始列表:

1 4 6 9 13 16 19 28 40 100 0 插入一个数字: 7 排序后列表: 1 4 6 7 9 13 16 19 28 40 100

因篇幅问题不能全部显示,请点此查看更多更全内容