Python练习(函数)

目录

6-1 使用函数求素数和

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-2 使用函数输出指定范围内Fibonacci数的个数

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-3 人民币美元双向兑换

函数接口定义:

裁判测试程序样例:

输入样例1:

输出样例1:

输入样例2:

输出样例2:

6-4 菲波那契数列

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-5 回文数

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

输入样例:

输出样例:

6-6 编写函数判断水仙花数

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-7 编写函数求特殊a串和

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-8 写函数求满足要求三位数的个数

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-9 写函数判断质数

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-10 编写函数计算圆面积

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

 

6-11 编写函数统计指定数字的个数

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-12 编写函数计算薪资

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-13 整数数位和(高教社,《Python编程基础及应用》习题8-3)

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-14 编写函数计算f(i) = 1/2 + 2/3 + 3/4 + ... + i/(i+1) (高教社,《Python编程基础及应用》习题8-4)

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-15 编写函数计算一个或不特定多个数的乘积(高教社,《Python编程基础及应用》习题8-6)

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-16 打印指定范围内的全部回文素数(高教社,《Python编程基础及应用》习题8-7)

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-17 两个数的最大值

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-18 求素数

函数接口定义:

裁判测试程序样例:

输入样例1:

输出样例1:

输入样例2:

输出样例2:

输入样例3:

输出样例3:

6-19 计算工资

函数接口定义:

裁判测试程序样例:

输入样例1:

输出样例1:

输入样例2:

输出样例2:

输入样例3:

输出样例3:

6-20 汉诺塔问题

函数接口定义:

裁判测试程序样例:

输入样例1:

输出样例1:

输入样例2:

输出样例2:

6-21 兔子繁殖

函数接口定义:

裁判测试程序样例:

输入样例1:

输出样例1:

输入样例2:

输出样例2:

6-22 成绩绩点计算

函数接口定义:

裁判测试程序样例:

输入样例1:

输出样例1:

输入样例2:

输出样例2:

6-24 求多项式的值

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

 

6-25 python函数:计算任意个数的乘积

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-26 python函数:求m到n之和

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-27 python函数:递归求Fibonacci数列

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

 

6-28 python函数:对字符串数值类型判断

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

输入样例:

输出样例:

6-30 编写生成斐波那契数列的函数并调用。(升级版v2.0)

函数接口定义:

裁判测试程序样例:

输入样例1:

输出样例1:

输入样例2:

输出样例2:

输入样例3:

输出样例3:

6-31 使用递归法对整数进行因数分解,输出成其质因数相乘的形式。

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-32 本题是一个demo函数,通过本程序体会位置参数的特点。

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-33 本题是一个demo函数,通过本程序体会默认值参数的特点。

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-34 本题是一个demo函数,通过本程序体会关键参数的特点。

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-35 编写函数,接收字符串参数,返回一个元组,其中第一个元素为大写字母个数,第二个元素为小写字母个数。

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-36 编写函数,接收一个正整数t为参数,打印杨辉三角前t行。

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-37 编写函数,接收圆的半径作为参数,返回圆的面积。

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-38 编写函数,接收参数a和n,计算并返回形式如a+aa+aaa+aaaa+…+aaa…aaa的表达式前n项的值,其中a为小于10的自然数。

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-39 特殊的数

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

 

6-40 偶数是两个素数的和

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-41 函数的定义与调用

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-42 接收n个数字,求这些参数之和

函数定义:

裁判测试程序样例:

输入样例:

输出样例:

6-43 编写函数,判断用户传入的列表长度并完成切片

函数定义:

裁判测试程序样例:

输入样例:

输出样例:

6-42 输出闰年

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

 

6-43 使用函数统计数字字符在某数字中出现的个数

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-44 python函数:求两个数的和及差

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:

6-45 实现isOdd函数

函数接口定义:

裁判测试程序样例:

输入样例:

输出样例:


6-1 使用函数求素数和

分数 20

全屏浏览

切换布局

作者 陈春晖

单位 浙江大学

使用函数求素数和

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 prime(p):
    if p==1:
        return False
    for i in range(2,p):
        if p%i==0:
            return False
    return True

def PrimeSum(m,n):
    sum=0
    for i in range(m,n+1):
        if prime(i):
            sum+=i
    return sum

 

6-2 使用函数输出指定范围内Fibonacci数的个数

分数 20

全屏浏览

切换布局

作者 陈春晖

单位 浙江大学

本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m<n≤100000)之间的所有Fibonacci数的数目。
所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,fib(0)=fib(1)=1。其中函数fib(n)须返回第n项Fibonacci数;函数PrintFN(m,n)用列表返回[m, n]中的所有Fibonacci数。

函数接口定义:

 

在这里描述函数接口。例如: fib(n),返回fib(n)的值 PrintFN(m,n),用列表返回[m, n]中的所有Fibonacci数。

裁判测试程序样例:
 

在这里给出函数被调用进行测试的例子。例如: /* 请在这里填写答案 */ m,n,i=input().split() n=int(n) m=int(m) i=int(i) b=fib(i) print("fib({0}) = {1}".format(i,b)) fiblist=PrintFN(m,n) print(len(fiblist))

输入样例:

在这里给出一组输入。例如:

20 100 6
输出样例:

在这里给出相应的输出。例如:

fib(6) = 13
4
def fib(n):
    list=[1,1]
    i=1
    while i<n:
        list.append(list[i]+list[i-1])
        i+=1
    return list[i]

def PrintFN(m,n):
    list=[1,1]
    i=1
    while list[i]<=n:
        list.append(list[i]+list[i-1])
        i+=1
    list1=[]
    for j in range(0,len(list)):
        if list[j]>=m and list[j]<=n:
            list1.append(list[j])
    return list1

