PYTHON习题选编_第1页
PYTHON习题选编_第2页
PYTHON习题选编_第3页
PYTHON习题选编_第4页
PYTHON习题选编_第5页
已阅读5页,还剩15页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python习 题 选 编华 东 师 大 信 息 学 院 计 算 中 心一 程 序 结 构 与 算 法 部 分 :1 . 编 写 一 个 python 程 序 , 输 入 两 个 数 , 比 较 它 们 的 大 小 并 输 出 其 中较 大 者 。参 考 代 码 :x = int(input(“Please enter first integer: “)y = int(input(“Please enter second integer: “) if (x = y):print(“两 数 相 同 ! “)elif (x y):print(“较 大 数 为 : “,x)else:print(“较 大 数 为 : “,y);2 . 写 一 个 算 法 ( 流 程 图 和 python 程 序 ) : 输 入 三 个 数 , 输 出 其 最 大者 。 参 考 代 码 :a,b,c=3 ,4 ,5 if a 1 0 0 :grade = “输 入 错 误 ! “elif score = 9 0 :grade = Aelif score = 8 0 :grade = Belif score = 7 0 :grade = Celif score = 6 0 :grade = Delif score = 0 :grade = Eelse: grade = “输 入 错 误 ! “print(grade)7 . 猜 数 游 戏 。 预 设 一 个 0 9 之 间 的 整 数 , 让 用 户 猜 一 猜 并 输 入 所 猜 的 数 , 如 果大 于 预 设 的 数 , 显 示 “ 太 大 ” ; 小 于 预 设 的 数 , 显 示 “ 太 小 ” , 如 此 循 环 , 直至 猜 中 该 数 , 显 示 “ 恭 喜 ! 你 猜 中 了 ! ” 。参 考 答 案 :num=7while True:guess=int(input(请 输 入 你 猜 的 数 ( 0 9 ) : )if guess = num:print(“恭 喜 ! 你 猜 中 了 ! “)break; elif guess num:print(“太 大 “)else:print(“太 小 “)8 . 输 入 一 个 数 , 判 断 这 个 数 是 否 为 素 数 , 并 输 出 判 断 结 果 。( 所 谓 素 数 , 是 指 除 了 1 和 该 数 本 身 之 外 , 不 能 被 其 它 任 何 整 数 整 除 的 数 。 下图 为 参 考 流 程 图 ) 参 考 答 案 :import mathn=int(input(“请 输 入 一 个 数 :“)x=int(math.sqrt(n)i,w=2 ,0for i in range (2 ,x+1 ):if n%i=0 :w=1if w=1 :print(n,“不 是 素 数 。 “)else:print(n,“是 素 数 。 “)或 import mathn=int(input(请 输 入 一 个 数 : )i,w=2 ,0while i = 6 0 :second = second-6 0minute += 1minute+=5if minute = 6 0 :minute = minute-6 0hour += 1if hour = 2 4 :hour = 0print(%d:%d:%d%(hour,minute,second)10.一 个 数 如 果 恰 好 等 于 它 的 因 子 之 和 , 这 个 数 就 称 为 “ 完 数 ” 。 例 如 , 6 的 因子 为 1、 2、 3, 而 6=1+2+3, 因 此 6 是 完 数 。 编 程 , 找 出 1000 之 内 的 所 有 完 数 , 并 输 出 该 完 数 及 对 应 的 因 子 。 ( 枚 举 法 )参 考 答 案 : m=1 0 0 0for a in range(2 ,m+1 ):s=aL1 =for i in range(1 ,a):if a%i=0 :s-=iL1 .append(i)if s=0 :print(“完 数 : %d, 因 子 包 括 : “%a,end=“)for j in range(1 ,len(L1 ):print(“%d“%L1 j,end=“,“)print(“n“) 11 编 程 , 解 决 猴 子 吃 桃 问 题 。猴 子 第 一 天 摘 下 若 干 个 桃 子 , 当 即 吃 了 一 半 , 还 不 过 瘾 , 又 多 吃 了 一 个 。 第 二 天 早 上 又 将剩 下 的 桃 子 吃 掉 一 半 , 又 多 吃 了 一 个 。 以 后 每 天 早 上 都 吃 了 前 一 天 剩 下 的 一 半 零 一 个 。 到第 1 0 天 早 上 想 吃 时 , 只 剩 下 一 个 桃 子 了 。 求 第 一 天 共 摘 多 少 个 桃 子 。 ( 迭 代 法 )参 考 答 案 :day=9x=1while day0 :x=(x+1 )*2day-=1print(“total=“,x)二 输 入 输 出 与 文 件 部 分 : 1 . 编 写 一 个 python 程 序 , 输 入 两 个 数 , 输 出 两 数 之 和 。参 考 代 码 :x = int(input(“Please enter first integer: “)y = int(input(“Please enter second integer: “)print(“The sum is:“);print(x+y);2 . 在 当 前 目 录 下 有 一 个 文 件 名 为 temp.txt 的 文 件 , 存 放 着 上 海 从 2 0 1 4 年 3 月1 0 日 ( 周 一 ) 到 3 月 1 6 日 ( 周 日 ) 间 一 周 的 最 高 和 最 低 气 温 ( 单 位 为 摄 氏 度 ) 。其 中 , 第 一 行 为 最 高 气 温 , 第 二 行 为 最 低 气 温 。 编 程 , 找 出 这 一 周 中 第 几 天 最热 ( 按 最 高 气 温 计 算 ) ? 最 高 多 少 度 ? 这 一 周 中 第 几 天 最 冷 ( 按 最 低 气 温 计 算 ) ?最 冷 多 少 度 ? 参 考 答 案 :flname=“temp.txt“f=open(flname)ht=(f.readline().strip()L1 =list(ht.split(,)lt=(f.readline().strip()L2 =list(lt.split(,)f.close()for i in range(len(L1 ):L1 i=int(L1 i)L2 i=int(L2 i)maxVal=L1 0 maxDay=0minVal=L2 0 minDay=0for i in range(1 ,len(L1 ):if L1 imaxVal:maxVal=L1 imaxDay=iif L2 i=1 0 :k+=1else:k=0avg=int(sum/len(L3 )print(“周 平 均 气 温 为 : “,avg)if k=5 :print(“上 海 这 周 已 入 春 。 “)else:print(“上 海 这 周 未 入 春 。 “)4 当 前 目 录 下 有 一 个 文 件 名 为 score1.txt 的 文 本 文 件 , 存 放 着 某 班 学 生 的 计算 机 课 成 绩 , 共 有 学 号 、 平 时 成 绩 、 期 末 成 绩 三 列 。 请 根 据 平 时 成 绩 占 40%, 期 末 成 绩 占 60%的 比 例 计 算 总 评 成 绩 ( 取 整 数 ) , 并 分 学 号 、 总 评 成 绩 两 列 写 入 另一 文 件 score2.txt。 同 时 在 屏 幕 上 输 出 学 生 总 人 数 , 按 总 评 成 绩 计 90 以 上 、 8089、 70 79、 60 69、 60分 以 下 各 成 绩 档 的 人 数 和 班 级 总 平 均 分 ( 取 整 数 ) 。参 考 答 案 :f=open(“score1 .txt“)a=f.readline()line=(f.readline().strip()f2 =open(“score2 .txt“,w)f2 .write(“学 号 平 均 成 绩 n“);L2 =0 ,0 ,0 ,0 ,0 count=0sum=0while (len(line) != 0 ): #print(line)L1 =line.split()f2 .write(L1 0 +“ “)f_score=int(int(L1 1 )*0 .4 +int(L1 2 )*0 .6 )if 9 0 =8 0 :L2 1 +=1elif f_score=7 0 :L2 2 +=1elif f_score=6 0 :L2 3 +=1else: L2 4 +=1count+=1sum+=f_scoref2 .write(str(f_score)+“n“) line=(f.readline().strip()f.close()f2 .close()avg_score=int(sum/count)print(“学 生 总 人 数 为 %d, 按 总 评 成 绩 计 ,9 0 以 上 %d 人 、 8 0 8 9 间 %d 人 、 7 0 7 9 间 %d 人 、6 0 6 9 间 %d 人 、 6 0 分 以 下 %d 人 。 班 级 总 平 均 分 为 %d 分 。“%(count,L2 0 ,L2 1 ,L2 2 ,L2 3 ,L2 4 ,avg_score)或f=open(“score1 .txt“)a=f.readlines()del a0 L3 = for line in a:line=line.strip()L1 =line.split()f_score=int(int(L1 1 )*0 .4 +int(L1 2 )*0 .6 )L3 .append(L1 0 ,f_score)f.close()c=0 ,0 ,0 ,0 ,0 count=0sum=0f2 =open(“score2 .txt“,w)f2 .write(“学 号 平 均 成 绩 n“);for L2 in L3 :if 9 0 =8 0 :c1 +=1elif L2 1 =7 0 :c2 +=1elif L2 1 =6 0 :c3 +=1else:c4 +=1count+=1sum+=L2 1 f2 .write(L2 0 +“ “+str(L2 1 )+“n“)f2 .close() avg_score=int(sum/count)print(“学 生 总 人 数 为 %d, 按 总 评 成 绩 计 ,9 0 以 上 %d 人 、 8 0 8 9 间 %d 人 、 7 0 7 9 间 %d 人 、6 0 6 9 间 %d 人 、 6 0 分 以 下 %d 人 。 班 级 总 平 均 分 为 %d 分 。“%(count,c0 ,c1 ,c2 ,c3 ,c4 ,avg_score) 5 当 前 目 录 下 有 一 个 文 本 文 件 sample12.txt, 其 内 容 包 含 小 写 字 母 和 大 写 字 母 。请 将 该 文 件 复 制 到 另 一 文 件 sample12_copy.txt, 并 将 原 文 件 中 的 小 写 字 母 全 部转 换 为 大 写 字 母 , 其 余 格 式 均 不 变 。参 考 答 案 :f=open(“sample1 2 .txt“)L1 =f.readlines()f2 =open(“sample1 2 _copy.txt“,w)for line in L1 :f2 .write(line.upper()f.close()f2 .close()6 当 前 目 录 下 有 一 个 文 件 名 为 class_score.txt 的 文 本 文 件 , 存 放 着 某 班 学 生 的 学 号 、 数 学 课 成 绩 ( 第 2列 ) 和 语 文 课 成 绩 ( 第 3 列 ) 。 请 编 程 完 成 下 列 要 求 :( 1) 分 别 求 这 个 班 数 学 和 语 文 的 平 均 分 ( 保 留 1位 小 数 ) 并 输 出 。( 2) 找 出 两 门 课 都 不 及 格 ( =9 0 :print(line)f=open(“class_score.txt“)L=f.readlines()del L0 output_avg(L)output_notpass(L)output_good(L)三 算 法 分 析 与 设 计 部 分1. 编 程 , 从 键 盘 接 收 若 干 个 整 数 ( 直 接 输 入 回 车 表 示 结 束 ) , 用 冒 泡 法 或 选 择 法 进 行 排 序 ( 从 小 到 大 ) , 并 将 排 序 结 果 在 屏 幕 上 输 出 。 同 时 估 计 算 法 的 复杂 度 。参 考 答 案 :选 择 排 序 :def bubble(List):num=len(List)for i in range(0 ,num-1 ):for j in range(i+1 ,num):if ListiListj:Listi,Listj=Listj,Listireturn ListL1 = num_str=input(请 输 入 一 个 需 排 序 的 整 数 : )while len(num_str) != 0 :L1 .append(int(num_str)num_str=input(请 输 入 一 个 需 排 序 的 整 数 : )print(排 序 后 结 果 :, bubble(L1 )或冒 泡 排 序 :def bubble(List):for i in range(0 ,len(List)-1 ):for j in range(len(List)-1 ,i,-1 ):if Listj-1 Listj:Listj-1 ,Listj=Listj,Listj-1 return ListL1 = num_str=input(请 输 入 一 个 需 排 序 的 整 数 : )while len(num_str) != 0 : L1 .append(int(num_str)num_str=input(请 输 入 一 个 需 排 序 的 整 数 : )print(排 序 后 结 果 :, bubble(L1 )上 述 两 个 程 序 算 法 的 时 间 复 杂 度 均 为 O(n2 ).2 从 键 盘 接 收 一 个 正 整 数 n, 输 出 对 应 斐 波 那 契 ( Fibonacci) 数 列 的 前 n 项 ( 计算 数 列 中 某 项 的 值 请 用 递 归 函 数 实 现 ) 。 另 外 , 请 指 出 所 用 算 法 的 复 杂 度 。有 能 力 的 同 学 还 可 进 一 步 改 进 算 法 的 效 率 。参 考 答 案 :def fib(n):if n=0 or n=1 :return n else:return fib(n-1 ) + fib(n-2 )n=int(input(n=)for i in range(n+1 ):print(fib(i),end=“ “)算 法 时 间 复 杂 度 为 O(n*2 n).可 改 进 为 :def fib(n,List):a,b=0 ,1 List.append(a)while bmaxScore:maxScore=L3 imaxIndex=iif L3 i=a and si=A and si=0 and si=A) or (i=a):a+=1elif (i= ):b+=1elif(i=0 and iu:u,v=v,ur=u%vwhile r!=0 :u=vv=rr=u%vreturn vdef lcd(u,v,h): return u*v/hu=int(input(“请 输 入 第 一 个 整 数 : “)v=int(input(“请 输 入 第 二 个 整 数 : “)h=hcf(u,v)print(“%d 和 %d 的 最 大 公 约 数 为 %d: “%(u,v,h)l=lcd(u,v,h)print(“%d 和 %d 的 最 小 公 倍 数 为 %d: “%(u,v,l)5 编 程 , 统 计 列 表 中 各 数 据 的 方 差 和 标 准 差 。 主 函 数 已 给 出 , 请 编 写 计 算 方 差的 函 数 var。( 提 示 : 方 差 的 计 算 公 式 为 : X i2/n-( Xi/n)2 , 其 中 , n 为 列 表 中 元 素

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论