6-1 sdut-使用函数求a+aa+aaa++⋯+aa…aaa(n个a)之和

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

def 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):return sum([int('1' * i) * a for i in range(1, n + 1)])

6-2 sdut-使用函数求区域内的素数之和

设计函数,求指定范围内的素数之和。
函数1:prime§, 用户传入参数p,若它为素数时返回True,否则返回False.
函数2:PrimeSum(m,n),返回区间[m, n]内所有素数的和(其中,1<=m<n)。
函数接口定义:

prime( p ),返回True表示p是素数,返回False表示p不是素数;
PrimeSum(m,n),函数返回素数之和。

在这里解释接口参数。例如:其中 N 和 D 都是用户传入的参数。 N 的值不超过int的范围; D 是[0, 9]区间内的个位数。函数须返回 N 中 D 出现的次数。
裁判测试程序样例:

/* 请在这里填写答案 */
m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))

输入样例:

1 10

输出样例:

17

代码:

def prime(p):if p == 0 or p == 1:return Falsefor i in range(2, int(p ** 0.5) + 1):if p % i == 0:return Falsereturn Truedef PrimeSum(m, n):return sum([i for i in range(m, n + 1) if prime(i) is True])

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

设计函数,统计数字字符在某数字中出现的个数。
函数接口定义:

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 2 in "+str(number)+":",count)

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

-21252 2

输出样例:

Number of digit 2 in -21252: 3

代码:

def CountDigit(number, digit):return str(number).count(str(digit))

6-4 sdut-使用函数输出Fibonacci数列的值与指定范围内Fibonacci数值的个数

设计函数实现:计算第n项Fibonacci数列数值,并求出两正整数a和b所组成的闭区间[a,b](0<a<b≤100000)之间的所有Fibonacci数的数目。
Fibonacci数列,任一项数字是前两项的和(最开始两项均定义为1)的数列, fib(0)=fib(1)=1
函数接口定义:

fib(n)       #函数1
fibs(a, b)  #函数2

fib(n):返回第n项Fibonacci数;
fibs(a, b):返回 [a, b] 中的所有Fibonacci数组成的列表。
n、a、b均为正整数。
裁判测试程序样例:

/* 请在这里填写答案 */
n,a,b=input().split()
n=int(n)
a=int(a)
b=int(b)
fb=fib(n)
print("fib({0}) = {1}".format(n,fb))
fiblist=fibs(a, b)
print(len(fiblist))

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

6 20 100

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

fib(6) = 13
4

代码:

Fib = [1, 1]def fib(n):if n == 0 or n == 1: return 1return fib(n - 1) + fib(n - 2)def fibs(a, b):while (Fib[-1] <= b):Fib.append(Fib[-1] + Fib[-2])return [t for t in Fib if a <= t <= b]

6-5 sdut-利用函数得到缩写词

缩写词是由一个短语中每个单词的第一个字母组成,均为大写。
例如,CPU是短语“central processing unit”的缩写。
函数接口定义:

acronym(phrase);

参数:phrase是字符串短语,函数返回:短语的缩写词。
裁判测试程序样例:

/* 请在这里填写答案 */
phrase=input()
print(acronym(phrase))

输入样例:

central  processing  unit

输出样例:

CPU

代码:

def acronym(phrase):txt = ""for c in [s[0] for s in list(phrase.title().split())]:txt += creturn txt

6-6 sdut-求嵌套列表的平均值

Avg是一个求平均值的函数。它的参数是嵌套列表,求每个元素的平均值。每个元素是列表,至少有1个值。
函数接口定义:

 Avg(lst)

lst是一个二维嵌套列表,该函数返回值是每个元素的平均值组成的列表。
裁判测试程序样例:

/* 请在这里填写答案 */
lst=eval(input())
result=Avg(lst)
for value in result:print("{:.1f}".format(value),end=" ")

输入样例:

[[95,92,80],[66,75,40],[89,72,100,91]]

输出样例:

89.0 60.3 88.0

代码:

def Avg(ls_a):return [(sum(it) / len(it) * 1.0) for it in ls_a]

7-1 sdut-求全排列

输入整数n(3<=n<=7),编写程序输出1,2,…,n整数的全排列,按从小到大的顺序输出。

输入格式:
在一行内,输入正整数n。

输出格式:
按数值从小到大的顺序输出1到n的全排列。每种排列占一行,数字间无空格。

输入样例:

3

输出样例:

123
132
213
231
312
321

代码:

from itertools import *
def per(num):for s in permutations([int(x) for x in range(1, num + 1)]):for it in str(s):if it.isdigit():print(it, end='')print()n = int(input())
per(n)

7-2 sdut-列表元素个数的加权和(1)

输入一个嵌套列表,嵌套层次不限,根据层次,求列表元素的加权的元素个数之和。
第一层每个元素算一个元素,第二层每个元素算2个元素,第三层每个元素算3个元素,第四层每个元素算4个元素,…,以此类推!