6-3 人民币美元双向兑换

分数 10

全屏浏览

切换布局

作者 郭晓曦

单位 集美大学

本题要求实现一个人民币与美元的双向兑换函数change(money),可实现1美元=6.709人民币的双向兑换。输出兑换的结果保留2位小数。

函数接口定义:

在这里描述函数接口。例如:
change( money )

其中 money都是用户传入的参数,表示待兑换的钱数。

裁判测试程序样例:

/* 请在这里填写答案 */

x = input()

change(x)

输入样例1:

在这里给出一组输入。例如:

$1

输出样例1:

在这里给出相应的输出。例如:

1美元 = 6.71人民币

输入样例2:

在这里给出一组输入。例如:

¥1

输出样例2:

在这里给出相应的输出。例如:

1人民币 = 0.15美元
def change( money ):
    qian=0
    if money[0]=='$':
        qian=int(money[1:])*6.709
        print('%s美元 = %.2f人民币'%(money[1:],qian))
    else:
        qian=int(money[1:])*(1/6.709)
        print('%s人民币 = %.2f美元'%(money[1:],qian))

 

6-4 菲波那契数列

分数 20

全屏浏览

切换布局

作者 hanjp

单位 杭州电子科技大学

菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。 给出一个正整数a,要求菲波那契数列中第a个数是多少。
输入两个正整数a和b(1<=a<b<=100)
输出菲波那契数列的第a项到第b项。

函数接口定义:

fib ( n )

n是传入的参数。 n 的值不超过100的范围;函数须返回列表,列表的第i项存放数列的第i项。

裁判测试程序样例:
 

/* 请在这里填写答案 */ a,b=[int(x) for x in input().split()] f=fib(b) for i in range(a,b+1): print(f[i],end=' ')

输入样例:

在这里给出一组输入。例如:

4 6
输出样例:

在这里给出相应的输出。例如:

3 5 8 
def fib(n):
    list=[0,1,1]
    for i in range(2,n+1):
        list.append(list[i]+list[i-1])
    return list

 

6-5 回文数

分数 10

全屏浏览

切换布局

作者 李体新

单位 保定学院

本题要求实现一个函数,判断某整数是否是回文数,如果是,返回True,否则返回False。回文数指的是,若某整数正着读和倒着读都一样,则称该数为回文数。比如8778、12321等。

函数接口定义:

def isHuiwen(n)

其中参数n是任意整数。

裁判测试程序样例:
/* 请在这里填写答案 */
n = int(input())
if isHuiwen(n):
    print("yes")
else:
    print("no")


输入样例:
12321
输出样例:
yes

输入样例:

1232

输出样例:

no
def isHuiwen(n):
    n=str(n)
    n1=n[::-1]
    if n1==n:
        return True
    else:
        return False

6-6 编写函数判断水仙花数

分数 10

全屏浏览

切换布局

作者 王祥荣

单位 宁波财经学院

给定一个三位数n,要求编写函数isflower(n)判断n是否为水仙花数,如果是,则返回True,否则返回False。所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153等于1的立方加上5的立方加上3的立方之和。

函数接口定义:

 

在这里描述函数接口。例如: isflower (n)

其中 n 是传入的参数,表示需要判断的三位数。 n 的值的范围为[100,999]。

裁判测试程序样例:
 

/* 请在这里填写答案 */ n = eval(input()) if isflower(n)==True: print('Yes') else: print('No')

输入样例:

在这里给出一组输入。例如:

371
输出样例:

在这里给出相应的输出。例如:

Yes

 

def isflower(n):
    sum=0
    n1=n
    while n!=0:
        a=n%10
        sum+=a*a*a
        n//=10
    if sum==n1:
        return True
    else:
        return False

 

6-7 编写函数求特殊a串和

分数 5

全屏浏览

切换布局

作者 王祥荣

单位 宁波财经学院

给定两个均不超过9的正整数an,要求编写函数fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(na)之和,fn须返回的是数列和

函数接口定义:

 

在这里描述函数接口。例如: fn(a,n)

其中 a 和 n 都是用户传入的参数。 a 的值在[1,9]范围;n 是[1,9]区间内的个位数。函数须返回级数和

裁判测试程序样例:
 

在这里给出函数被调用进行测试的例子。例如: /* 请在这里填写答案 */ n,a=list(map(int,input().split())) s=fn(a,n) print (s)

输入样例:

在这里给出一组输入。例如:

3 2
输出样例:

在这里给出相应的输出。例如:

246
def fn(a,n):
    sum=0
    k=0
    for i in range(0,n):
        k=k*10+a
        sum+=k
    return sum

 

6-8 写函数求满足要求三位数的个数

分数 5

全屏浏览

切换布局

作者 王祥荣

单位 宁波财经学院

要求实现一个函数,统计给定区间内的三位数中至少有两位数字相同的完全平方数(如144、676)的个数。

函数接口定义:

 

search(n);

其中传入的参数n是一个三位数的正整数。函数search返回[101, n]区间内所有满足条件的数的个数。

裁判测试程序样例:
 

/* 请在这里填写答案 */ n = int(input()) cnt = search(n) print ('count={}'.format(cnt))

输入样例:
500
输出样例:
count=6
def search(n):
    cnt=0
    for i in range(11,32):
        if i*i<=n:
            k=str(i*i)
            if k[0]==k[1] or k[0]==k[2] or k[1]==k[2]:
                cnt+=1
    return cnt

 

6-9 写函数判断质数

分数 5

