文章目录
-
- 函数
- 编程题
-
- 第1章
- 第2章
- 第3章
- 第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章
- 第6章
函数
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 比较大小
注意:
- 此处构造列表需要将元素由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)/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 != 0: #最后一行不足5个数的情况
print()
print('Sum = {}'.format(sum(