浙大版《Python 程序设计》题目集
文章目录
- 函数
- 1 使用函数求特殊a串数列和
- 2 使用函数求素数和
- 3 使用函数统计指定数字的个数
- 4 使用函数输出指定范围内Fibonacci数的个数
- 5 使用函数求余弦函数的近似值
- 6 缩写词
- 编程题
- 第1章
- 1 从键盘输入两个数,求它们的和并输出
- 2 从键盘输入三个数到a,b,c中,按公式值输出
- 3 输出“人生苦短,我学Python”
- 第2章
- 1 计算 11+12+13+...+m
- 2 计算分段函数[1]
- 3 阶梯电价
- 4 特殊a串数列求和
- 5 求奇数分之一序列前N项和
- 6 求交错序列前N项和
- 7 产生每位数字相同的n位数
- 8 转换函数使用
- 9 比较大小
- 10 输出华氏-摄氏温度转换表
- 11 求平方与倒数序列的部分和
- 12 输出三角形面积和周长
- 13 分段计算居民水费
- 14 求整数段和
- 第3章
- 1 大于身高的平均值
- 2 查验身份证
- 3 输出字母在字符串中位置索引
- 4 查找指定字符
- 5 字符转换
- 6 求整数序列中出现次数最多的数
- 7 求最大值及其下标
- 8 字符串逆序
- 9 字符串转换成十进制整数
- 10 统计大写辅音字母
- 11 字符串排序
- 12 求整数的位数及各位数字之和
- 13 字符串替换
- 14 字符串字母大小写转换
- 15 统计一行文本的单词个数
- 16 删除重复字符
- 17 删除字符
- 18 输出10个不重复的英文字母
- 19 找最长的字符串
- 20 逆序的三位数
- 21 判断回文字符串
- 22 输出大写英文字母
- 第4章
- 1 生成3的乘方表
- 2 统计素数并求和
- 3 猴子吃桃问题
- 4 验证“哥德巴赫猜想”
- 5 求e的近似值
- 6 输出前 n 个Fibonacci数
- 7 统计学生平均成绩与及格人数
- 8 求分数序列前N项和
- 9 查询水果价格
- 10 最大公约数和最小公倍数
- 11 判断素数
- 12 求满足条件的斐波那契数
- 13 求误差小于输入值的e的近似值
- 14 统计字符
- 15 换硬币
- 16 jmu-python-判断是否构成三角形
- 17 水仙花数
- 18 猴子选大王
- 19 矩阵运算
- 20 求矩阵各行元素之和
- 21 判断上三角矩阵
- 22 找鞍点
- 23 求矩阵的局部极大值
- 24 打印九九口诀表
- 25 输出三角形字符阵列
- 26 求1!+3!+5!+……+n!
- 27 二维数组中每行最大值和每行和
- 28 矩阵转置
- 29 找出不是两个数组共有的元素
- 30 找完数
- 第5章
- 1 输出星期名缩写
- 2 图的字典表示
- 3 四则运算(用字典实现)
- 4 分析活动投票情况
- 5 统计字符出现次数
- 6 统计工龄
- 7 列表去重
- 8 能被3,5和7整除的数的个数(用集合实现)
- 9 求矩阵鞍点的个数
- 10 两数之和
- 11 字典合并
- 第6章
- 1 输入列表,求列表元素和(eval输入应用)
- 2 一帮一
- 3 列表或元组的数字元素求和
- 4 列表数字元素加权和(1)
- 5 列表元素个数的加权和(1)
- 6 求指定层的元素个数
- 7 找出总分最高的学生
- 8 输出全排列
函数
1 使用函数求特殊a串数列和
def fn(a,n):s = 0temp = afor i in range(n):s += temptemp = temp*10 + areturn s
2 使用函数求素数和
def prime(p):if p < 2:return Falsefor i in range(2, int(p**0.5)+1):if p%i == 0:return Falsereturn Truedef PrimeSum(m,n):ls = []for num in range(m, n+1):if prime(num):ls.append(num)return sum(ls)
3 使用函数统计指定数字的个数
def CountDigit(number, digit):return str(number).count(str(digit))
4 使用函数输出指定范围内Fibonacci数的个数
def fib(n):if n == 0 or n == 1:return 1return fib(n-1)+fib(n-2)def PrintFN(m,n):result = []for i in range(25):if m <= fib(i) <= n:result.append(fib(i))return result
5 使用函数求余弦函数的近似值
import math
def funcos(eps,x):i = 0s = 0flag = -1while abs(x**i/math.factorial(i)) >= eps:flag = -flags += flag*x**i/math.factorial(i)i += 2return s
6 缩写词
def acronym(phrase):ls = phrase.split()c = ''for s in ls:c += s[0].upper()return c
编程题
第1章
1 从键盘输入两个数,求它们的和并输出
a = eval(input())
b = eval(input())
print(a+b)
2 从键盘输入三个数到a,b,c中,按公式值输出
a, b, c = map(eval, input().split())
print(b*b-4*a*c)
3 输出“人生苦短,我学Python”
print('人生苦短,我学Python')
第2章
1 计算 11+12+13+…+m
m = eval(input())
print('sum = {}'.format(sum(range(11,m+1))))
2 计算分段函数[1]
注意格式:保留小数点后一位
def f(x):if x == 0:return 0else:return 1/x
x = eval(input())
print('f({:.1f}) = {:.1f}'.format(x, f(x)))
3 阶梯电价
quan = eval(input())
if quan < 0:print('Invalid Value!')
elif quan <= 50:cost = 0.53*quanprint('cost = {:.2f}'.format(cost))
else:cost = 0.53*50 + (quan-50)*(0.53+0.05)print('cost = {:.2f}'.format(cost))
4 特殊a串数列求和
题目序列表述有误,测试的是序列a + aa + aaa +…+aa…aa(n个)
a, n = map(int, input().split())
s = 0
temp = a
for i in range(n):s += temptemp = temp*10 + a
print('s = {}'.format(s))
若是题给序列:
a, n = map(int, input().split())
s = 0
temp = a
if n%2 == 0: #若为偶数项,直接折半for i in range(n//2):s += temptemp = temp*10 + as *= 2 #倍乘
else:for i in range(n//2):s += temptemp = temp*10 + as *= 2s += temp #折半后补上中间数
print('s = {}'.format(s))
5 求奇数分之一序列前N项和
N = eval(input())
s = 0
for i in range(1, N+1):s += 1/(2*i-1)
print('sum = {:.6f}'.format(s))
6 求交错序列前N项和
n = eval(input())
s, flag = 0, -1
for i in range(1, n+1):flag = -flags += flag*i/(2*i-1)
print('%.3f'%s) #字符串格式控制
7 产生每位数字相同的n位数
使用列表推导分割字符串,再逐个strip(),消除空格符
a, b = [s.strip() for s in input().split(',')]
print(a*eval(b))
或者采用map方法的同时,利用lambda匿名函数处理各个元素
a, b = map(lambda d:int(d.strip()), input().split(','))
print(str(a)*b)
8 转换函数使用
注意,int进制转换只能转换字符串
num, n = map(int, input().split(','))
print(int(str(num), n))
9 比较大小
注意:
- 此处构造列表需要将元素由str化为int,直接对str排序不一定正确
- print排序处不能使用.sort(),因为sort是原地修改,无返回值
ls = [eval(x) for x in input().split()]
print(*sorted(ls), sep='->')
10 输出华氏-摄氏温度转换表
注意:
range的范围要注意,终止地址要+1
lower, upper = map(eval, input().split())
if lower > upper or upper > 100:print('Invalid.')
else:print('fahr celsius')for i in range(lower, upper+1, 2):print('{}{:6.1f}'.format(i, 5*(i-32)/9))
11 求平方与倒数序列的部分和
m, n = map(int, input().split())
s = 0
for i in range(m, n+1):s += i**2 + 1/i
print('sum = {:.6f}'.format(s))
12 输出三角形面积和周长
即,海伦公式
a, b, c = map(int, input().split())
if a + b > c and a + c > b and b + c > a:s = (a+b+c)/2print('area = {:.2f}; perimeter = {:.2f}'.format((s*(s-a)*(s-b)*(s-c))**0.5, s*2))
else:print('These sides do not correspond to a valid triangle')
13 分段计算居民水费
x = eval(input())
y = 4*x/3 if x <= 15 else 2.5*x-17.5
print('%.2f'%y)
14 求整数段和
考察格式控制输出,不能简单使用列表解包
a, b = map(eval, input().split())
cnt = 0
for i in range(a, b+1):print('{:>5d}'.format(i), end='')cnt += 1if cnt%5 == 0:print()
if len(range(a, b+1))%5 != 0: #最后一行不足5个数的情况print()
print('Sum = {}'.format(sum(range(a, b+1))))
第3章
1 大于身高的平均值
注意结尾也有空格
ls = list(map(eval, input().split()))
average = sum(ls)/len(ls)
for s in ls:if s > average:print(s, end=' ')
2 查验身份证
最后一个测试点没过
w = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
M = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
n = eval(input())
flag = 0 #判是否全部正确
for i in range(n):cred = input()if not cred[:17].isdigit() or len(cred) != 18: #前17位存在非数字,不合法print(cred)continuemul = 0for j in range(17):mul += int(cred[j])*w[j]if M[mul%11] != cred[-1]: #校验码不合法print(cred)flag = 1
if flag == 0:print('All passed')
3 输出字母在字符串中位置索引
ls = input()
a, b = input().split()
for i, s in enumerate(ls[::-1]):if s == a or s == b:print(len(ls)-i-1, s)
4 查找指定字符
s = input()
ls = input()
flag = 0
for i, k in enumerate(ls[::-1]):if k == s:flag = 1break
print('index = %d'%(len(ls)-i-1)) if flag == 1 else print('Not Found')
字符串方法中,有关于查找的方法find()和rfind()
>>> ls
'programming'
>>> ls.rfind('m')
7
>>> ls.find('m')
6
5 字符转换
输出整数字符串可能以0开头,要注意。这里用int去除。
ls = input()
print(int(''.join([x for x in ls if x.isdigit()])))
6 求整数序列中出现次数最多的数
nums = input().split()
maxi = 0
for num in set(nums):if nums.count(num) > maxi:maxi = nums.count(num)m = num
print(m, maxi)
7 求最大值及其下标
n = eval(input())
nums = list(map(int, input().split()))
print(max(nums), nums.index(max(nums)))
8 字符串逆序
ls = input()
print(ls[::-1])
9 字符串转换成十进制整数
注意:
- 首先把字母统一大小写
- 截取‘#’之前的部分
- 特殊情况:十六进制数不存在要单独判断
ls = input().lower()
ls = ls[:ls.index('#')]
six = '0123456789abcdef'
temp = ''
for s in ls:if s in six:temp += s
if temp == '': #字符串中不存在十六进制数字print(0)
else:if '-' in ls[:ls.index(temp[0])]: #十六进制数的首字母前存在负号print('-',end='')print(int(temp, 16))
10 统计大写辅音字母
注意:本题使用了filter()方法,多加练习
def f(s):'''判断元音、小写辅音或非字母'''c = 'aeiouAEIOU'if s in c or s.islower() or not s.isalpha():return Falsereturn Truels = list(input())
result = list(filter(f, ls))
print(len(result))
11 字符串排序
ls = input().split()
ls.sort()
print('After sorted:')
for s in ls:print(s)
12 求整数的位数及各位数字之和
num = input()
total = sum([eval(x) for x in num])
print(len(num), total)
13 字符串替换
g = str.maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'[::-1])
ls = input()
print(ls.translate(g))
14 字符串字母大小写转换
ls = input()
ls = ls[:ls.index('#')]
print(ls.swapcase())
15 统计一行文本的单词个数
ls = input().split()
print(len(ls))
16 删除重复字符
输出之前需要排序,所以用集合去重打乱了顺序也没关系。
ls = input()
print(''.join(sorted(list(set(ls)))))
17 删除字符
列表推导最好用啦
浙大版《Python 程序设计》题目集相关推荐
- 丁亚涛c语言程序设计第3版,c语言程序设计(第3版)丁亚涛.pdf
<C 语言程序设计 (第3 版)>丁亚涛 教材习题与解答 习题1 [参考答案] 1. C 语言基本特点:简洁.紧促.灵活.运算符丰富.数据结构丰富.移植性好等. 2. 程序如下: #inc ...
- java 程序设计 第八版,java语言程序设计第八版答案
参考答案如下 程序[单选题]船用离心泵需向压力较高容器供液时,最常用的方法是________.A. 用大直径叶轮 B. 提高转速 C. 用多级泵 D. 用并联泵 设计[单选题]甲癣口服药治疗,由于用药 ...
- 何钦铭c语言程序设计第八章,c语言程序设计(第3版)何钦铭-颜-晖-第8章--指针
1.第8章 指针[练习8-1]如果有定义"int m, n = 5, *p = &m;"与m = n等价的语句是 B .A m = *p; B. *p = *&n; ...
- c语言程序设计第4版pdf荣政_C语言程序设计(第4版) (史蒂芬.寇肯) 中文pdf扫描版[82MB]...
C语言程序设计(第4版)全面介绍了C语言的各种特性,包括C11中增加的内容.书中包含大量完整的示例及详细的讲解.无论是否拥有编程经验,你都可以通过本书透彻地理解C语言.每章最后附有习题,便于课堂学习或 ...
- c语言函数的程序设计,C语言程序设计第3版,第6章函数程序设计.ppt
C语言程序设计第3版,第6章函数程序设计 C语言程序设计 第6章 函数程序设计 第6章 数组程序设计 6.1 函数概述 6.2 自定义函数示例 6.3 函数定义及调用 6.4 函数嵌套和递归函数 6. ...
- java第二版课后题答案_Java语言程序设计第2版第16章 课后习题答案
<Java语言程序设计第2版第16章 课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计第2版第16章 课后习题答案(62页珍藏版)>请在人人文库网上搜索. ...
- 第三章 函数 C++语言程序设计第五版 - 郑莉
本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...
- C++语言程序设计第五版 - 郑莉-绪论(一)
本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...
- C++语言程序设计(第4版)郑莉练习
C++练习(持续更新) 教材:c++语言程序设计第四版 [教材习题4_13:定义Circle类并计算面积] [问题描述] 定义一个Circle类,有数据成员radius(半径),成员函数getArea ...
- c语言二分答案最小值,C语言程序设计第2版课后习题答案(贾宗璞许合利人民邮电-第2版).doc...
C语言程序设计第2版课后习题答案(贾宗璞许合利人民邮电-第2版) C语言习题答案 第1章 1.选择题 (1) C (2) B (3) 2.填空题 (1)main (2) main (3) 有穷性.确定 ...
最新文章
- Python查找相同元素,不同元素
- 长沙网络推广浅析新站怎么做会对排名提升更有帮助?
- java从静态代理到动态代理的理解
- 数学基础、机器学习经典算法、统计学习方法,这份机器学习在线手册来帮你...
- python 接口测试 url_Python 接口测试之接口请求方法封装
- Android笔记 actionbar学习
- 2017.10.17 蜘蛛难题 思考记录
- Pytorch nn.functional.unfold()的简单理解与用法
- Awake OnEnable Start Update LateUpdate FixedUpdate
- 给页面加上loading加载效果
- UML建模:学习笔记(1)
- python 最准确的图片转文字软件_图片转文字软件哪个好用?免费的图片转文字软件...
- 互联网协议理解(入门)
- FFmpeg转码音视频不同步情况总结
- 软件工程毕业设计题目合集【含源码+论文】
- 《基于机器视觉的高压输电线路覆冰厚度检测》论文笔记
- 车牌识别--opencv(python)
- Unity SetFromToRotation和FromToRotation的区别
- 麻将胡牌算法的Java实现
- 全球及中国生物制药产业盈利现状及竞争格局展望报告2021-2027年
热门文章
- Java中long与float
- 新房和二手房税费比较
- 电脑老是弹出vrvedp_m_vrvedp_m.exe是什么进程?是病毒吗?vrvedp,vrvedp.exe,,,,,,,
- 又一神作。Alibaba“M8级”架构师总结微服务与事件驱动架构启蒙手册
- grad-cam一直无法画比较合适的图的原因
- 从小白到数据分析师的成长之路
- Dev C++可以编译但运行时提示Failed to execute且Error 0:操作成功完成。
- Dev C++可以编译但运行时提示failed to execute且error 0:操作成功完成
- 权威发布丨2022 中国开源先锋 33 人之心尖上的开源人物
- python运维自动化脚本案例-python自动化运维脚本范例