9-1 使用函数求特殊a串数列和
给定两个均不超过9的正整数a和n,要求编写函数fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(n个a)之和,fn须返回的是数列和
函数接口定义:
fn(a,n)
其中 a 和 n 都是用户传入的参数。 a 的值在[1, 9]范围;n 是[1, 9]区间内的个位数。函数须返回级数和
裁判测试程序样例:
/* 请在这里填写答案 */
a,b=input().split()
s=fn(int(a),int(b))
print(s)
输入样例:
在这里给出一组输入。例如:
2 3
输出样例:
在这里给出相应的输出。例如:
246
def fn(a,n):
m = 0
c = a
for i in range(n):
m = m + a
a = a*10 + c
return m
9-2 缩写词
缩写词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语“central processing unit”的缩写。
函数接口定义:
acronym(phrase);
phrase是短语参数,返回短语的缩写词
裁判测试程序样例:
/* 请在这里填写答案 */
phrase=input()
print(acronym(phrase))
输入样例:
central processing unit
输出样例:
CPU
def acronym(phrase):
lst = phrase.split()
return ''.join([x[0] for x in lst]).upper()
9-3 使用函数统计指定数字的个数
本题要求实现一个统计整数中指定数字的个数的简单函数。
CountDigit(number,digit )
其中number是整数,digit为[1, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。
函数接口定义:
在这里描述函数接口。例如:
CountDigit(number,digit ),返回digit出现的次数
裁判测试程序样例:
/* 请在这里填写答案 */
number,digit=input().split()
number=int(number)
digit=int(digit)
count=CountDigit(number,digit )
print("Number of digit 2 in "+str(number)+":",count)
输入样例:
在这里给出一组输入。例如:
-21252 2
输出样例:
在这里给出相应的输出。例如:
Number of digit 2 in -21252: 3
def CountDigit(number,digit):
numberstr = str(number)
lst = list(numberstr)
count = 0
for i in range(len(lst)):
if lst[i] == str(digit) :
count += 1
return count
9-4 使用函数求素数和
使用函数求素数和
prime(p), 其中函数prime当用户传入参数p为素数时返回True,否则返回False. PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。
函数接口定义:
在这里描述函数接口:
prime(p),返回True表示p是素数,返回False表示p不是素数
PrimeSum(m,n),函数返回素数和
裁判测试程序样例:
/* 请在这里填写答案 */
m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))
输入样例:
在这里给出一组输入。例如:
1 10
输出样例:
在这里给出相应的输出。例如:
17
def PrimeSum(m,n):
def prime(p):
if p == 1:
return False
if p == 2 or p == 3:
return True
if p % 2 == 0:
return False
else:
for i in range(3,p):
if p%i == 0:
return False
return True
a = 0
for i in range(m,n+1):
if prime(i) :
a = a + i
return a
9-5 使用函数求余弦函数的近似值
本题要求实现一个函数,用下列公式求cos(x)近似值,精确到最后一项的绝对值小于eps(绝对值小于eps的项不要加):
cos (x) = x^0 / 0! - x^2 / 2! + x^4 / 4! - x^6 / 6! + ?
函数接口定义:funcos(eps,x ),其中用户传入的参数为eps和x;函数funcos应返回用给定公式计算出来,保留小数4位。
函数接口定义:
函数接口:
funcos(eps,x ),返回cos(x)的值。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
/* 请在这里填写答案 */
eps=float(input())
x=float(input())
value=funcos(eps,x )
print("cos({0}) = {1:.4f}".format(x,value))
输入样例:
在这里给出一组输入。例如:
0.0001
-3.1
输出样例:
在这里给出相应的输出。例如:
cos(-3.1) = -0.9991
def funcos(eps,x):
def funnum(x,n):
n = float(n)
if n == 1:
return 1
else:
k = 1.0
for i in range(1,int((n-1)*2)+1):
k = k*i
m = x**((n-1)*2)/(k)
if n%2 == 0:
return -m
else:
return m
i = 1
cos = 0.0
while abs(funnum(x,i)) >= eps:
cos = cos + funnum(x,i)
i = i+1
return cos
9-6 输入列表,求列表元素和(eval输入应用)
在一行中输入列表,输出列表元素的和。
输入格式:
一行中输入列表。
输出格式:
在一行中输出列表元素的和。
输入样例:
[3,8,-5]
输入样例:
6
print(sum(eval(input())))
9-7 计算圆柱体的体积
输入圆柱的高和半径,求圆柱体积,volume=π×r
2×h 。要求定义和调用函数cylinder (r, h )计算圆柱体的体积。
输入格式:
输入在一行中给出2个实数,分别为半径r和高h。
输出格式:
在一行中以“Volume = 值”的形式输出圆柱体的体积,结果保留三位小数。
输入样例:
3.0 10
输出样例:
Volume = 282.743
r,h = input().split()
r = float(r)
h = float(h)
def cylinder (r, h):
import math
volume = math.pi * r**2 * h
return volume
print('Volume = {0:.3f}'.format(cylinder(r,h)))
9-8 函数编程-分段函数
编写函数,计算下面分段函数的值。

输入格式:
输入一个实数x的值
输出格式:
输出y的结果值
输入样例:
0
输出样例:
y=-1.000000
输入样例:
3.5
输出样例:
y=-8.619337
def func(x):
import math
if x <= -2:
y = -(math.e)**(2*x+1)+3
elif x > 3:
y = 2*(math.log(3*x+5,10))-11
else:
y = 2*x-1
return y
x = float(input())
print('y={0:.6f}'.format(func(x)))
9-9 求最大公约数
求两个整数的最大公约数。
输入格式:
输入两个整数,以空格分隔。
输出格式:
输出最大公约数。
输入样例:
9 18
输出样例:
9
a,b = input().split()
a = int(a)
b = int(b)
def func(a,b):
if a >= b:
a,b = b,a
for i in range(a,0,-1):
if a % i == 0 and b % i == 0:
break
return i
print(func(a,b))
9-10 哥德巴赫猜想
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证5000以内的偶数都可以分解成两个素数之和。
输入格式:
输入在一行中给出一个(2, 5000]范围内的偶数N。
输出格式:
在一行中按照格式“N = p + q”输出N的素数分解,其中p \le≤ q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。
输入样例:
24
输出样例:
24 = 5 + 19
x = int(input())
def prime(p):
if p == 1:
return False
if p == 2 or p == 3:
return True
if p % 2 == 0:
return False
else:
for i in range(3,p):
if p%i == 0:
return False
return True
for i in range(1,int(x)):
if prime(i) and prime(x-i):
print('{0} = {1} + {2}'.format(x,i,x-i))
break
9-11 数字金字塔
输出5行的数字金字塔。
输入格式:
该题没有输入。
输出格式:
输出5行数字金字塔,每行数字之间用1个空格间隔。
输入样例:
输出样例:
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
def func(x):
for i in range(1,x+1):
print(((str(i)+' ')*i).rjust(i+5))
func(5)
这篇博客是Python入门学习系列的第九篇,详细介绍了如何使用函数解决实际问题,包括求特殊a串数列和、创建缩写词、统计数字个数、求素数和、余弦函数近似值计算、列表元素求和、计算圆柱体体积、分段函数、最大公约数、哥德巴赫猜想和数字金字塔等实例。
&spm=1001.2101.3001.5002&articleId=103199915&d=1&t=3&u=7c5646860a0646ce963284c28d3884cb)
1416

被折叠的 条评论
为什么被折叠?



