打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python经典基础习题(函数)_python函数练习题

目录

1.编写函数,实现根据键盘输入的长、宽、高之值计算长方体体积。

2.编写函数,使用递归函数f(n)实现斐波那契数列中小于等于参数n的所有值。

3.编写函数,从键盘输入一个整数,判断其是否为完全数。所谓完全数,是指这样的数,该数的各因子(除该数本身外)之和正好等于该数本身,例如:6=1+2+3,28=1+2+4+7+14。

4.编写函数,从键盘输入参数n,使用递归函数H(n)实现下列特征方程中小于等于参数n的所有值。 H(0)=0; H(1)=1; H(2)=2; H(n)= H(n)+9H(n-2)-9H(n-3)

5.编写函数,实现折半查找。

6.编写函数,从键盘输入参数x和n,计算并显示形如x+xx +xxx + xxxx + xxxxx+xxx…xxx+ 的表达式前n项的值。

7.编写函数,从键盘输入参数n,计算并显示表达式1 +1/2 –1/3 + 1/4 –1/5 + 1/6+… +(-1)n/n 的前n项之和。

8.编写函数,从键盘输入一字符串,判断该字符串是否为会回文,所谓回文是指,从前向后读和从后向前读是一样的。

运行结果:

9.编写函数,从键盘输入一字符串,把其中的各个字符颠倒,标点符号不颠倒,例如,'I enjoy reading!’,经过函数调用后变为'gnidaer yojne I’。

10.佩奇去超市购买54元巧克力和53元果冻,货币面值有20、10、2、1元,按付款货币数量最少原则,佩奇需要付给超市多少数量的货币,编写函数实现该算法。


1.编写函数,实现根据键盘输入的长、宽、高之值计算长方体体积。

程序代码:

  1. x = int(input("请输入长方体的长:"))
  2. y = int(input("请输入长方体的宽:"))
  3. z = int(input("请输入长方体的高:"))
  4. def rectangle_volume(rectangle_length,rectangle_width,rectangle_height):
  5. rectangle_volume_true = rectangle_height*rectangle_width*rectangle_length
  6. print("矩形的体积为:",rectangle_volume_true)
  7. return 0
  8. rectangle_volume(x,y,z)

运行结果:

  1. C:\ProgramData\Anaconda3\python.exe D:/blue4/01.py
  2. 请输入长方体的长:8
  3. 请输入长方体的宽:4
  4. 请输入长方体的高:2
  5. 矩形的体积为: 64
  6. 进程已结束,退出代码0

2.编写函数,使用递归函数f(n)实现斐波那契数列中小于等于参数n的所有值。

程序代码:

  1. def fib(n):
  2. a,b = 1,1
  3. while a <= n:
  4. print(a,end=" ")
  5. a,b = b,a+b
  6. fib(1000)

运行结果:

  1. C:\ProgramData\Anaconda3\python.exe D:/blue4/02.py
  2. 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
  3. 进程已结束,退出代码0

3.编写函数,从键盘输入一个整数,判断其是否为完全数。所谓完全数,是指这样的数,该数的各因子(除该数本身外)之和正好等于该数本身,例如:6=1+2+3,28=1+2+4+7+14。

程序代码:

  1. number = int(input("请输入一个数字:"))
  2. a = []
  3. def complete_number(number):
  4. for i in range(1,number):
  5. if number % i == 0:
  6. a.append(i)
  7. if sum(a) == number:
  8. print("{}是完美数".format(number))
  9. else:
  10. print("{}不是完美数".format(number))
  11. complete_number(number)

运行结果:

  1. C:\ProgramData\Anaconda3\python.exe D:/blue4/03.py
  2. 请输入一个数字:6
  3. 6是完美数
  4. 进程已结束,退出代码0

4.编写函数,从键盘输入参数n,使用递归函数H(n)实现下列特征方程中小于等于参数n的所有值。 H(0)=0; H(1)=1; H(2)=2; H(n)= H(n)+9H(n-2)-9H(n-3)

程序代码:

  1. number= int(input("请输入参数n:"))
  2. def H(n):
  3. if 0 <= n < 3:
  4. return n
  5. else:
  6. return H(n-1)+9*H(n-2)-9*H(n-3)
  7. print("函数H(n)小于等于参数n的所有值为:")
  8. for i in range(number+1):
  9. print(H(i),end=" ")

运行结果:

  1. C:\ProgramData\Anaconda3\python.exe D:/blue4/04.py
  2. 请输入参数n:5
  3. 函数H(n)小于等于参数n的所有值为:
  4. 0 1 2 11 20 101
  5. 进程已结束,退出代码0

5.编写函数,实现折半查找。

程序代码:

  1. from random import randint
  2. def binarySearch(lst,value):
  3. start = 0
  4. end = len(lst)
  5. while start <= end:
  6. middle = (start+end)//2
  7. if value == lst[middle]:
  8. return middle
  9. elif value > lst[middle]:
  10. start = middle + 1
  11. elif value < lst[middle]:
  12. end = middle - 1
  13. return False
  14. lst = [randint(1,50) for i in range(1,20)]
  15. lst.sort()
  16. print(lst)
  17. result = binarySearch(lst,10)
  18. if result != False:
  19. print("查找成功!位置在:",result+1)
  20. else:
  21. print("查找失败!")