输入格式:
在一行中输入一个列表。

输出格式:
在一行中输出加权元素个数值。

输入样例:

[1,2,[3,4,[5,6],7],8]

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

15

代码:

def cycle(s, cnt):sum = 0for it in s:if isinstance(it, int):sum += cntelif isinstance(it, list):sum += cycle(it, cnt + 1)return sums, cnt = eval(input()), 1
print(cycle(s, cnt))

7-3 sdut-列表数字元素加权和(2)

输入一个嵌套列表,嵌套层次不限,根据层次,求列表元素的加权和。

第一层每个元素 的值为:元素值*1,第二层每个元素的值为:元素值*2,第三层每个元素的值为:元素值*3, ...,以此类推!

输入格式:
在一行中输入列表。

输出格式:
在一行中输出元素加权之和。

输入样例:

[1,2,[3,4,[5,6],7],8]

输出样例:

72

代码:

def cycle(s, cnt):sum = 0for it in s:if isinstance(it, int):sum += it * cntelif isinstance(it, list):sum += cycle(it, cnt + 1)return sums, cnt = eval(input()), 1
print(cycle(s, cnt))

7-4 sdut-列表或元组的数字元素求和(yeild)

求列表中数字和,列表中嵌套层次不限。
输入格式:
在一行中输入列表或元组。

输出格式:
在一行中输出数字的和。

输入样例:

[11,2,[3,7],(68,-1),"123",9]

输出样例:

99

代码:

def cycle(s):sum = 0for it in s:if isinstance(it, int):sum += itif isinstance(it, list):sum += cycle(it)if isinstance(it, tuple):sum += cycle(it)return sums = eval(input())
print(cycle(s))

7-5 sdut-验证“哥德巴赫猜想”

著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。

输入格式:
在一行中,给出一个(2, 2 000 000 000]范围内的偶数N。

输出格式:
在一行中,按照格式“N=p+q”输出N的素数分解,其中p ≤ q均为素数。又因为这样的分解不唯一(例如:24还可以分解为7+17),要求必须输出所有解中p最小的解。

输入样例:

24

输出样例:

24=5+19

代码:

def prime(p):if p == 0 or p == 1:return Falsefor i in range(2, int(p ** 0.5) + 1):if p % i == 0:return Falsereturn Truen = int(input())
for i in range(2, n):if prime(i) and prime(n - i):print("%d=%d+%d" % (n, i, n - i))exit()

7-6 sdut-学生互助组队

“一对一学习互助小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。
请你编写程序帮助老师完成这个分配工作,即:在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。

输入格式:
第一行给出正偶数N(≤50),即全班学生的人数。
此后N行,按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)和姓名(不超过8个英文字母的非空字符串),以1个空格分隔。
这里保证本班男女比例是1:1,并且没有并列名次。

输出格式:
每行输出一组两个学生的姓名,其间以1个空格分隔。
名次高的学生在前,名次低的学生在后。
小组的输出顺序按照前面学生的名次从高到低排列。

输入样例:

8
0 Amy
1 Tom
1 Bill
0 Cindy
0 Maya
1 John
1 Jack
0 Linda

输出样例:

Amy Jack
Tom Linda
Bill Maya
Cindy John

代码:

