依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 137|回复: 0

python的函数编程

[复制链接] 主动推送

6958

主题

7010

帖子

7266

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7266
发表于 2023-12-21 13:54:52 | 显示全部楼层 |阅读模式
python的函数编程
1、找出100~300中所有的挛生素数。挛生素数是指相差2的素数对,如了和5、5和7、11和13等。函数prime的功能是判断n是否力素数,用True表示是素数,用False表示非素数。
2、求(1+2+3+.+9+10) + (61+62+.
+69+70)的和(用自定义函数实现)。
3、用递归函数fibo求斐波拉且数列的第n项。程定中输出斐波拉且数列的前20项,要求每行输出5个数据,每个数据输出宽度为8并在宽度内右对齐。
输出结果如下:
1 1 2 3 5
8 13 21 34 35
89 144 233 377 610
987 1597 2584 4181 6765
4、已知宇符串s中保存了一组以空格分隔的水果名,凋用函数fruitsort返回按数量降序排列的水果名及水果数量。函数中先将水果名称从字符串s中拆分出来存入列表fruits,然后統汁各类水果的数量存入字典d,并按数量降序排列后返回。
5、用递归法求阶乘,程序要求输出0~9十个数的阶
乘,按一行两个结果的形式输出,效果如下所示。
0!=1 1!=1
2!=2 3!=6
4!=24 5!=120
6!=720 7!=5040
81=40320 9!=362880
6、把4到20中所有的偶数分解成两个素数的和。例
如:6-3+3,20-3+17,20=13+7等。
7、按升序輸出100~999的水仙花数。
8、小明做打字测试,请编写程序计算小明输入字符串的准确率。

1、找出100~300中所有的挛生素数。挛生素数是指相差2的素数对,如了和5、5和7、11和13等。函数prime的功能是判断n是否力素数,用True表示是素数,用False表示非素数。
  1. def prime(n):
  2.     if n < 2:
  3.         return False
  4.     for i in range(2, int(n**0.5) + 1):
  5.         if n % i == 0:
  6.             return False
  7.     return True
  8. def twin_primes():
  9.     twins = []
  10.     for num in range(100, 301):
  11.         if prime(num) and prime(num + 2):
  12.             twins.append((num, num + 2))
  13.     return twins
  14. twins = twin_primes()
  15. for twin in twins:
  16.     print(twin)
复制代码
运行结果如下:
0003.png
2、求(1+2+3+.+9+10) + (61+62+.+69+70)的和(用自定义函数实现)。
  1. def calculate_sum():
  2.     sum1 = sum(range(1, 11))
  3.     sum2 = sum(range(61, 71))
  4.     return sum1 + sum2
  5. result = calculate_sum()
  6. print(result)
复制代码

3、用递归函数fibo求斐波拉且数列的第n项。程定中输出斐波拉且数列的前20项,要求每行输出5个数据,每个数据输出宽度为8并在宽度内右对齐。
输出结果如下:
1 1 2 3 5
8 13 21 34 35
89 144 233 377 610
987 1597 2584 4181 6765
  1. def fibo(n):
  2.     if n <= 1:
  3.         return n
  4.     return fibo(n - 1) + fibo(n - 2)
  5. for i in range(20):
  6.     if i % 5 == 0 and i != 0:
  7.         print()
  8.     print(f"{fibo(i):>8}", end=" ")
复制代码

4、已知宇符串s中保存了一组以空格分隔的水果名,凋用函数fruitsort返回按数量降序排列的水果名及水果数量。函数中先将水果名称从字符串s中拆分出来存入列表fruits,然后統汁各类水果的数量存入字典d,并按数量降序排列后返回。
  1. def fruitsort(s):
  2.     fruits = s.split()
  3.     fruit_count = {}
  4.     for fruit in fruits:
  5.         fruit_count[fruit] = fruit_count.get(fruit, 0) + 1
  6.     sorted_fruits = sorted(fruit_count.items(), key=lambda x: x[1], reverse=True)
  7.     return sorted_fruits
  8. s = "apple orange banana apple orange apple"
  9. result = fruitsort(s)
  10. for fruit, count in result:
  11.     print(f"{fruit}: {count}")
复制代码


5、用递归法求阶乘,程序要求输出0~9十个数的阶
乘,按一行两个结果的形式输出,效果如下所示。
0!=1 1!=1
2!=2 3!=6
4!=24 5!=120
6!=720 7!=5040
81=40320 9!=362880
  1. def factorial(n):
  2.     if n == 0:
  3.         return 1
  4.     return n * factorial(n - 1)
  5. for i in range(10):
  6.     if i % 2 == 0 and i != 0:
  7.         print()
  8.     print(f"{i}! = {factorial(i)}", end=" ")
复制代码

6、把4到20中所有的偶数分解成两个素数的和。例如:6-3+3,20-3+17,20=13+7等。
  1. def is_prime(n):
  2.     if n < 2:
  3.         return False
  4.     for i in range(2, int(n**0.5) + 1):
  5.         if n % i == 0:
  6.             return False
  7.     return True
  8. def decompose_even():
  9.     results = []
  10.     for num in range(4, 21, 2):
  11.         for i in range(2, num // 2 + 1):
  12.             if is_prime(i) and is_prime(num - i):
  13.                 results.append((num, i, num - i))
  14.                 break
  15.     return results
  16. decompositions = decompose_even()
  17. for decomposition in decompositions:
  18.     print(f"{decomposition[0]} = {decomposition[1]} + {decomposition[2]}")
复制代码

7、按升序輸出100~999的水仙花数。
  1. def is_armstrong(n):
  2.     digits = [int(digit) for digit in str(n)]
  3.     num_digits = len(digits)
  4.     armstrong_sum = sum([digit**num_digits for digit in digits])
  5.     return armstrong_sum == n
  6. armstrong_numbers = []
  7. for num in range(100, 1000):
  8.     if is_armstrong(num):
  9.         armstrong_numbers.append(num)
  10. armstrong_numbers.sort()
  11. for num in armstrong_numbers:
  12.     print(num)
复制代码

8、小明做打字测试,请编写程序计算小明输入字符串的准确率。
  1. def calculate_accuracy(input_string, target_string):
  2.     correct_count = sum([1 for c1, c2 in zip(input_string, target_string) if c1 == c2])
  3.     accuracy = correct_count / len(target_string) * 100
  4.     return accuracy
  5. input_string = "Hello World"
  6. target_string = "Hello World!"
  7. accuracy = calculate_accuracy(input_string, target_string)
  8. print(f"Accuracy: {accuracy}%")
复制代码




扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员5折;永久VIP免费
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|依星源码资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2024-5-20 12:07

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

快速回复 返回顶部 返回列表