全屏浏览

切换布局

作者 王祥荣

单位 宁波财经学院

实现一个函数,判断参数是否是质数,是的话返回True,否则返回False

函数接口定义:

 

def isPrime(num);

参数num表示要判断的正整数。返回值为True表示是质数,返回False表示不是质数。

裁判测试程序样例:
 

/* 请在这里填写答案 */ num=eval(input()) if isPrime(num): print ('yes') else: print ('no')

输入样例:
97
输出样例:
yes
def isPrime(num):
    if num<2:
        return False
    for i in range(2,num):
        if num%i==0:
            return False
    else:
        return True

 

6-10 编写函数计算圆面积

分数 5

全屏浏览

切换布局

作者 王祥荣

单位 宁波财经学院

1.要求编写函数getCircleArea(r)计算给定半径r的圆面积,函数返回圆的面积。

2.要求编写函数get_rList(n) 输入n个值放入列表并将列表返回

函数接口定义:

 

getCircleArea(r); get_rList(n);

传入的参数r表示圆的半径,getCircleArea函数返回圆的面积。参数n表示列表中元素的个数,函数get_rList返回一个输入的列表。注意:圆周率请使用3.1415926

主程序取rList中所有元素,对每个元素作为半径参数调用getCircleArea,并按指定格式输出。

裁判测试程序样例:
 

/* 请在这里填写答案 */ n = int(input()) rList = get_rList(n) for e in rList: print ('{:.3f}' .format( getCircleArea(e)))

输入样例:
3
1
2
3
输出样例:
3.142
12.566
28.274
def getCircleArea(r):
    return 3.1415926*r*r
def get_rList(n):
    list=[]
    for i in range(0,n):
        k=int(input())
        list.append(k)
    return list

 

6-11 编写函数统计指定数字的个数

分数 5

全屏浏览

切换布局

作者 王祥荣

单位 宁波财经学院

本题要求实现一个统计整数中指定数字的个数的简单函数。

CountDigit(number,digit )