ls_w, ls_m, ls = [], [], []
n = int(input())
for i in range(n):id, name = input().split()if id == '0':ls_w.append(name)else:ls_m.insert(0, name)ls.append(name)
dic1, dic2 = dict(zip(ls_w, ls_m)), dict(zip(ls_m, ls_w))
for i in range(len(ls) // 2):if ls[i] in dic1.keys():print(ls[i], dic1[ls[i]])else:print(ls[i], dic2[ls[i]])

7-7 sdut-求指定层的元素个数

输入一个嵌套列表,再输入层数,求该层的元素个数。

输入格式:
第一行输入列表,第二行输入层数。

输出格式:
在一行中输出元素个数。

输入样例:

[1,2,[3,4,[5,6],7],8]
3

输出样例:

2

代码:

dic = {}
s = eval(input())
n = int(input())
def cycle(s, n):for it in s:dic[n] = dic.get(n, 0) + 1if isinstance(it, list):cycle(it, n + 1)cycle(s, 1)
print(dic.get(n, 0))

因为这学期刚学Python,就当是做个笔记了,代码虽然都能过,但可能不是特别好,有不当的地方欢迎指正,感谢大家的耐心阅读
212丨acc丨2022.11.18

SDUT—Python程序设计实验78(函数)相关推荐

  1. 基于python物流管理系统毕业设计-Python程序设计实验报告二

    安徽工程大学 Python 程序设计 实验报告 班级: 物流192 姓名:刘晨晨 学号:3190505214 日期: 3.21 指导教师:修宇 实验二 顺序结构程序设计(验证性实验) [实验目的] ( ...

  2. python程序设计报告-Python程序设计实验一报告

    Python程序设计实验报告 班级 :_ 物流192_ 姓名 :袁悦 学号 :3190505230 日期 :2020年3月3日 指导老师 :修宇 实验名称实验一 熟悉IDLE和在线编程平台 实验目的 ...

  3. python程序设计实验七_Python程序设计实验报告七:组合数据类型

    安徽工程大学 Python程序设计实验报告 班级物流192姓名芦靓学号3190505217成绩 日期2020.5.27指导老师修宇 [实验名称]实验七 组合数据类型 [实验目的] 熟悉通过序列索引迭代 ...

  4. 基于python物流管理系统毕业设计-Python程序设计实验报告一 :熟悉IDLE和在线编程平台...

    Python程序设计实验报告 班级 物流192 姓名 张羽 学号 3190505221 成绩 日期 3月5日 指导老师 修宇 实验名称 实验一 熟悉IDLE和在线编程平台 实验目的 1.掌握pytho ...

  5. python综合程序设计-Python程序设计实验五:综合运用三种基本结构进行程序设计...

    安徽工程大学 Python程序设计实验报告 班级:物流192 姓名:李心悦 学号:3190505218成绩: 日期:2020. 4.26 指导教师:修宇 [实验名称] 实验五 综合运用三种基本结构进行 ...

  6. 基于python物流管理系统毕业设计-Python程序设计实验报告八:文件

    安徽工程大学 Python程序设计 实验报告 .班级 物流192 姓名张羽学号3190505221成绩 日期2020.6.3指导老师修宇 实验八 文件 [实验目的] 掌握读写文本文件或 CSV 文件, ...

  7. python程序设计实验教程 翟萍 第五章答案_Python程序设计实验教程

    第一部分实 验 指 导 实验1Python概述:Python运行环境3 实验2基本数据类型11 实验2.1Python基本数据处理11 实验2.2Python函数库16 实验3选择结构:选择结构的使用 ...

  8. python程序设计实验配置_20181235 实验三《Python程序设计》实验报告

    # 学号 2019-2020-2 <Python程序设计>实验x报告 课程:<Python程序设计> 班级: 1812 姓名: 周昱涵 学号:20181235 实验教师:王志强 ...

  9. python程序设计实验报告实验程序流程序列化_Python程序设计_教学大纲_段震.doc

    <Python程序设计>教学大纲 安徽大学 计算机科学与技术 学院 2015 年 10 月课程性质与设置目的要求(前言)<Python程序设计>课程是计算机科学与技术学院各专业 ...

  10. python程序设计实验指导书_“Python程序设计”实验指导书.pdf

    Python < 程序设计>实验指导书 董付国 <Python 程序设计 (第2 版)> <Python 程序设计基础 (第2 版)> <Python 可以这 ...

最新文章

  1. linux valgrind Memcheck--内存检查工具
  2. java 并发统计_java并发编程|CountDownLatch计数器
  3. 李彦宏/王坚/王传福等上榜“中国工程院2019院士增选候选人”引争议,实至名归吗?...
  4. 算术平均值滤波matlab程序,基于S7-1200 AD采样的高效数字滤波算法的设计与实践...
  5. Vue iView Admin 动态路由菜单加载 前后端分离(springboot 2.x iview admin vue 前后端分离 模型设计器 动态数据权限...
  6. 带你学python基础:函数是个function?
  7. 【直播】深度卷积神经网络模型设计技术
  8. sklear多项式回归
  9. Oracle 创建 split 和 splitstr 函数
  10. Spring Data JPA初使用 *****重要********
  11. STM32F412应用开发笔记之一:初识NUCLEO-F412ZG
  12. bzoj千题计划269:bzoj2655: calc (拉格朗日插值)
  13. Android Protect-0.luyten+jadx+simplify简单介绍
  14. ArrayList集合排序方式总结
  15. 一级计算机手机试题app,计算机一级考试题库
  16. Python遇到的问题:IndentationError: expected an indented block
  17. 清空SQL数据库日志|数据库开发|SQL|web开发|快速开发|中间件平台|方正飞鸿|ES2007|
  18. c# - Owin Katana
  19. laravel+redis通过api简单实现微博登陆注册关注取消关注发布信息等
  20. 服务器重装系统c盘过大,C盘满了,不想重装系统怎么办?

热门文章

  1. 什么是VBA编程语言?
  2. CUDA 编程 __launch_bounds__的应用方法
  3. html5 显示k线图,canvas绘图,html5 k线图,股票行情图
  4. 无人超市的核心不在于代替人,而是一款赚钱的互联网产品,是互联网伸向现实世界的
  5. 如何自动生成一本epub电子书
  6. dfs序+线段树--青出于蓝胜于蓝
  7. ERR_CONNCETION_CLOSED的问题
  8. html写一个轮播图响应式布局,响应式banner图片轮播布局代码
  9. 1.4树莓派SSH远程登录
  10. Linux下QtCreator不能使用搜狗输入法输入中文