浙大版《Python 程序设计》题目集

文章目录编程题第1章1 从键盘输入两个数,求它们的和并输出2 从键盘输入三个数到a,b,c中,按公式值输出3 输出“人生苦短,我学Python”第2章1 计算 11+12+13+...+m2 计算分段函数[1]3 阶梯电价4 特殊a串数列求和5 求奇数分之一序列前N项和6 求交错序列前N项和7 产生每位数字相同的n位数8 转换函数使用9 比较大小10 输出华氏-摄氏温度转换表编程题第1章1 从键盘输入两个数,求它们的和并输出a = eval(input())b = eval(input())p
摘要由CSDN通过智能技术生成

文章目录

函数

1 使用函数求特殊a串数列和

在这里插入图片描述

def fn(a,n):
    s = 0
    temp = a
    for i in range(n):
        s += temp
        temp = temp*10 + a
    return s
2 使用函数求素数和

在这里插入图片描述

def prime(p):
    if p < 2:
        return False
    for i in range(2, int(p**0.5)+1):
        if p%i == 0:
            return False
    return True

def 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 1
    return 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 = 0
    s = 0
    flag = -1
    while abs(x**i/math.factorial(i)) >= eps:
        flag = -flag
        s += flag*x**i/math.factorial(i)
        i += 2
    return 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 0
    else: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*quan
    print('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 += temp
    temp = 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 += temp
        temp = temp*10 + a
    s *= 2 #倍乘
else:
    for i in range(n//2):
        s += temp
        temp = temp*10 + a
    s *= 2
    s += 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 = -flag
    s += 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 比较大小

在这里插入图片描述
注意:

  1. 此处构造列表需要将元素由str化为int,直接对str排序不一定正确
  2. 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)/2
    print('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 += 1
    if cnt%5 == 0:
        print()
if len(range(a, b+1))%5 != 
  • 15
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值