其中number是整数,digit为[1, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。

函数接口定义:

函数接口定义:

 

int CountDigit (number, digit );

参数number是整数,参数digit为[1,9]区间的整数,函数返回number中digit出现的次数。

裁判测试程序样例:
 

/* 请在这里填写答案 */ number,digit = list(map(int,input().split())) cnt = CountDigit(number,digit) print ("Number of digit {0} in {1}: {2}".format(digit,number,cnt))

输入样例:
-21252 2
输出样例:
Number of digit 2 in -21252: 3

 

def CountDigit(number, digit ):
    cnt=0
    if number<0:
        number=-number
    while number!=0:
        
        if number%10==digit:
            cnt+=1
        number//=10
    return cnt

6-12 编写函数计算薪资

分数 5

全屏浏览

切换布局

作者 王祥荣

单位 宁波财经学院

某公司销售员底薪为5000,销售业绩与利润提成的关系如下表所示(计量单位:元)

f9eefd29-ddcc-43a7-90a1-b90217947f3b.png

编写函数,计算员工月薪。

函数接口定义:

 

salary(sales)

其中 参数 sales表示员工的月销售业绩。

裁判测试程序样例:
 

/* 请在这里填写答案 */ sales = eval(input()) print ("{:.2f}".format(salary(sales)))

输入样例:
50800
输出样例:
15160.00
def salary(sales):
    sum=5000
    if sales<=10000:
        return sum
    elif sales<=20000:
        return sum+sales*0.1
    elif sales<=50000:
        return sum+sales*0.15
    elif sales<=100000:
        return sum+sales*0.2
    else:
        return sum+sales*0.25

 

6-13 整数数位和(高教社,《Python编程基础及应用》习题8-3)

分数 4

全屏浏览

切换布局

作者 海洋饼干叔叔

单位 重庆大学

编写一个函数,该函数接受一个正整数作为参数,返回该整数的各位数字之和。

函数接口定义:

 

def digitSum(v)

v为输入整数(正整数);
函数返回一个整数,其值为v的各位数字之和。

裁判测试程序样例:
 

a = int(input()) print(digitSum(a))

输入样例:
291
输出样例:
12
def digitSum(v):
    sum=0
    while v!=0:
        sum+=v%10
        v//=10
    return sum

 

6-14 编写函数计算f(i) = 1/2 + 2/3 + 3/4 + ... + i/(i+1) (高教社,《Python编程基础及应用》习题8-4)

分数 4

全屏浏览

切换布局

作者 海洋饼干叔叔

单位 重庆大学

编写函数计算f(i) = 1/2 + 2/3 + 3/4 + ... + i/(i+1) 。

函数接口定义:

 

def f(i)

i为正整数,返回结果浮点数。

裁判测试程序样例:
 

v=int(input()) print("%.4f" % f(v))

输入样例:
5
输出样例:
3.5500

 

def f(i):
    sum=0
    for j in range(1,i+1):
        sum+=j/(j+1)
    return sum

6-15 编写函数计算一个或不特定多个数的乘积(高教社,《Python编程基础及应用》习题8-6)

分数 4

全屏浏览

切换布局

作者 海洋饼干叔叔

单位 重庆大学

编写函数计算一个或不特定多个数的乘积(高教社,《Python编程基础及应用》习题8-6)
 

函数接口定义:

 

def caculate(*t)

打*号的参数t接受多个参数成员,参数成员预期为整数或浮点数类型。

裁判测试程序样例:
 

s = input().split() #接受输入字符串并按空格分拆,存入列表,列表成员为字符串类型 t = [float(x) for x in s] #使用列表推导将列表s中的成员全部转换成浮点数,存入另一个列表t print("%.4f" % caculate(*t))

输入样例:
3 2 1
输出样例:
6.0000
def caculate(*t):
    sum=1
    for i in t:
        sum*=i
    return sum

 

6-16 打印指定范围内的全部回文素数(高教社,《Python编程基础及应用》习题8-7)

分数 6

全屏浏览

切换布局

作者 海洋饼干叔叔

单位 重庆大学

回文素数是指一个数既是素数又是回文数,例如131既是素数又是回文数。请实现下述两个函数,帮助测试程序完成如下功能:从键盘输入正整数N, 打印从1 ~ N(包含N)的全部回文素数,一行一个。

函数接口定义:

 

def isPrime(num): def reverseNumber(num):

isPrime()用于判断整数num是否是素数,是返回True, 否则返回False.
reverseNumber()用于返回整数num的反向数,321的反向数为123, 320的反向数为23。

裁判测试程序样例:
 

N = int(input()) for n in range(1,N+1): if isPrime(n) and reverseNumber(n) == n: print(n)

输入样例:
400
输出样例:
2
3
5
7
11
101
131
151
181
191
313
353
373
383

 

def isPrime(num):
    if num<2:
        return False
    for i in range(2,num):
        if num%i==0:
            return False
    else:
        return True
    
def reverseNumber(num):
    num1=0
    while num!=0:
        num1=num1*10+num%10
        num//=10
    return num1

6-17 两个数的最大值

分数 10

全屏浏览

切换布局

作者 殷伟凤

单位 浙江传媒学院

编写一个名为max的函数,接受两个整数作为参数,并返回两者中的较大值。例如,如果7和12作为参数传递给函数,该函数将返回12。

函数接口定义:

 

max(x, y)

x 和 y是传入的两个整数。

裁判测试程序样例:
 

/* 请在这里填写答案 */ def main(): a = int(input()) b = int(input()) print(max(a, b)) main()

输入样例:

在这里给出一组输入。例如:

2
3
输出样例:
3

 

def max(x, y):
    if x>y:
        return x
    else:
        return y

6-18 求素数

分数 32

全屏浏览

切换布局

作者 殷伟凤

单位 浙江传媒学院

素数是仅可以被自身和1整除的数。0和1不是素数。
编写一个名为isPrime的函数,将一个整数作为参数,如果该参数是素数则返回True,否则返回False。

函数接口定义:

 

isPrime(n)

n是一个整数,n为素数时返回True,n不为素数则返回False。例如,5是素数,函数返回True,6不是素数,函数返回False。

裁判测试程序样例:
 

/* 请在这里填写答案 */ def main(): x = int(input()) if isPrime(x): print(x,"is a prime!") else: print(x, "is not a prime!") main()

输入样例1:

在这里给出一组输入。例如:

 5

输出样例1:

在这里给出相应的输出。例如:

5 is a prime!

输入样例2:

在这里给出一组输入。例如:

6

输出样例2:

在这里给出相应的输出。例如:

6 is not a prime!

输入样例3:

在这里给出一组输入。例如:

0

输出样例3:

在这里给出相应的输出。例如:

0 is not a prime!
def isPrime(num):
    if num<2:
        return False
    for i in range(2,num):
        if num%i==0:
            return False
    else:
        return True

 

6-19 计算工资

分数 20

全屏浏览

切换布局

作者 殷伟凤

单位 浙江传媒学院

编写函数pay(),带两个输入参数:小时工资和上周员工工作了的小时数。函数计算并返回员工的工资。加班工资的计算方法如下:大于40小时但小于或等于60小时按平时小时薪酬的1.5倍给薪;大于60小时则按平时小时薪酬的2倍给薪。

函数接口定义:

 

pay(salaryHour, hours)

salaryHour是平时小时薪酬,hours是员工工作的小时数

裁判测试程序样例:
 

/* 请在这里填写答案 */ def main(): salaryPerHour = int(input()) hours = int(input()) print(pay(salaryPerHour, hours)) main()

输入样例1:

在这里给出一组输入。例如:

 10
 35

输出样例1:

在这里给出相应的输出。例如:

350

输入样例2:

在这里给出一组输入。例如:

10
45

输出样例2:

在这里给出相应的输出。例如:

475.0

输入样例3:

在这里给出一组输入。例如:

10
61

输出样例3:

在这里给出相应的输出。例如:

720.0
def pay(salaryHour, hours):
    sum=0
    if hours<=40:
        return salaryHour*hours
    elif hours<=60:
        return salaryHour*40+(hours-40)*salaryHour*1.5
    else:
        return salaryHour*40+salaryHour*20*1.5+salaryHour*(hours-60)*2

 

6-20 汉诺塔问题

分数 15

全屏浏览

切换布局

作者 陶灵兵

单位 浙江理工大学

汉诺塔问题求解:有三根相邻的柱子,假设标号分别为A、B、C,其中A柱子从下到上按金字塔状依次叠放了N个不同大小的圆盘,现要把A柱子上的所有圆盘一次一个地移动到C柱子上,移动的过程中可以借助B柱子做中转,并且每根柱子上的圆盘必须始终保持上小下大的叠放顺序。编写一个函数,输出移动轨迹(提示:用递归函数

图片1.png

函数接口定义:

 

函数接口: hanoi(n,a,b,c),print移动轨迹并统计移动次数 n表示要移动的圆盘个数,a,b,c为三根柱子名称,表示将盘子从a移动到c,b为中转柱。

裁判测试程序样例:
 

测试样例: n=int(input()) step=0 hanoi(n,'A','B','C') print('共移动次数:',step)

输入样例1:

输入n(1<=n<=5):

1

输出样例1:

在这里给出相应的输出。例如:

A -> C
共移动次数: 1

输入样例2:

输入n(1<=n<=5):

3

输出样例2:

在这里给出相应的输出。例如:

A -> C
A -> B
C -> B
A -> C
B -> A
B -> C
A -> C
共移动次数: 7
def hanoi(n,a,b,c):
    global step
    step+=1
    if n==1:
        print('%s -> %s'%(a,c))
    else:
        hanoi(n-1,a,c,b)
        print('%s -> %s'%(a,c))
        hanoi(n-1,b,a,c)

 

6-21 兔子繁殖

分数 15

全屏浏览

切换布局

作者 陶灵兵

单位 浙江理工大学

兔子繁殖问题。假设有一对新生的兔子,从第三个月开始他们每个月月初都生一对兔子,新生的兔子从第三个月月初开始又每个月又生一对兔子。按此规律,并假定兔子没有死亡,n(n<=20)个月月末共有多少对兔子?

函数接口定义:

 

函数接口: rabit(n),n为第几个月

裁判测试程序样例:
 

n=int(input()) print(rabit(n))

输入样例1:

在这里给出一组输入。例如:

3

输出样例1:

在这里给出相应的输出。例如:

2

输入样例2:

在这里给出一组输入。例如:

5

输出样例2:

在这里给出相应的输出。例如:

5
def rabit(n):
    list=[0]
    sum=1
    for i in range(0,n):
        for j in range(0,len(list)):
            list[j]=list[j]+1
            if list[j]>=3:
                list.append(1)
                sum=sum+1
    return sum

 

6-22 成绩绩点计算

分数 10

全屏浏览

切换布局

作者 陶灵兵

单位 浙江理工大学

假设某大学的成绩绩点计算规则为:90分(含)以上计4.5分,80分(含)-90分(不含)计3分,70分(含)-80分(不含)计1.5分,60分(含)-70分(不含)计1分,60分以下不计分。输入某位同学的各门课成绩,请编写一个函数,打印该同学的平均绩点(保留2位小数)。

函数接口定义:

 

函数接口描述: GPA(参数...)

裁判测试程序样例:
 

lst=list(map(eval,input().split())) GPA(*lst)

输入样例1:

在这里给出一组输入。例如:

90 95 87

输出样例1:

在这里给出相应的输出。例如:

4.00

输入样例2:

在这里给出一组输入。例如:

60 73 88 59

输出样例2:

在这里给出相应的输出。例如:

1.38
def GPA(*t):
    sum=0
    for i in t:
        if i>=90:
            sum+=4.5
        elif i>=80:
            sum+=3
        elif i>=70:
            sum+=1.5
        elif i>=60:
            sum+=1
    print('%.2f'%(sum/len(t)))

 

6-24 求多项式的值

分数 30

全屏浏览

切换布局

作者 陈春晖

单位 浙江大学

一元多项式可以用列表表示。如p(x)=1+3x+9x4,可以表示成列表[1,3,0,0,9]。输入列表表示的多项式和x的值,求多项式的值。

函数接口定义:

 

在这里描述函数接口。例如: polyvalue(lst,x)

lst表示多项式,x代表具体的值。

裁判测试程序样例:
 

/* 请在这里填写答案 */ lst=eval(input()) y=float(input()) print("{:.1f}".format(polyvalue(lst,y)))

输入样例:

在这里给出一组输入。例如:

[1,3,0,0,9]
1
输出样例:

在这里给出相应的输出。例如:

13.0
def polyvalue(lst,x):
    sum=0
    for i in range(0,len(lst)):
        sum+=lst[i]*x**i
    return sum

 

6-25 python函数:计算任意个数的乘积

分数 10

全屏浏览

切换布局

作者 gllypx

单位 桂林学院

实现imulti()函数,参数个数不限,返回所有参数的乘积

函数接口定义:

函数接口:
imulti( )

可以输入任意个整数或实数。

裁判测试程序样例:

/* 请在这里填写答案 */
在这里给出函数被调用进行测试的例子。例如:
k=imulti(2,1,3)
print(k)
p=imulti(2,1,3,2)
print(p)

输入样例:

在这里给出一组输入。例如:

2 1 3
2 1 3 2
输出样例:

在这里给出相应的输出。例如:

6
12
def imulti(*t):
    sum=1
    for i in t:
        sum*=i
    return sum

 

6-26 python函数:求m到n之和

分数 10

全屏浏览

切换布局

作者 gllypx

单位 桂林学院

本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。

函数接口定义:

函数接口:
sum(m,n)

m<n,m和n可以是负数

裁判测试程序样例:

/* 请在这里填写答案 */
在这里给出函数被调用进行测试的例子。例如:
m=int(input())
n=int(input())
print(sum(m,n))

输入样例:

在这里给出一组输入。例如:

-1
5
输出样例:

在这里给出相应的输出。例如:

14
def sum(m,n):
    sum=0
    for i in range(m,n+1):
        sum+=i
    return sum

 

6-27 python函数:递归求Fibonacci数列

分数 10

全屏浏览

切换布局

作者 gllypx

单位 桂林学院

本题要求实现求Fibonacci(斐波那契)数列项的函数。Fibonacci数列的定义如下:

f(n)=f(n−2)+f(n−1) (n≥3),其中f(1)=1,f(2)=1。

函数接口定义:

函数接口:
f(n)

函数f应返回第n个Fibonacci数。题目保证输入输出在整型范围内。建议用递归实现。

裁判测试程序样例:
/* 请在这里填写答案 */

在这里给出函数被调用进行测试的例子。例如:
n=int(input())
print(f(n))

输入样例:

在这里给出一组输入。例如:

6
输出样例:

在这里给出相应的输出。例如:

8
def f(n) :
    if n==1:
        return 1
    elif n==2:
        return 1
    elif n>2:
        return f(n-1)+f(n-2)

 

6-28 python函数:对字符串数值类型判断

分数 10

全屏浏览

切换布局

作者 gllypx

单位 桂林学院

实现isNum()函数,参数为一个字符串,如果这个字符串属于整数(十进制)、浮点数或复数的表示,返回True,否则返回False。

函数接口定义:

函数接口:
isNum(x)

x是个字符串

裁判测试程序样例:

/* 请在这里填写答案 */
在这里给出函数被调用进行测试的例子。例如:
x=input()
print(isNum(x))
输入样例:

在这里给出一组输入。例如:

12.345
输出样例:

在这里给出相应的输出。例如:

True
输入样例:

在这里给出一组输入。例如:

5+3.2
输出样例:

在这里给出相应的输出。例如:

False
def isNum(s):
    try:
        # 尝试将字符串转换为复数
        complex(s)
        return True
    except ValueError:
        try:
            # 尝试将字符串转换为浮点数
            float(s)
            return True
        except ValueError:
            try:
                # 尝试将字符串转换为整数
                int(s)
                return True
            except ValueError:
                return False

 

6-30 编写生成斐波那契数列的函数并调用。(升级版v2.0)

分数 12

全屏浏览

切换布局

作者 郭堂瑞

单位 湖北文理学院

本题要求实现一个函数,可实现计算最后一项小于指定值的斐波那契数列。

函数接口定义:

在这里描述函数接口。例如:
def fib(n):

n是用户传入的参数。 函数须输出最后一项小于指定值的斐波那契数列。

裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
'''
你写的函数在这里
'''

fib(input())

输入样例1:

在这里给出一组输入。例如:

1000

输出样例1:

在这里给出相应的输出。例如:

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 

输入样例2:

在这里给出一组输入。例如:

1

输出样例2:

在这里给出相应的输出。例如:

1 1

输入样例3:

在这里给出一组输入。例如:

-50

输出样例3:

在这里给出相应的输出。例如:

输入数据错误!
def fib(n):
    n=int(n)
    if n<=0:
        print('输入数据错误!')
        return
    list=[1,1]
    i=1
    if n==1:
        print('1 1')
        return 
    while list[i-1]+list[i]<n:
        list.append(list[i-1]+list[i])
        i=i+1
    for i in list:
        print(i,end=' ')

 

6-31 使用递归法对整数进行因数分解,输出成其质因数相乘的形式。

分数 10

全屏浏览

切换布局

作者 郭堂瑞

单位 湖北文理学院

本题要求实现一个函数,可将任一正整数分解为其质因数相乘的形式。

函数接口定义:

在这里描述函数接口。例如:
def factors(num):

num是用户传入的参数。 num的值是正整数。
注意:这里函数只有一个参数。

裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:

'''
你写的函数在这里
'''

facs=[]
n=int(input())
factors(n)
result='*'.join(map(str,facs))
if n==eval(result):
    print(n,'='+result)
输入样例:

在这里给出一组输入。例如:

1001
输出样例:

在这里给出相应的输出。例如:

1001 =7*11*13
import math
def factors(num):
    for i in range(2,int(math.sqrt(num)+1)):
        if num%i==0:
            facs.append(i)
            factors(num//i)
            break
    else:
        facs.append(num)

 

6-32 本题是一个demo函数,通过本程序体会位置参数的特点。

分数 2

全屏浏览

切换布局

作者 郭堂瑞

单位 湖北文理学院

本题是一个demo函数,通过本程序体会位置参数的特点。

函数接口定义:

在这里描述函数接口。例如:
def demo(a,b,c):

a、b、c都是用户传入的参数。

裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
'''
你写的函数在这里
'''

input_1=input()
input_2=input()
input_3=input()
demo(input_1,input_2,input_3)
输入样例:

在这里给出一组输入。例如:

1
2
3
输出样例:

在这里给出相应的输出。例如:

1 2 3
def demo(a,b,c):
    print(a,b,c)

 

6-33 本题是一个demo函数,通过本程序体会默认值参数的特点。

分数 2

全屏浏览

切换布局

作者 郭堂瑞

单位 湖北文理学院

本题是一个demo函数,通过本程序体会默认值参数的特点。

函数接口定义:

在这里描述函数接口。例如:
def demo(a,b,c=5):

a、b、c都是形式参数。

裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
'''
你写的函数在这里
''' 

input_1=input()
input_2=input()
demo(input_1,input_2)
输入样例:

在这里给出一组输入。例如:

a
b
输出样例:

在这里给出相应的输出。例如:

a b 5
def demo(a,b,c=5):
    print(a,b,c)

 

6-34 本题是一个demo函数,通过本程序体会关键参数的特点。

分数 2

全屏浏览

切换布局

作者 郭堂瑞

单位 湖北文理学院

本题是一个demo函数,通过本程序体会关键参数的特点。

函数接口定义:

在这里描述函数接口。例如:
def demo(a,b,c):

a、b、c都是形式参数。

裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
'''
你写的函数在这里
'''

input_1=input()
input_2=input()
input_3=input()
demo(c=input_1,a=input_2,b=input_3)
输入样例:

在这里给出一组输入。例如:

1
2
3
输出样例:

在这里给出相应的输出。例如:

2 3 1

 

def demo(a,b,c):
    print(a,b,c)

6-35 编写函数,接收字符串参数,返回一个元组,其中第一个元素为大写字母个数,第二个元素为小写字母个数。

分数 10

全屏浏览

切换布局

作者 郭堂瑞

单位 湖北文理学院

编写函数,接收字符串参数,返回一个元组,其中第一个元素为大写字母个数,第二个元素为小写字母个数。

函数接口定义:

在这里描述函数接口。例如:
def demo(s):

s是形式参数,是字符串类型。

裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
print(demo(input()))
输入样例:

在这里给出一组输入。例如:

addfdEEEEE
输出样例:

在这里给出相应的输出。例如:

(5, 5)
def demo(s):
    a1=0
    a2=0
    tup=tuple()
    for i in s:
        if i>='A' and i<='Z':
            a1+=1
        elif i>='a' and i<='z':
            a2+=1
    tup=tup+(a1,)
    tup=tup+(a2,)
    return tup

 

6-36 编写函数,接收一个正整数t为参数,打印杨辉三角前t行。

分数 10

全屏浏览

切换布局

作者 郭堂瑞

单位 湖北文理学院

编写函数,接收一个正整数t为参数,打印杨辉三角前t行。

函数接口定义:

在这里描述函数接口。例如:
def yanghui(t):

t是用户传入的数据,是正整数。

裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
'''
你写的函数会在这个位置
'''

yanghui(int(input()))
输入样例:

在这里给出一组输入。例如:

5
输出样例:

在这里给出相应的输出。例如:

[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
def yanghui(t):
    # 初始化第一行为 [1]
    row = [1]
    print(row)
    # 生成每一行
    for _ in range(1, t):
        next_row = [1]  # 每一行的第一个元素都为1
        for j in range(1, len(row)):
            # 计算当前行的每个元素
            next_row.append(row[j - 1] + row[j])
        next_row.append(1)  # 每一行的最后一个元素都为1
        print(next_row)
        row = next_row

 

6-37 编写函数,接收圆的半径作为参数,返回圆的面积。

分数 15

全屏浏览

切换布局

作者 郭堂瑞

单位 湖北文理学院

编写函数,接收圆的半径作为参数,返回圆的面积。

函数接口定义:

在这里描述函数接口。例如:
def circleArea(r):

r是用户传入的参数。r需要确保是数值(正整数或实数),才能进行圆面积的计算。

裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
from math import pi as PI
'''
你写的函数会在这个位置
'''
print(circleArea(input())
输入样例:

在这里给出一组输入。例如:

3
输出样例:

在这里给出相应的输出。例如:

28.274333882308138
def circleArea(r):
    r=int(r)
    return r*r*PI

 

6-38 编写函数,接收参数a和n,计算并返回形式如a+aa+aaa+aaaa+…+aaa…aaa的表达式前n项的值,其中a为小于10的自然数。

分数 10

全屏浏览

切换布局

作者 郭堂瑞

单位 湖北文理学院

编写函数,接收参数a和n,计算并返回形式如a+aa+aaa+aaaa+…+aaa…aaa的表达式前n项的值,其中a为小于10的自然数。

函数接口定义:

在这里描述函数接口。例如:
def demo(a, n):

a、n均为用户传入的参数,类型为整数。

裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
'''
你写的函数在这里
'''
x=list(map(int,input().split(',')))
print(demo(x[0],x[1]))
输入样例:

在这里给出一组输入。例如:

3,4
输出样例:

在这里给出相应的输出。例如:

3702
def demo(a, n):
    k=a
    sum=0
    for i in range(0,n):
        sum+=k
        k=k*10+a
    return sum

 

6-39 特殊的数

分数 10

全屏浏览

切换布局

作者 lsr

单位 枣庄学院

一个特殊的正整数,它加上150后是一个完全平方数,再加上136又是一个完全平方数。从键盘输入 一个整数 n,求符合条件从n开始的最小的一个数。
用函数来实现判断一个数的是否是完全平方数。

函数接口定义:

 

在这里描述函数接口。例如: def Perfectsquare (x )

裁判测试程序样例:
 

在这里给出函数被调用进行测试的例子。例如: /* 请在这里填写答案 */ n = int(input()) while True: if Perfectsquare(n+150): if Perfectsquare(n+136+150): print(n) break n = n+1

输入样例:

在这里给出一组输入。例如:

10
输出样例:

在这里给出相应的输出。例如:

75
def  Perfectsquare (x):
    for i in range(1,x):
        if i*i==x:
            return True
    else:
        return False

 

6-40 偶数是两个素数的和

分数 20

全屏浏览

切换布局

作者 lsr

单位 枣庄学院

编写函数,接收一个正偶数为参数,输出两个素数,并且这两个素数之和等于原来的正偶数。如果存在多组符合条件的素数,则全部输出。

函数接口定义:

 

在这里描述函数接口。例如: def evenprimesum( n ):

在这里解释接口参数。n 为传递的整数,不一它是偶数,也不一定是大于0的数据。函数将所有是偶数的素数输出,输出格式为:素数 + 素数 = 偶数,数据之间分隔符为一个空格

裁判测试程序样例:
 

在这里给出函数被调用进行测试的例子。例如: /* 请在这里填写答案 */ n = int(input()) evenprimesum(n)

输入样例:

在这里给出一组输入。例如:

100
输出样例:

在这里给出相应的输出。例如:

3 + 97 = 100
11 + 89 = 100
17 + 83 = 100
29 + 71 = 100
41 + 59 = 100
47 + 53 = 100
def check(n):
    if n<2:
        return False
    for i in range(2,n):
        if n%i==0:
            return False
    return True

def  evenprimesum( n ):
    for i in range(2,n//2):
        if check(i):
            if check(n-i):
                print('%d + %d = %d'%(i,n-i,n))

 

6-41 函数的定义与调用

分数 20

全屏浏览

切换布局

作者 冰冰

单位 广东东软学院

编写一个名为collatz()的函数,它有一个名为number的参数:

  1. 如果number是偶数,那么collatz()就打印number加上2
  2. 如果number是奇数,那么collatz()就打印number乘以2

函数接口定义:

def collatz(number)
裁判测试程序样例:
/* 请在这里填写答案 */
number = int(input())
result = collatz(number)
print("输出结果为:", result)

输入样例:

在这里给出一组输入。例如:

7

输出样例:

在这里给出相应的输出。例如:

输出结果为: 14
def collatz(number):
    if number%2==0:
        return number+2
    else:
        return number*2

 

6-42 接收n个数字,求这些参数之和

分数 5

全屏浏览

切换布局

作者 冰冰

单位 广东东软学院

接收n个数字,求这些参数数字的和。

函数定义:
sum_func(*args)

提示:args为可变参数,其可接受若干个实参值,并将接收到的值组装为一个元组。

裁判测试程序样例:
/* 请在这里填写答案 */

result = sum_func(1, 2, 3, 7, 4, 5, 6)
print(result)

输入样例:
输出样例:

在这里给出相应的输出。

28
def sum_func(*args):
    sum=0
    for i in args:
        sum+=i
    return sum

 

6-43 编写函数,判断用户传入的列表长度并完成切片

分数 5

全屏浏览

切换布局

作者 冰冰

单位 广东东软学院

编写一个函数,判断用户传入的列表长度是否大于2,如果大于2,只保留前两个,并将新内容返回给调用者。

函数定义:
def func(list1)
裁判测试程序样例:
/* 请在这里填写答案 */

print(func([1, 2, 3, 4]))
print(func([5, 6]))

输入样例:
输出样例:

在这里给出相应的输出。

[1, 2]
[5, 6]
def func(list1):
    if len(list1)>2:
        list=[]
        list.append(list1[0])
        list.append(list1[1])
        return list
    else:
        return list1

 

6-42 输出闰年

分数 10

全屏浏览

切换布局

作者 python备课组

单位 福州大学至诚学院

编写程序,输出1900~2020年中所有的闰年,每行输出5个年份。要求定义一个函数isLeap(),该函数用来判断某年是否为闰年,是闰年则函数返回True,否则返回 False。

函数接口定义:

 

在这里描述函数接口。例如: def isLeap(y):

函数参数y表示年份,函数要返回True或False。

裁判测试程序样例:
 

/* 请在这里填写答案 */ n=0 for year in range(1900,2021): if isLeap(year)==True: print(year,end=' ') n+=1 if n%5==0:print()

输入样例:

在这里给出一组输入。例如:

 
输出样例:

在这里给出相应的输出。例如:

1904 1908 1912 1916 1920 
1924 1928 1932 1936 1940 
1944 1948 1952 1956 1960 
1964 1968 1972 1976 1980 
1984 1988 1992 1996 2000 
2004 2008 2012 2016 2020
def isLeap(y):
    if y%400==0 or (y%100!=0 and y%4==0):
        return True
    else:
        return False

 

6-43 使用函数统计数字字符在某数字中出现的个数

分数 10

全屏浏览

切换布局

作者 冰冰

单位 广东东软学院

设计函数,统计数字字符在某数字中出现的个数。

函数接口定义:

 

CountDigit(number,digit )

其中,number是整数,digit为[1, 9]区间内的整数数值;返回number中digit出现的次数。

裁判测试程序样例:
 

/* 请在这里填写答案 */ number, digit = input().split() number = int(number) digit = int(digit) count = CountDigit(number, digit) print("Number of digit {} in {}:{}".format(digit, number, count))

输入样例:

在这里给出一组输入。例如:

-21252 2
输出样例:

在这里给出相应的输出。例如:

Number of digit 2 in -21252:3
def CountDigit(number,digit ):
    sum=0
    number=str(number)
    for i in number:
        if i==str(digit):
            sum+=1
    return sum

 

6-44 python函数:求两个数的和及差

分数 5

全屏浏览

切换布局

作者 gllypx

单位 桂林学院

本题要求实现一个函数fun(),可计算任意两个数的和及差。

函数接口定义:

函数接口:
fun(x,y)

其中 x,y可以是实数,也可以是整数。

裁判测试程序样例:
/* 请在这里填写答案 */

在这里给出函数被调用进行测试的例子:
x=eval(input())
y=eval(input())
a,b=fun(x,y)
print(a,b)

输入样例:
5
8
输出样例:

在这里给出相应的输出:

13 -3
def fun(x,y):
    return x+y,x-y

 

6-45 实现isOdd函数

分数 5

全屏浏览

切换布局

作者 郭堂瑞

单位 湖北文理学院

本题要求实现一个函数,可判断一个整数是否为奇数,如果是,返回True,否则返回False

函数接口定义:

 

def isOdd (n):

n是用户传入的参数,为整数

裁判测试程序样例:
 

/* 请在这里填写答案 */ n=int(input()) print(n,"是奇数") if isOdd(n) else print(n,"不是奇数")

输入样例:

在这里给出一组输入。例如:

18 
输出样例:

在这里给出相应的输出。例如:

18不是奇数
def isOdd (n):
    if n%2==0:
        return False
    else:
        return True

 

本人初学python,题目集仅供参考,代码写的烂勿喷。。。。。

  • 28
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值