运行结果:

  1. C:\ProgramData\Anaconda3\python.exe D:/blue4/05.py
  2. [2, 6, 8, 10, 11, 12, 13, 19, 24, 32, 37, 37, 37, 39, 41, 44, 45, 45, 48]
  3. 查找成功!位置在: 4
  4. 进程已结束,退出代码0

6.编写函数,从键盘输入参数x和n,计算并显示形如x+xx +xxx + xxxx + xxxxx+xxx…xxx+ 的表达式前n项的值。

程序代码:

  1. x = int(input("请输入最开始的一个数:"))
  2. n = int(input("请输入你想求和的项数:"))
  3. a = 0
  4. b = 0
  5. def jie_fib_sum(x,n):
  6. global a,b
  7. while n:
  8. a += x
  9. n -= 1
  10. x *= 10
  11. b += a
  12. return b
  13. result = jie_fib_sum(x,n)
  14. print("前n项和为:",result)

运行结果:

  1. C:\ProgramData\Anaconda3\python.exe D:/blue4/06.py
  2. 请输入最开始的一个数:1
  3. 请输入你想求和的项数:5
  4. 前n项和为: 12345
  5. 进程已结束,退出代码0

7.编写函数,从键盘输入参数n,计算并显示表达式1 +1/2 –1/3 + 1/4 –1/5 + 1/6+… +(-1)n/n 的前n项之和。

程序代码:

  1. n = int(input("请输入你想进行计算的数字:"))
  2. count = 1
  3. def add(n):
  4. global count
  5. for i in range(2,n+1):
  6. if i%2 == 0:
  7. count += (1/i)
  8. else:
  9. count -= (1/i)
  10. print("前{}项和为:".format(n),count)
  11. add(n)

运行结果:

  1. C:\ProgramData\Anaconda3\python.exe D:/blue4/07.py
  2. 请输入你想进行计算的数字:2
  3. 前2项和为: 1.5
  4. 进程已结束,退出代码0

8.编写函数,从键盘输入一字符串,判断该字符串是否为会回文,所谓回文是指,从前向后读和从后向前读是一样的。

程序代码:

  1. string = input("请输入一字符串:")
  2. string_list = []
  3. for i in string:
  4. string_list.append(i)
  5. def return_word(lis):
  6. start = 0
  7. end = len(lis)
  8. if lis[start] == lis[end-1]:
  9. start += 1
  10. end -=1
  11. if lis[start] == lis[end-1]:
  12. print("{}是回文".format(string))
  13. else:
  14. print("{}不是回文".format(string))
  15. return_word(string_list)

运行结果:

  1. C:\ProgramData\Anaconda3\python.exe D:/blue4/08.py
  2. 请输入一字符串:杜小杜
  3. 杜小杜是回文
  4. 进程已结束,退出代码0

9.编写函数,从键盘输入一字符串,把其中的各个字符颠倒,标点符号不颠倒,例如,'I enjoy reading!’,经过函数调用后变为'gnidaer yojne I’。

程序代码:

由于太懒了就做了一个“!”的字符颠倒。代码中有两个感叹号,是因为中英文输入的感叹号不同,要是只写中文感叹号或是英文感叹号可能会出现报错情况。

  1. string = input("请输入一字符串:")
  2. string_list = []
  3. keep = []
  4. lis_new = []
  5. last = []
  6. for i in string:
  7. string_list.append(i)
  8. def replace(lis):
  9. count = 0
  10. end = len(lis)
  11. if end == 1:
  12. lis_ol = "".join(lis)
  13. print(lis_ol)
  14. else:
  15. for index,nums in enumerate(lis):
  16. if nums == "!" or nums == "!":
  17. keep.append(index)
  18. else:
  19. continue
  20. for i in range(end):
  21. keep_new = [i for i in keep]
  22. lis_new.append(i)
  23. lis_new_last = list(set(lis_new) - set(keep_new))
  24. if len(keep) == 0:
  25. lis[i], lis[end - i - 1] = lis[end - i - 1], lis[i]
  26. count += 1
  27. if count == (end // 2)+1:
  28. break
  29. if len(keep) != 0:
  30. lis_new_last.reverse()
  31. for l in (lis_new_last):
  32. if l == end - i - 2:
  33. lis[i],lis[l] = lis[l],lis[i]
  34. lis_ol ="".join(lis)
  35. print(lis_ol)
  36. replace(string_list)

运行结果:

  1. C:\ProgramData\Anaconda3\python.exe D:/blue4/09.py
  2. 请输入一字符串:我愛杜杜!
  3. 杜杜愛我!
  4. 进程已结束,退出代码0

10.佩奇去超市购买54元巧克力和53元果冻,货币面值有20、10、2、1元,按付款货币数量最少原则,佩奇需要付给超市多少数量的货币,编写函数实现该算法。

程序代码:

  1. def min_number(n):
  2. if n <= 0:
  3. print("错误!请检查您的付款金额")
  4. else:
  5. x = n // 20
  6. x += 1
  7. print("需要最少货币:",x, "张")
  8. min_number(107)

运行结果:

  1. C:\ProgramData\Anaconda3\python.exe D:/blue4/10.py
  2. 需要最少货币: 6 张
  3. 进程已结束,退出代码0
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
搞金融的同学三小时快速入门python从零入门量化交易系列
vba里使用python自定义函数(xlwings)
Python数据分析(我行,你也行!) 1.1入门
如何动态调试Python的第三方库
PyScript:让 Python 在 Web 中跑起来
教你如何进行Python代码的脚本化运行
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服