《Python语言程序设计》——函数习题练习

1.jmu-java&python-统计字符个数

编写程序统计1行字符串中:

  1. 不同字符的个数。
  2. 每种字符出现的次数。

函数接口定义:

Freq(line) 

函数功能:该函数统计不同字符出现的次数,并最后按照字符升序进行输出。输出格式见输出样例。
参数说明:line为需要统计的字符串。

裁判测试程序样例:

/* 请在这里填写答案 */
line = input()
Freq(line)

输出格式说明:

  1. 第1行输出不同字符的个数。
  2. **=**两边应有空格。
  3. 上述输出样例中第2行的字符是空格。
  4. 输出按照字符升序排列。

代码如下:

def Freq(line):
    arr = {}
    for i in line:
        arr[i] = arr.get(i, 0) + 1
    arr = list(arr.items())
    arr.sort(key=lambda x: x[0])
    print(len(arr))
    for i in range(len(arr)):
        m, n = arr[i]
        print("{0} = {1}" .format(m, n))

2.使用函数求余弦函数的近似值

本题要求实现一个函数,用下列公式求cos(x)近似值,精确到最后一项的绝对值小于eps(绝对值小于eps的项不要加):

cos(x)=0!x0​−2!x2​+4!x4​−6!x6​+...

函数接口定义: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))

 代码如下:

        i=i+2
    for j in range(0,i,2):
        if j%4==0:
            s=s+x**j/A(j)
        else:
            s=s-x**j/A(j)
    return s
def A(a):
    if a==0:
        return 1
    sum=a*A(a-1)
    return sum

 

3. jmu-python-计算薪资

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

1.png

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

函数接口定义:

bonus(sales)

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

裁判测试程序样例:

/* 请在这里填写答案 */
sales=eval(input())
print("%.2f"%bonus(sales))

 

代码如下:

def bonus(sales):
    a=float(sales)
    if a<=10000:
        return 5000
    elif 10000<a<=20000:
        return 5000+a*0.1
    elif 20000<a<=50000:
        return 5000+a*0.15
    elif 50000<a<=100000:
        return 5000+a*0.2
    else:
        return 5000+a*0.25

 

 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))

 代码如下:

def A(m):
    if m==1:
        return False
    for i in range(2,int(pow(m,1/2)+1)):
        if m%i==0:
            return False
    return True
def B(m,n):
    sum=0
    for i in range(m,n+1):
        if A(i)==True:
            sum+=i
    return sum

 

5. 完数统计

完数定义:一个数的所有因子(包括1)之和等于它自身,这个数就是完数。比如6=1+2+3,6是完数。 本题要求编写程序,计算所有N位完数的个数与列表显示。

函数接口定义:

def wan(n):

在这里解释接口参数。n是一个大于0的正整数。表示几位数。

裁判测试程序样例:

import math

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

n=int(input())
x,lst=wan(n)
print(x)
print(lst)

 代码如下:

def wan(x):
    arr = []
    count=0
    for n in range(int(math.pow(10,x-1)),int(math.pow(10,x))):
        sum=1
        for i in range(2,n):
            if n%i ==0:
                sum+=i
        if sum== n :
            arr.append(sum)
            count +=1
    return count,arr

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

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

函数定义:

def func(list1)

裁判测试程序样例:

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

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

代码如下:

def func(l):
    return l[:2] 

 

7.python函数:递归求Fabonacci数列 

本题要求实现求Fabonacci数列项的函数。Fabonacci数列的定义如下:

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

函数接口定义:

函数接口:
f(n)

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

裁判测试程序样例:

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

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

 代码如下:

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

 

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

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

函数接口定义:

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

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

裁判测试程序样例:

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

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

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

 

 代码如下:

def factors(num):
    if num != 1:
        for i in range(2, num+1):
            if num % i == 0:
                if num/i == 1.0:
                    facs.append(i)
                    break
                else:
                    num = int(num / i)
                    facs.append(i)
            else:
                continue
            return factors(num)

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 非常感谢您的提问。Python语言程序设计基础程序练习题是一系列针对Python编程语言的基础练习题,旨在帮助初学者掌握Python编程语言的基本语法和编程技巧。这些练习题涵盖了Python编程的各个方面,包括变量、数据类型、条件语句、循环语句、函数、模块等等。通过完成这些练习题,学习者可以逐步提高自己的编程能力,掌握Python编程的基本技能,为以后深入学习Python编程打下坚实的基础。 ### 回答2: Python语言是一种简洁且灵活的脚本语言,已经成为许多计算机科学领域的首选语言Python语言有着丰富的标准库和第三方库,这些库能够轻松地完成各种任务,使得Python语言非常适合学习和使用。 Python语言程序设计基础程序练习题可以帮助初学者提高他们的Python编程技能。下面介绍几个简单的Python程序练习,帮助初学者快速上手,提高Python编程技能。 1. 编写一个程序,求1到100之间的所有偶数之和。 解题思路:使用for循环进行遍历,求出所有偶数的和。 ```python sum = 0 for i in range(2, 101, 2): sum += i print("1到100之间的所有偶数之和 =", sum) ``` 2. 编写一个程序,计算任意两个数字之间的和。 解题思路:输入两个数字,使用循环将它们之间的所有数字加起来。 ```python num1 = int(input("请输入第一个数字:")) num2 = int(input("请输入第二个数字:")) sum = 0 for i in range(num1, num2+1): sum += i print(num1, "到", num2, "之间所有数字之和 =", sum) ``` 3. 编写一个程序,计算任意两个数字之间的乘积。 解题思路:输入两个数字,使用循环将它们之间的所有数字相乘。 ```python num1 = int(input("请输入第一个数字:")) num2 = int(input("请输入第二个数字:")) product = 1 for i in range(num1, num2+1): product *= i print(num1, "到", num2, "之间所有数字的乘积 =", product) ``` 4. 编写一个程序,判断一个数是否为质数。 解题思路:如果一个数只能被1和它本身整除,那么这个数就是质数。 ```python num = int(input("请输入一个数字:")) if num < 2: print(num, "不是质数") else: for i in range(2, num): if num % i == 0: print(num, "不是质数") break else: print(num, "是质数") ``` 5. 编写一个程序,将一个字符串倒序输出。 解题思路:使用字符串切片[::-1]即可实现字符串倒序输出。 ```python str = input("请输入一个字符串:") print("倒序输出字符串 =", str[::-1]) ``` 以上是几个简单的Python程序练习,通过这些练习可以提高初学者的Python编程水平。随着学习的深入,可以逐渐挑战更难的Python编程练习,掌握更多的Python编程技能。 ### 回答3: Python语言程序设计是一门非常有用的编程语言,而程序练习题则是Python语言程序设计中非常重要的一步。通过对基础程序练习题的学习和实践,可以帮助学生更好地掌握Python语言的基础知识和编程方法。 在Python语言的基础程序练习题中,最基本的要求就是理解Python语言的基本语法和编程方法。这包括变量定义、数据类型、运算符、控制语句和函数等。此外,还需要了解Python语言中的一些库和模块,例如math库、random库、sys库和os库等。 在练习题中,我们需要编写一些简单的Python程序来解决特定问题。这可以包括编写程序来计算一些数学问题,比如计算圆的周长和面积、计算正弦函数值等等。我们还可以编写一些程序来处理字符串问题,比如字符串的拼接、截取和格式化输出等。 除了理论知识外,实践也是非常重要的。在练习中,学生需要根据问题的要求,选择正确的编程语句和方法来编写一个可以正确运行的程序。学生还需要学会调试程序和解决遇到的错误和问题。 总的来说,基础程序练习题是Python语言程序设计学习的一部分,它对于学生掌握Python语言的基础知识和编程技巧具有重要作用。通过练习和实践,学生可以更好地理解Python语言的编程方法和应用,在未来的学习和工作中,也能更加游刃有余地应用Python语言进行编程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值