python编程实例

上传人:suns****4568 文档编号:60838234 上传时间:2018-11-19 格式:PDF 页数:11 大小:331.13KB
返回 下载 相关 举报
python编程实例_第1页
第1页 / 共11页
python编程实例_第2页
第2页 / 共11页
python编程实例_第3页
第3页 / 共11页
python编程实例_第4页
第4页 / 共11页
python编程实例_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《python编程实例》由会员分享,可在线阅读,更多相关《python编程实例(11页珍藏版)》请在金锄头文库上搜索。

1、目的:用一个实例总结学习到的 with 语句,函数,列表推导,集合,排序, 字符分割等内容 要求:分别以 james,julie,mikey,sarah 四个学生的名字建立文本文件, 分别存储各自的成绩,时间格式都精确为分秒,时间越短成绩越好,分别输出每 个学生的无重复的前三个最好成绩,且分秒的分隔符要统一为“.” 数据准备:分别建立四个文本文件 james.txt2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22 julie.txt2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21 mikey.txt2:22,3.0

2、1,3:01,3.02,3:02,3.02,3:22,2.49,2:38 sarah.txt2:58,2.58,2:39,2-25,2-55,2:54,2.18,2:55,2:55 import os os.chdir(C:Python33HeadFirstPythonhfpy_codechapter5)#将工作空间修改为文 件所在的目录 #定义函数 get_filedata 从文件中取值 def get_filedata(filename): try: with open(filename)as f:#with 语句打开和自动关闭文件 data=f.readline()#从文件中逐行读取字符

3、 return (data.strip().split(,)#将字符间的空格清除后,用逗号分隔字符 except IOError as ioerr: print (File Error + str(ioerr)#异常处理,打印错误 return (None)#定义函数 modify_time_format 将所有文件中的时分表达方式统一为“分. 秒”def modify_time_format(time_string): if “-“ in time_string: splitter=“-“ elif “:“ in time_string: splitter=“:“ else: splitte

4、r=“.“ (mins, secs)=time_string.split(splitter)#用分隔符 splitter 分隔字符后分别存入 mins 和 secs return (mins+ . +secs)#定义函数 get_prev_three 返回文件中排名前三的不重复的时间 成绩 def get_prev_three(filename): new_list=modify_time_format(each_t) for each_t in get_filedata(filename) #采用列表推导将统一时分表达方式后的记录生成新的列表 delete_repetition=set(ne

5、w_list)#采 用集合 set 函数删除新列表中重复项,并生成新的集合 in_order=sorted(delete_repetition)#采 用复制排序 sorted 函数对无重复性的新集合进行排序 return (in_order0:3)#返回列 表前三项 # 分别输出对应文件中排名前三的不重复的时间成绩 print (get_prev_three(“james.txt“)print (get_prev_three(“julie.txt“)print (get_prev_three(“mikey.txt“)print (get_prev_three(“sarah.txt“) 【程序

6、1】 题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #Filename:001.py cnt = 0#count the sum of resultfor i in range(1,5): for j in range(1,5): for k in range(1,5): if i!=j and i!=k and j!=k: print i*100+j*10+k cnt+=1print cnt 程序 2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于 10 万元时,奖金可提 10%;利 润高于 10 万元, 低于 20 万元时, 低于 10

7、万元的部分按 10%提成, 高于 10 万元的部分, 可可提成 7.5%;20 万到 40 万之间时,高于 20 万元的部分,可提成 5%;40 万到 60 万之间时高于 40 万元的部分,可提成 3%;60 万到 100 万之间时,高于 60 万元的部分, 可提成 1.5%,高于 100 万元时,超过 100 万元的部分按 1%提成,从键盘输入当月利润 I,求应发放奖金总数? 1 #Filename:002.py 2 i = int(raw_input(Enter the profit:) 3 arr = 1000000,600000,400000,200000,100000,0 4 rat

8、 = 0.01,0.015,0.03,0.05,0.075,0.1 5 r = 0 6 for idx in range(0,6): 7if iarridx: 8r+=(i-arridx)*ratidx 9print (i-arridx)*ratidx 10i=arridx 11 print r 【程序 3】 题目:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请 问该数是多少? # -*- coding:utf-8 -*- Created on 2015-6-7 # 第三题:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,

9、请问该数是 多少 author: Administratorimport math num = 1while True: if math.sqrt(num + 100)-int(math.sqrt(num + 100) = 0 and math.sqrt(num + 268)-int(math.sqrt(num + 268) = 0: print(num) break num += 1 【程序 4】 题目:输入某年某月某日,判断这一天是这一年的第几天? 1 #author: 叛军 2 import datetime 3 import time 4 dtstr = str(raw_input(E

10、nter the datetime:(20151215):) 5 dt = datetime.datetime.strptime(dtstr, “%Y%m%d“) 6 another_dtstr =dtstr:4 +0101 7 another_dt = datetime.datetime.strptime(another_dtstr, “%Y%m%d“) 8 print (int(dt-another_dt).days) + 1) 【程序 5】 题目:输入三个整数 x,y,z,请把这三个数由小到大输出。 【程序 8】 题目:输出 9*9 口诀。 1 for i in range(1,10):

11、 2for j in range(1,i+1): 3print i,*,j,=,i*j, 4print 【程序 11】 题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第 三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1 a = 1 2 b = 1 3 for i in range(1,21,2): 4print %d %d%(a,b), 5a += b 6b += a 【程序 12】 题目:判断 101-200 之间有多少个素数,并输出所有素数。 1 #!/usr/bin/python 2 #-*- coding:utf-8 -*-

12、 3 from math import sqrt 4 def main(): 5for i in range(101,201): 6flag = 1 7k = int(sqrt(i) 8for j in range(2,k+1): 9if i%j = 0: 10flag = 0 11break 12if flag = 1: 13print %5d%(i), 14 15 if _name_ = “_main_“: 16main() 【程序 13】 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于 该数本身。例如:153 是一个“水仙花数”,因为 153=1 的

13、三次方5 的三次方3 的三次 方。 1 #!/usr/bin/python 2 #-*- coding:utf-8 -*- 3 def main(): 4foriinrange(100,1000): 5a = i%10 6b = i/100 7c = (int(i/10)%10 8if i = a*3+b*3+c*3: 9print “%5d“%(i), 10 11 if _name_ = “_main_“: 12main() 【程序 14】 题目:将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5。 1 #!/usr/bin/python 2 #-*- coding:ut

14、f-8 -*- 3 4 def main(): 5n = int(raw_input(Enter a number:) 6print n,=, 7while(n!=1): 8for i in range(2,n+1): 9if (n%i)=0: 10n/=i 11if(n = 1): 12print %d%(i) 13else: 14print %d *%(i), 15break 16 17 18 if _name_ = “_main_“: 19main() 【程序 15】 题目:利用条件运算符的嵌套来完成此题:学习成绩=90 分的同学用 A 表示,60-89 分 之间的用 B 表示,60 分

15、以下的用 C 表示。 1 #!/usr/bin/python 2 #-*- coding:utf-8 -*- 3 def main(): 4s = int(raw_input(Enter a number:) 5if s=90: 6grade = A 7elif s=60: 8grade = B 9else: 10grade = C 11print grade, 12 13 if _name_ = _main_: 14main() 【程序 17】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1 #!/usr/bin/python 2 #-*- coding:utf

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号