Python头歌合集(题集附解) 您所在的位置:网站首页 圆的周长和面积题30道及答案 Python头歌合集(题集附解)

Python头歌合集(题集附解)

2024-07-12 17:50| 来源: 网络整理| 查看: 265

在这里插入图片描述

目录

一、Python初识-基本语法 

第1关:Hello Python!

 第2关:我想看世界

 第3关:学好Python

 第4关:根据圆的半径计算周长和面积

 第5关:货币转换

 二、turtle简单绘图

第1关:英寸与厘米转换

 第2关:绘制等边三角形

 第3关:绘制两个叠加的等边三角形

 第4关:绘制三个叠加的等边三角形

 第5关:绘制圆圈

 三、数字与字符串类型及其操作

第1关:银行存款本金和计算

第2关:将整数换算为月份数和天数

 第3关:将整数换算为天、时、分、秒

 第4关:回文数判断

 第5关:字符串的拼接:名字的组成

第6关:字符替换 

第7关:字符串查找与替换 

四、Python 入门之函数结构 

第1关:函数的参数 - 求输入的整数之和

第2关:函数的返回值 - 求两个正整数的最大公约数 

第3关:函数的使用范围与Python 作用域-求两个正整数的最小公倍数 

五、函数和代码复用1 

第1关:圆面积计算函数

第2关:素数判断

 第3关:求和函数

 第4关:最大公约数

 第5关:最小公倍数

 六、Python 入门之经典函数实例

第1关:lambda 函数 - 匿名函数的使用-比较两数大小

 第2关:递归函数 - 汉诺塔的魅力

 七、分支和循环结构

第1关:英寸与厘米互换

 第2关:百分制转换为等级制成绩

 第3关:三角形图案打印

 第4关:输出九九乘法表

 第5关:水仙花数判断

 八、函数和代码复用2

第1关:温度转化函数

 第2关:在函数中修改全局变量

 第3关:一元二次方程求解函数v1

 第4关:一元二次方程求解函数v2

 第5关:使用递归

 九、列表

第1关:列表元素的增删改:客人名单的变化

 第2关:列表元素的排序:给客人排序

 第3关:数值列表:用数字说话

 第4关:列表切片:你的菜单和我的菜单

 第5关:列表与循环 - 验证是否为三位数

 十、元组与字典

第1关:元组的使用:这份菜单能修改吗?

 第2关:字典的使用:这份菜单可以修改

 第3关:字典的遍历:菜名和价格的展示

 第4关:嵌套 - 菜单的信息量好大

 第5关:统计投票结果

 十一、Python 计算思维训练——文件操作与异常处理

第1关:从文件中读取数据:信息时代已经到来

 第2关:将信息写入文件:会读会写方为正道

一、Python初识-基本语法 

        Python 是一种面向对象的解释型计算机程序设计语言,以其简洁性、易读性、可扩展性、丰富和强大的功能库,语言表达能力极强,很多非常复杂的功能,只需简单几行代码即可实现,成为最受欢迎的程序设计语言之一。

        本实训的主要目标是,让学习者通过 Python 交互式编程以及脚本编程,实现一个简单的打印字符串功能,感受和体验 Python 编程,并对 Python 建立一个初步的认识。

第1关:Hello Python! 

任务描述

利用 Python 提供的print()内置函数,打印输出Hello Python!,初步体验和感受 Python 编程的魅力。

输入

输出

Hello Python!

开始你的任务吧,祝你成功!

#coding=utf-8 #请在此处添加代码完成输出“Hello Python”,注意要区分大小写! ###### Begin ###### print("Hello Python!") ###### End ######  第2关:我想看世界

任务描述

本关任务:字符串拼接。接收用户输入的两个字符串,将它们组合后输出。

相关知识

为了完成本关任务,你需要掌握: 1.如何使用input()函数,获得用户输入的字符串; 2.输出函数print()如何按照期望的格式输出字符信息。

输入与输出

输入1: 请输入一个人的名字:张三 请输入一个国家的名字:美国

输出1: 世界那么大,张三想去美国看看。

输入2: 请输入一个人的名字:三毛 请输入一个国家的名字:巴西

输出2: 世界那么大,三毛想去巴西看看。

开始你的任务吧,祝你成功!

#coding=utf-8 #请在此处补充代码,按要求完成输出 ###### Begin ###### name=input('请输入一个人的名字:') country=input('请输入一个国家的名字:') print('世界那么大,'+name+'想去'+country+'看看。') ###### End ######  第3关:学好Python

任务描述

本关任务:简单的人名对话。

相关知识

为了完成本关任务,你需要掌握: 1.如何格式化输入输出; 2.如何截取字符串。

输入输出

测试输入:风清扬

预期输出:

风清扬同学,学好Python,前途无量!

风大侠,学好Python,大展拳脚!

清扬哥哥,学好Python,人见人爱!

开始你的任务吧,祝你成功!

#coding=utf-8 #请在此处补充代码,按要求完成输出 ###### Begin ###### name=input("输入姓名:") print("{}同学,学好Python,前途无量!".format(name)) #请将命令行补充完整 print("{}大侠,学好Python,大展拳脚!".format(name[0])) #请将命令行补充完整 print("{}哥哥,学好Python,人见人爱!".format(name[1:])) #请将命令行补充完整 ###### End ######  第4关:根据圆的半径计算周长和面积

任务描述

本关任务:编写一个能计算圆的周长和面积的程序。 结果保留小数点后两位。

输入输出

测试输入:3            预期输出: 周长: 18.85 面积: 28.27

测试输入:6.2         预期输出: 周长: 38.96 面积: 120.76

相关知识

可以用eval(input())将所获得的input()输入值由字符串转为数值。

开始你的任务吧,祝你成功!

""" 输入半径计算圆的周长和面积 """ import math pi = math.pi #pi = 3.14159 #*******请输入您的代码********# #***********begin************# r = eval(input()) c = 2*pi*r s = pi*r**2 print('周长:'+' {:.2f}'.format(c)) print('面积:'+' {:.2f}'.format(s)) #***********end************#  第5关:货币转换

任务描述

本关任务:编写一个人民币和美元两种货币间币值转换程序。其中,人民币和美元间汇率固定为:1美元 = 6.4人民币。

程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元采用USD表示,符号和数值之间没有空格。 注意: (1) 结果小数点后保留两位。

(2) 获得输入请使用input("") 。

输入输出

测试输入1:USD12; 预期输出1:RMB76.8

测试输入2:RMB76.8; 预期输出2:USD12

开始你的任务吧,祝你成功!

""" 人民币和美元两种货币间币值转换 """ #********请输入您的代码********# #************begin************# a=input("") if a[0] in ["R"]: c=eval(a[3:])/6.4 print("USD{:.2f}".format(c)) elif a[0] in ["U"]: b=eval(a[3:])*6.4 print("RMB{:.2f}".format(b)) else: print("输入格式错误") #************end************#  二、turtle简单绘图 第1关:英寸与厘米转换

任务描述

本关任务: 屏幕尺寸是指液晶显示器屏幕对角线的长度,单位为英寸。编写一个英寸和厘米两种长度单位间的转换程序。其中,转换关系为:1厘米= 0.393700787402英寸, 1英寸= 2.54厘米。

程序可以接受英寸或厘米输入,转换为厘米或英寸输出。英寸采用IN表示,厘米采用CM表示,符号和数值之间没有空格。 注意: (1) 结果小数点后保留两位。

(2) 获得输入请使用input("") 。

输入输出

测试输入1:IN12;                 预期输出1:CM30.48

测试输入2:CM76;                 预期输出2:IN29.92

测试输入3:C76;                   预期输出3:输入不符合要求!

开始你的任务吧,祝你成功!

""" cm与inch转换 """ #********请输入您的代码********# #************begin************ a=input("") if a[0:2] in ["IN"]: C=eval(a[2:])*2.54 print("CM{:.2f}".format(C)) elif a[0:2] in ["CM"]: I=eval(a[2:])*0.393700787402 print("IN{:.2f}".format(I)) else: print("输入不符合要求!") #************end************#  第2关:绘制等边三角形

任务描述

仿照教材例5-3画五角星程序,编写程序导入turtle库,并画出如图所示的等边三角形。要求边长为200,三边颜色为红色。

相关知识

模块导入

在使用模块中的函数之前,需要先将模块用import命令导入,有两种形式:

import turtle

创建turtle对象

Bob = turtle.Turtle()

表示在系统中创建了一个Turtle类型的对象,将其命名为Bob.

turtle的部分运动和画笔控制函数

下表给出了turtle的部分运动函数

函数别名(缩写)功能forward(d)fd(d)向前移动距离d代表距离backward(d)bk(d)或back(d)向后移动距离d代表距离right(degree)rt(degree)向右转动多少度left(degree)It(degree)向左转动多少度goto(x,y)将画笔移动到坐标为(x,y)的位置stamp()绘制当前图形speed(speed)画笔绘制的速度范围[0,10]整数setheading(degree)seth(degree)海龟朝向,degree代表角度circle(radius,extent)绘制一个圆形,其中,radius为半径,extent为度数,例如,若extent为180,则画一个半圆;如果画一个圆形,可不必写第2个参数

下表给出了turtle的部分画笔控制函数

函数别名(缩写)功能pendown()down()或pd()画笔落下,移动时绘制图形penup()up()或pu()画笔拾起,移动时不绘制图形reset()恢复所有设置pensize(width)width()画笔的宽度pencolor(colorstring)画笔的颜色fillcolor(colorstring)绘制图形的填充颜色

编程要求

本关的编程任务是补全文件的代码内容,实现如下功能:

step1:用import命令导入turtle模块;step2:创建turtle对象;step3:用pencolor函数设置画笔的颜色;step4:使用turtle的运动函数绘制图形。 本关涉及的代码文件 的代码框架如下: # coding = utf-8# 请在下面添加代码绘制任务中的等边三角形###### Begin ############# End #######

开始你的任务吧,祝你成功!

#********* Begin *********# import turtle turtle.pencolor("red") turtle.pendown() turtle.seth(0) turtle.fd(200) turtle.seth(120) turtle.fd(200) turtle.seth(240) turtle.fd(200) turtle.seth(0) #********* End *********# #保存屏幕图片 ts = turtle.getscreen() ts.getcanvas().postscript(file="Python/src1/py1-2/yourimg/sj.ps")  第3关:绘制两个叠加的等边三角形

任务描述

仿照教材例5-3画五角星程序,编写程序导入turtle库,并画出如图所示的等边三角形。外面三角形边长为200,三边颜色为红色;里面的三角形边长为100,三边颜色为蓝色,填充颜色为黄色。

相关知识

模块导入

在使用模块中的函数之前,需要先将模块用import命令导入,有两种形式:

import turtlefrom turtle import *

其中,*是通配符,表示所有函数

创建turtle对象

Bob = turtle.Turtle()

表示在系统中创建了一个Turtle类型的对象,将其命名为Bob.

turtle的部分运动和画笔控制函数

下表给出了turtle的部分运动函数 函数别名(缩写)功能forward(d)fd(d)向前移动距离d代表距离backward(d)bk(d)或back(d)向后移动距离d代表距离right(degree)rt(degree)向右转动多少度left(degree)It(degree)向左转动多少度goto(x,y)将画笔移动到坐标为(x,y)的位置stamp()绘制当前图形speed(speed)画笔绘制的速度范围[0,10]整数setheading(degree)seth(degree)海龟朝向,degree代表角度circle(radius,extent)绘制一个圆形,其中,radius为半径,extent为

度数,例如,若extent为180,则画一个半圆;如果画一个圆形,可不必写第2个参数 |

下表给出了turtle的部分画笔控制函数 函数别名(缩写)功能pendown()down()或pd()画笔落下,移动时绘制图形penup()up()或pu()画笔拾起,移动时不绘制图形reset()恢复所有设置pensize(width)width()画笔的宽度pencolor(colorstring)画笔的颜色fillcolor(colorstring)绘制图形的填充颜色 绘制填充图像前后需要添加的函数: turtle.begin_fill()#准备开始填充图形;turtle.end_fill()#填充完成;

编程要求

本关的编程任务是补全文件的代码内容,绘制出任务描述中两个叠加等边三角形。 本关涉及的代码文件 的代码框架如下:

# coding = utf-8# 请在下面添加代码绘制任务中的两个叠加等边三角形###### Begin ############# End #######

开始你的任务吧,祝你成功!

#********* Begin *********# import turtle turtle.pencolor("red") turtle.pendown() turtle.seth(0) turtle.fd(200) turtle.seth(120) turtle.fd(200) turtle.seth(240) turtle.fd(200) turtle.seth(0) turtle.penup() turtle.fd(100) turtle.pendown() turtle.color("blue","yellow") turtle.begin_fill() turtle.seth(60) turtle.fd(100) turtle.seth(180) turtle.fd(100) turtle.seth(-60) turtle.fd(100) turtle.end_fill() #********* End *********# #保存屏幕图片 ts = turtle.getscreen() ts.getcanvas().postscript(file="Python/src1/py1-3/yourimg/sj.ps")  第4关:绘制三个叠加的等边三角形

任务描述

仿照教材例5-3画五角星程序,编写程序导入turtle库,并画出如图所示的等边三角形。最外面三角形边长为200,三边颜色为红色,次外面的三角形边长为100,三边颜色为蓝色,填充颜色为黄色;最里面的三角形三边长度为50,颜色为红色,填充颜色为白色。

相关知识

- 模块导入

在使用模块中的函数之前,需要先将模块用import命令导入,有两种形式:

import turtlefrom turtle import *

其中,*是通配符,表示所有函数

- 创建turtle对象

Bob = turtle.Turtle()

表示在系统中创建了一个Turtle类型的对象,将其命名为Bob.

- turtle的部分运动和画笔控制函数

下表给出了turtle的部分运动函数 函数别名(缩写)功能forward(d)fd(d)向前移动距离d代表距离backward(d)bk(d)或back(d)向后移动距离d代表距离right(degree)rt(degree)向右转动多少度left(degree)It(degree)向左转动多少度goto(x,y)将画笔移动到坐标为(x,y)的位置stamp()绘制当前图形speed(speed)画笔绘制的速度范围[0,10]整数setheading(degree)seth(degree)海龟朝向,degree代表角度circle(radius,extent)绘制一个圆形,其中,radius为半径,extent为

度数,例如,若extent为180,则画一个半圆;如果画一个圆形,可不必写第2个参数 |

下表给出了turtle的部分画笔控制函数 函数别名(缩写)功能pendown()down()或pd()画笔落下,移动时绘制图形penup()up()或pu()画笔拾起,移动时不绘制图形reset()恢复所有设置pensize(width)width()画笔的宽度pencolor(colorstring)画笔的颜色fillcolor(colorstring)绘制图形的填充颜色 绘制填充图像前后需要添加的函数: turtle.begin_fill()#准备开始填充图形;turtle.end_fill()#填充完成;

编程要求

本关的编程任务是补全文件的代码内容,绘制出任务描述中两个叠加等边三角形。 本关涉及的代码文件 的代码框架如下:

# coding = utf-8# 请在下面添加代码绘制任务中的两个叠加等边三角形###### Begin ############# End #######

开始你的任务吧,祝你成功!

#********* Begin *********# import turtle turtle.pencolor("red") turtle.fd(200) turtle.seth(120) turtle.fd(200) turtle.seth(240) turtle.fd(200) turtle.seth(0) turtle.fd(100) turtle.begin_fill() turtle.color("blue","yellow") turtle.seth(60) turtle.fd(100) turtle.seth(180) turtle.fd(100) turtle.seth(-60) turtle.fd(100) turtle.seth(60) turtle.end_fill() turtle.fd(50) turtle.seth(120) turtle.begin_fill() turtle.color("red","white") turtle.fd(50) turtle.seth(-120) turtle.fd(50) turtle.seth(0) turtle.fd(50) turtle.end_fill() #********* End *********# #保存屏幕图片 ts = turtle.getscreen() ts.getcanvas().postscript(file="Python/src1/py1-4/yourimg/sj.ps")  第5关:绘制圆圈 任务描述

本关任务:

利用海龟turtle来画几个叠加圈。

绘制要求:

每个圆半径为40像素上面三圆颜色自左向右依次为蓝、黑、红,下面两圆颜色自左向右依次为黄、绿,绘制顺序依次为蓝、黑、红、绿、黄每一个圆绘制时均从该圆上的最低点开始绘制,每次绘制一个完整的圆,直到结束画笔绘制起点为画布原点,画笔宽度为3 输入

输出

5 O

开始你的任务吧,祝你成功!

#********* Begin *********# import turtle turtle.speed(0) turtle.pensize(3) turtle.up() turtle.goto(0, 0) turtle.down() turtle.color('blue') turtle.circle(40) turtle.up() turtle.goto(80, 0) turtle.down() turtle.color('black') turtle.circle(40) turtle.up() turtle.goto(160, 0) turtle.down() turtle.color('red') turtle.circle(40) turtle.up() turtle.goto(120, -40) turtle.down() turtle.color('green') turtle.circle(40) turtle.up() turtle.goto(40, -40) turtle.down() turtle.color('yellow') turtle.circle(40) #********* End *********# #保存屏幕图片 ts = turtle.getscreen() ts.getcanvas().postscript(file="Python/src1/py1-5/yourimg/sj.ps")  三、数字与字符串类型及其操作 第1关:银行存款本金和计算 任务描述

编写一个能计算银行存款复利的小程序。假设目前银行年利率是1.5%,输入你的存款数,计算5年后的本金和。 本金和=本金∗(1+年利率)^n n是年数。

输入

存款金额。

输出

5年存款的本金和。

测试输入:50000

预期输出:53864.20

开始你的任务吧,祝你成功!

# coding = utf-8 # 请在下面添加代码 ###### Begin ###### a=eval(input()) for i in range(5): s=a*(1+0.015)**5 print("{:.2f}".format(s)) ####### End ####### 第2关:将整数换算为月份数和天数

任务描述

在指定的编写程序,输入一个整数,把这个整数换算为月份数和天数,每月以30天计算。

相关知识

- 要用到的函数

input函数 input函数为一个输入函数,是Python的内置函数中最常用的函数之一,其基本功能是获取键盘输入的数据源。input函数的基本语法举例如下:

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

将input函数获取的数据用int函数转换为整数。

print函数 print函数是Python的内置函数中最常用的函数之一,其基本功能是打印输出一个对象。print函数的基本语法举例如下: (1)例1 print('Hello World')

(2)例2

y=5x=6print( "y = %d ,x = %d" % (y,x) )

具体执行结果会在终端打印输出下述字符串: 其中, print中的“y = ”和“x = ”为两个字符串,直接输出; %d 是用来设置x和y的输出格式为整数; %(x,y)中的x和y是要输出的变量,输出的为x和y的值。

format函数 format的功能是使任意数据转换成字符串。format函数的基本语法举例如下: a=8b=7.333print("{:d} , {:.2f}".format(a,b)) 具体执行结果会在终端打印输出下述字符串:  其中, {:d} 表示将a输出为整数,d表示整数; {:.2f} 表示将b输出浮点数,保留两位小数,f表示浮点数; format(a,b) 是将a与b的值转换成字符串。

- 数字类型的内置运算符与内置函数

数字类型的内置运算符与内置函数如下表所示: 运算与函数名结果x + y计算 x 与 y的和x - y计算 x 与 y的差x * y计算 x 与 y的积x / y计算 x 与 y的商x // y计算 x 与 y的整数商,即不大于计算 x / y的整数x % y计算 x 除以 y的余数- xx 的负值+ xx 本身abs(x)返回x的绝对值int(x)将x 转换成整数float(x)将x 转换成浮点数complex(re, im)生成一个复数,实部为re, 虚部为 im. im 默认为0divmod(x, y)返回一个二元组(x // y, x % y),即整数对pow(x, y)返回 xyx ** y计算 xyround(x,n)返回x四舍五入,保留n位小数的值max(x1,x2,..,xn)返回x1,x2,..,xn中最大值min(x1,x2,..,xn)返回x1,x2,..,xn中最小值

编程要求

本关的编程任务是补全文件的代码内容,输入一个整数,把这个整数换算为月份数和天数,每月以30天计算。 注意:在输出时用format函数将数字转换成字符串输出。

本关涉及的代码文件 的代码框架如下:

# coding = utf-8data=int(input())# 请在下面添加代码###### Begin ############# End #######

以下是平台对&的样例测试集: 测试输入: 100 预期输出: Months=3 Days=10

测试说明

本关的测试文件是 src/p5-1-4.py,测试过程如下: 1.读者将src/p5-1-4.py中的代码补充完毕,然后点击测评,平台自动编译并运行,并以标准输入方式提供测评输入; 2.平台获取程序的输出,然后将其与预期输出对比,如果一致则测试通过;否则测试失败。

开始你的任务吧,祝你成功!

# coding = utf-8 data=int(input()) # 请在下面添加代码 ###### Begin ###### c=data//30 x=data%30 print("Months={:.0f} Days={:.0f}".format(c,x)) ####### End #######  第3关:将整数换算为天、时、分、秒

任务描述

编写程序,输入一个任意位数大于0的整数,作为秒数,将此整数换算为天、时、分、秒,并按“天:时:分:秒”的形式显示结果。

相关知识

- 要用到的函数

input函数 input函数为一个输入函数,是Python的内置函数中最常用的函数之一,其基本功能是获取键盘输入的数据源。input函数的基本语法举例如下:

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

将input函数获取的数据用int函数转换为整数。

print函数 print函数是Python的内置函数中最常用的函数之一,其基本功能是打印输出一个对象。print函数的基本语法举例如下: (1)例1

print('Hello World')

(2)例2

y=5x=6print( "y = %d ,x = %d" % (y,x) )

其中, print中的“y = ”和“x = ”为两个字符串,直接输出; %d 是用来设置x和y的输出格式为整数; %(x,y)中的x和y是要输出的变量,输出的为x和y的值。

format函数 format的功能是使任意数据转换成字符串。format函数的基本语法举例如下:

a=8b=7.333print("{:d} , {:.2f}".format(a,b))

其中, {:d} 表示将a输出为整数,d表示整数; {:.2f} 表示将b输出浮点数,保留两位小数,f表示浮点数; format(a,b) 是将a与b的值转换成字符串。

- 数字类型的内置运算符与内置函数

数字类型的内置运算符与内置函数如下表所示: 运算与函数名结果x + y计算 x 与 y的和x - y计算 x 与 y的差x * y计算 x 与 y的积x / y计算 x 与 y的商x // y计算 x 与 y的整数商,即不大于计算 x / y的整数x % y计算 x 除以 y的余数- xx 的负值+ xx 本身abs(x)返回x的绝对值int(x)将x 转换成整数float(x)将x 转换成浮点数complex(re, im)生成一个复数,实部为re, 虚部为 im. im 默认为0divmod(x, y)返回一个二元组(x // y, x % y),即整数对pow(x, y)返回 xyx ** y计算 xyround(x,n)返回x四舍五入,保留n位小数的值max(x1,x2,..,xn)返回x1,x2,..,xn中最大值min(x1,x2,..,xn)返回x1,x2,..,xn中最小值

编程要求

本关的编程任务是补全文件的代码内容,输入一个任意位数大于0的整数,作为秒数,将此整数换算为天、时、分、秒,并按“天:时:分:秒”的形式显示结果。 注意:在输出时用format函数将数字转换成字符串后输出。

本关涉及的代码文件 的代码框架如下:

# coding = utf-8# 请在下面添加代码###### Begin ############# End #######

以下是平台对&的样例测试集: 测试输入: 100 预期输出: 100秒是0天0时1分40秒

测试说明

本关的测试文件是src/p5-1-3.py,测试过程如下: 1.读者将src/p5-1-3.py中的代码补充完毕,然后点击测评,平台自动编译并运行,并以标准输入方式提供测评输入; 2.平台获取程序的输出,然后将其与预期输出对比,如果一致则测试通过;否则测试失败。

开始你的任务吧,祝你成功!

# coding = utf-8 # 请在下面添加代码 ###### Begin ###### n=int(input()) a=n//86400 b=(n%86400)//14400 c=((n%86400)%14400)//60 d=n%86400%14400%60 print("{:.0f}秒是{:.0f}天{:.0f}时{:.0f}分{:.0f}秒".format(n,a,b,c,d)) ####### End #######  第4关:回文数判断 任务描述

从键盘输入一个5位数,编程判断这个数字是不是回文数。 可以用str.isdigit()来判断字符串str是否是数字类型的字符串,是的话返回True,否则返回False。

输入

一个5位数。

输出

是回文数,输出“True”,否则输出“False”。 如果不是5位数字,则输出“输入有误!”

测试输入:12821 预期输出:True

测试输入:15821 预期输出:False

开始你的任务吧,祝你成功!

# coding = utf-8 # 请在下面添加代码 ###### Begin ###### list1=input() list2=list1[::-1] if len(list1)==5 and len(list2)==5: if list1==list2: print("True") else: print("False") else: print("输入有误!") ####### End #######  第5关:字符串的拼接:名字的组成

任务描述

本关任务是将两个不同的字符串,拼接形成一个字符串,并将新字符串输出来。字符串或串(String)是由数字、字母、下划线组成的一串字符。在 Python 中,字符串用单引号或者双引号括起来。在很多情况下,我们需要将两个字符串拼接起来,形成一个字符串。 例如,一个人的姓名,通常是由“姓氏”+“名字”组成的。在很多程序中,为了方便后续处理,通常将姓氏和名字分别存在两个变量中。然后在显示时,要将姓氏和名字拼接起来,按全名显示。

first_name = 'Zhang'last_name = 'san'

输出如下:

full_name = 'Zhang san'

相关知识

Python 中使用+来合并两个字符串,这种合并字符串的方法叫做拼接。其基本语法如下:

result_string = source_string1 + source_string2

其中:

source_string1:待合并的第一个字符串;

source_string2:待合并的第二个字符串;

result_string:合并后的字符串。

注意:如果需要,在两个字符串之间可以增加相应的空格,具体见下面的例子。例如,将姓氏和名字拼接成全名:

# coding=utf-8# 将姓氏和名字分别保存在两个变量中first_name = 'Zhang'last_name = 'san'# 将姓氏和名字拼接,将结果存储在full_name变量中full_name = first_name + " " + last_nameprint(full_name)

输出结果:

Zhang san

如果您想了解更多有关字符串的知识,请参考:【美】 Eric Matthes 著《Python 编程——从入门到实践》第二章。

编程要求

本关的编程任务是补全src/Step1/full_name.py文件中 Begin-End 区间的代码,实现如下功能:

将存放姓氏的字符串变量和存放名字的字符串变量拼接起来,中间用一个空格隔开,并将结果存储在full_name变量中;

打印输出full_name变量。

测试说明

本关的测试文件是src/step1/full_name.py,测试过程如下:

学习者将src/Step1/full_name.py中的代码补充完毕,然后点击评测。平台自动编译并运行full_name.py,并以标准输入方式提供测评输入;

平台获取程序的输出,然后将其与预期输出对比。如果一致,则测试通过,否则测试失败。

以下是平台对src/step1/full_name.py的样例测试集:

测试输入:

Hudong

预期输出:

Hu dong

开始你的任务吧,祝你成功!

# coding=utf-8 # 存放姓氏和名字的变量 first_name = input() last_name = input() # 请在下面添加字符串拼接的代码,完成相应功能 ########## Begin ########## print(first_name+" "+last_name) ########## End ########## 第6关:字符替换 

任务描述

有段英文,其中有单独字母“P”被误写为“p”,请编写程序进行纠正。

输入

用户输入一个字符串。

输出

输出字符串,其中原本包含的英文字母“p”全部被替换为“P”。

以下是平台样例测试集:

测试输入:python 预期输出:Python

开始你的任务吧,祝你成功!

# coding=utf-8 # 获取待处理的源字符串 source_string = input() # 请在下面添加字符串转换的代码 ########## Begin ########## a=source_string.replace("p","P") print(a) ########## End ########## 第7关:字符串查找与替换 

任务描述

本关的任务是,给定一个字符串,要利用 Python 提供的字符串处理方法,从该字符串中,查找特定的词汇,并将其替换为另外一个更合适的词。例如,给定一个字符串Where there are a will, there are a way,我们发现这句话中存在语法错误,其中are应该为is,需要通过字符串替换将其转换为Where there is a will, there is a way。

在大家日常工作使用 Word 编写文档的过程中,经常会遇到一个问题,发现前面写的文档中某个词用错了,需要换为另外一个词来表达。Word 提供了全文查找与替换的功能,可以帮助用户很方便的处理这一问题。那么,这一功能最基础和核心的就是字符替换,如果我们要自己基于 Python 来实现,该怎么做呢?

相关知识

本关的小目标:学习并掌握 Python 中常用的字符串方法,包括字符串查找、字符串切分、字符串替换等。

字符串查找

Python 提供了内置的字符串查找方法find(),利用该方法可以在一个较长的字符串中查找子字符串。如果该字符串中,有一个或者多个子字符串,则该方法返回第一个子串所在位置的最左端索引,若没有找到符合条件的子串,则返回-1。find()方法的基本使用语法如下:

source_string.find(sub_string)

其中:

source_string:源字符串;

sub_string:待查的目标子字符串;

find:字符串查找方法的语法关键字。

例如,在一个字符串中,查找两个单词的位置:

# coding=utf-8# 创建一个字符串source_string = 'The past is gone and static'# 查看"past"在source_string字符串中的位置print(source_string.find('past'))# 查看"love"在source_string字符串中的位置print(source_string.find('love'))

输出结果:

4-1

字符串替换

Python 提供了replace()方法,用以替换给定字符串中的子串。其基本使用语法如下:

source_string.replace(old_string, new_string)

其中:

source_string:待处理的源字符串;

old_string:被替换的旧字符串;

new_string:替换的新字符串;

replace:字符串替换方法的语法关键词。

例如,在如下字符串中,用small子串替换big子串:

# coding = utf-8# 创建一个字符串circlesource_string = 'The world is big'# 利用replace()方法用子串"small"代替子串"big"print(source_string.replace('big','small'))

输出结果:

The world is small

字符串分割

Python 提供了split()方法实现字符串分割。该方法根据提供的分隔符,将一个字符串分割为字符列表,如果不提供分隔符,则程序会默认把空格(制表、换行等)作为分隔符。其基本使用语法如下:

source_string.split(separator)

其中:

source_string:待处理的源字符串;

separator:分隔符;

split:字符串分割方法的关键词。

例如,用+、/还有空格作为分隔符,分割字符串:

# coding = utf-8# 待处理字符串source_stringsource_string = '1+2+3+4+5'# 利用split()方法,按照`+`和`/`对source_string字符串进行分割print(source_string.split('+'))print(source_string.split('/'))

输出结果:

['1', '2', '3', '4', '5']['1+2+3+4+5']

编程要求

本关的编程任务是,补全src/Step3/method2.py文件中 Begin-End 区间的代码,实现如下功能:

step1 :查找输入字符串source_string中,是否存在day这个子字符串,并打印输出查找结果;

step2 :对输入字符串source_string执行字符替换操作,将其中所有的 day替换为time,并打印输出替换后的字符串;

step3 :对 step2 进行替换操作后的新字符串,按照空格进行分割,并打印输出分割后的字符列表。

测试说明

本关的测试文件是src/Step3/method2.py,测试过程如下:

学习者将src/Step3/method2.py中的代码补充完毕,然后点击评测。平台自动编译并运行method2.py,并以标准输入方式提供测评输入;

平台获取程序的输出,然后将其与预期输出对比。如果一致,则测试通过,否则测试失败。

以下是平台对src/Step3/method2.py的样例测试集:

测试输入:

All day is no day when it is past.

预期输出:

4All time is no time when it is past.['All', 'time', 'is', 'no', 'time', 'when', 'it', 'is', 'past.']

开始你的任务吧,祝你成功!

# coding = utf-8 source_string = input() # 请在下面添加代码 ########## Begin ########## print(source_string.find("day")) a=source_string.replace("day","time") print(a) b=a.split(" ") print(b) ########## End ########## 四、Python 入门之函数结构  第1关:函数的参数 - 求输入的整数之和

任务描述

当我们需要在程序中多次执行同一类型的任务时,不需要反复编写代码段来完成任务,而是可以利用函数工具来大大方便我们的编程工作。函数是可重复使用的、用来实现相关联功能的代码段。

本实训的目标是让学习者了解并掌握函数结构的相关知识,本关的小目标则是让学习者先了解并掌握函数参数的有关知识。

相关知识

我们在使用函数前,得先定义一个满足自己使用要求的函数。定义函数的基本结构是:

def functionname( parameters ):"函数_文档字符串"function_suitereturn [expression] 定义函数以def关键词开头,后面跟着函数名、圆括号()、括号中的参数、冒号;接着,在缩进块中编写函数体,函数的第一行语句一般是写文档字符串,用于存放函数说明,也可以选择不写;Return[expression]表示结束函数,并返回值。而不带表达式的return相当于返回空值。

本关的重点就是研究函数的参数parameters。定义函数的时候,参数的名字和位置定下来了,函数的接口定义也就完成了。我们在调用函数时,只用知道该传递什么样的参数,函数内部的运行情况已经被封装,使用者不必了解。

Python 的函数参数主要包含以下几种:

必选参数;默认参数;可变参数;关键字参数。

必选参数

必选参数也叫位置参数,是函数中最常用的参数。必选参数就是在调用函数的时候必须指定参数值。例如:

# 定义加法函数plus,参数a,b就是必选参数def plus(a,b):c=a+breturn(c)# 调用函数plus时,必须给参数a,b传递值d=plus(1,2)# 输出结果dprint(d)

输出结果:

3

如果调用plus函数时,传入的参数不符合要求,则会出现错误。例如:

>>d = plus()TypeError: plus() missing 2 required positional arguments: 'a' and 'b'>>d = plus(1)TypeError: plus() missing 1 required positional argument: 'b'

默认参数

默认参数是指给函数参数提供默认值,如果在调用函数的时候没有给该参数传递值,则该参数使用默认值。例如:

# 定义加法函数plus,参数a是必选参数,参数b是默认值2的参数def plus(a,b=2):c=a+breturn(c)# 调用函数plus时,必须给参数a传递值,若不给b传递值,则b默认为2d=plus(1)# 输出结果dprint(d)

从上面的例子可以看出,在函数调用过程中可以不用给默认参数传递参数值。但在使用默认参数时,有两点需要注意:

默认参数要放在所有必选参数的后面;默认参数必须指向不变对象。

可变参数

在有些情况下,我们在定义函数的时候,还不能确定函数应该包含多少个参数,这时我们可以使用可变参数,可变参数就是传入的参数数量是可变的。例如:

# 定义plus函数,完成的功能是返回输入的整数之和。# 参数numbers是可变参数,表示输入的参数个数可以为任意值def plus(*numbers):add = 0for i in numbers:add += ireturn(add)# 调用3次plus函数,每次的参数个数都不相同d1 = plus(1,2,3)d2 = plus(1,2,3,4)d3 = plus(1,3,5,7,9)# 向函数中可以传递任意参数,包括0个参数d4 = plus()# 输出结果print(d1)print(d2)print(d3)print(d4)

输出结果:

610250

在上面的例子中,numbers就是一个可变参数,可变参数前面加一个标识符*。在函数内部,可变参数numbers接收到的值是一个tuple。我们在调用参数是可变参数的函数时,可以给该函数传递任意个数的参数,包括0个参数。

关键字参数

可变参数允许我们在调用函数时传入任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许我们传入任意个含参数名的参数,这些关键字参数在函数调用时自动组装为一个dict。也就是说,关键字参数将长度任意的键-值对,作为参数传递给函数。例如:

# 定义一个包含关键字参数的函数,返回值为参数值def plus(**kw):return kw# 调用plus函数,参数值为空d1 = plus()# 调用plus函数,参数值为x=1d2 = plus(x=1)# 调用plus函数,参数值为x=1,y=2d3 = plus(x=1, y=2)# 输出d1,d2,d3print(d1)print(d2)print(d3)

输出结果:

{}{'x': 1}{'x': 1, 'y': 2}

在上面的例子中,kw就是一个关键字参数,关键字参数前面加**表示。关键字参数可以扩展函数功能,使传递参数过程更为简便。例如:

# 定义一个plus函数,有3个参数,返回值是3个参数之和def plus(x,y,z):return x+y+z# 有一个dict列表,当中3个键的值分别为1,2,3dict = {'x':1, 'y':2, 'z':3}# 将dict列表中的3个值传入plus函数中,得到返回值dd = plus(dict['x'],dict['y'],dict['z'])# 输出dprint(d)

输出结果:

6

但在上述例子中,将字典中的值向plus函数中传递参数的方法过于累赘,可以采取关键字参数的方法。例如:

# 定义一个plus函数,有3个参数,返回值是3个参数之和def plus(x,y,z):return x+y+z# 有一个dict列表,当中3个键的值分别为1,2,3dict = {'x':1, 'y':2, 'z':3}# 用关键字参数的方法将dict列表中的3个值传入plus函数中,得到返回值dd = plus(**dict)# 输出dprint(d)

输出结果:

6

使用关键字参数**dict的方法,可以大大提高参数传递的效率。

参数组合

我们在函数定义过程中,可以同时用到必选参数、默认参数、可变参数、关键字参数中的一种或几种。但是需要特别注意的是,这四种参数在使用的过程中是有顺序的,顺序依次应该是必选参数、默认参数、可变参数和关键字参数。例如:

# 定义一个包含必选参数、默认参数、可变参数和关键字参数的函数plusdef plus(x, y, z=0, *args, **kw):print('x=',x)print('y=',y)print('z=',z)print('args=',args)print('kw=',kw)# 调用函数plus,输入两个参数1,2plus(1,2)

输出结果:

x= 1y= 2z= 0args= ()kw= {}

上面这个例子中,向plus函数中传入了两个必选参数1和2。必选参数必须得提供值,但是默认参数、可变参数和关键字参数可以不用提供值,我们还可以给默认参数、可变参数和关键字参数传递值。例如:

# 定义一个包含必选参数、默认参数、可变参数和关键字参数的函数plusdef plus(x, y, z=0, *args, **kw):print('x=',x)print('y=',y)print('z=',z)print('args=',args)print('kw=',kw)# 调用函数plus,输入参数x=1,y=2,z=3,args=(4,5,6),kw={}plus(1,2,3,4,5,6)print('\n')# 调用函数plus,输入参数x=1,y=2,z=3,args=(4,5,6),kw={'k':7, 'm':8}plus(1,2,3,4,5,6,k=7,m=8)

输出结果:

x= 1y= 2z= 3args= (4, 5, 6)kw= {}x= 1y= 2z= 3args= (4, 5, 6)kw= {'k': 7, 'm': 8}

小结

不同类型的参数是有顺序的,依次是必选参数、默认参数、可变参数和关键字参数;默认参数一定要用不可变对象,用可变对象容易产生逻辑错误;*args表示的是可变参数,*args接收的是一个元组;**kw表示的是关键字参数,**kw接收的是一个字典。

编程要求

本关的编程任务是补全src/Step1/plus.py文件的代码,实现相应的功能。具体要求如下:

定义并调用一个函数,功能是对输入的列表中的数值元素进行累加,列表中元素的个数没有确定;将累加结果存储到变量d中;输出累加结果d。

本关涉及的src/Step1/plus.py代码文件的代码框架如下:

# coding=uft-8# 创建一个空列表numbersnumbers = []# str用来存储输入的数字字符串,lst1是将输入的字符串用空格分割,存储为列表str = input()lst1 = str.split(' ')# 将输入的数字字符串转换为整型并赋值给numbers列表for i in range(len(lst1)):numbers.append(int(lst1.pop()))# 请在此添加代码,实现编程要求########## Begin #################### End ##########print(d)

测试说明

本关的测试文件是src/Step1/plus.py,测试过程如下:

平台自动编译生成plus.exe;平台运行plus.exe,并以标准输入方式提供测试输入;平台获取plus.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。

以下是平台对src/Step1/plus.py的样例测试集:

测试输入:

1 2 3 4 5

预期输出:

15

测试输入:

1 3 5 7 9 11

预期输出:

36

测试输入:

2 4 6 8 10 12 14 16

预期输出:

72

开始你的任务吧,祝你成功!

如果你觉得这一关的内容对你有帮助,请你在下面点赞。

# coding=utf-8 # 创建一个空列表numbers numbers = [] # str用来存储输入的数字字符串,lst1是将输入的字符串用空格分割,存储为列表 str = input() lst1 = str.split(' ') # 将输入的数字字符串转换为整型并赋值给numbers列表 for i in range(len(lst1)): numbers.append(int(lst1.pop())) # 请在此添加代码,对输入的列表中的数值元素进行累加求和 ########## Begin ########## d=0 for i in numbers: d+=i ########## End ########## print(d) 第2关:函数的返回值 - 求两个正整数的最大公约数 

任务描述

函数在进行运算处理后,返回的值被称为返回值。函数返回的值是通过return语句执行。返回值能够让我们直接得到函数处理的结果,而不必关心函数内部复杂繁重的运算过程,大大提高了编程效率。本关的主要目标是让学习者了解并掌握函数返回值的相关知识。

相关知识

return语句将值返回到调用函数的出口,函数中一定要有return返回值才是完整的函数。如果我们没有在函数中定义函数返回值,那么程序会自动让函数返回一个结果,该结果是None对象,而None对象表示没有任何值。

将值作为返回值

函数的返回值只有一个,但有时我们会发现有的函数好像有多个返回值,其实这里的“多个”并不是指多个返回值。比如函数返回一列表,里面包含很多个元素值。这就类似于,只能从超市带走一个箱子,但是允许我们把一些东西都装到箱子里面看做一个东西带走。例如:

def f():return 1,'abc','1234'print(f())

输出结果:

(1, 'abc', '1234')

调用f()函数,程序输出为一个元组,所以函数返回值表面上是3个值,其实是返回一个元组,元组里面有三个不同元素(元组语法上不需要一定带上圆括号)。

将函数作为返回值

我们除了可以将各种类型的值作为返回值外,也可以将函数作为返回值。例如,我们要定义一个函数来求列表中数值元素的和,一般情况下我们是这样定义的:

def plus(*args):s = 0for n in args:s = s + nreturn s

但是,如果我们不需要立刻求和,而是在后面的程序中,根据需求再计算,这种情况怎么办呢?这时我们定义的函数可以不返回求和的结果,而是返回计算求和的函数。所以我们还可以用如下方法定义函数:

def lazy_plus(*args):def plus():s = 0for n in args:s = s + nreturn sreturn plus

当我们调用lazy_plus()时,返回的并不是求和结果,而是计算求和的函数:

# 定义求和函数,返回的并不是求和结果,而是计算求和的函数def lazy_plus(*args):def plus():s = 0for n in args:s = s + nreturn sreturn plus# 调用lazy_plus()时,返回的并不是求和结果,而是求和函数f = lazy_plus(1,2,3,4,5)print(f)

输出结果:

调用函数f时,才真正计算求和的结果:

# 定义求和函数,返回的并不是求和结果,而是计算求和的函数def lazy_plus(*args):def plus():s = 0for n in args:s = s + nreturn sreturn plus# 调用函数f时,得到真正求和的结果f = lazy_plus(1,2,3,4,5)print(f())

输出结果:

15

在上述例子中,我们在函数lazy_plus中又定义了函数plus,而且内部函数plus是可以引用外部函数lazy_plus的参数和局部变量的。当函数lazy_plus返回函数plus时,相关参数和变量也将会保存在返回的函数中,这种方式也称为“闭包”(Closure)。

小结

我们除了可以将函数计算的值作为返回值外,也可以将函数作为返回值。

如果您想了解更多函数结构的相关知识,请参考:【美】 Eric Matthes 著《 Python 编程——从入门到实践》第八章。

编程要求

本关的编程任务是补全src/step2/return.py文件的代码,实现相应的功能。具体要求如下:

定义一个函数gcd,功能是求两个正整数的最大公约数;调用函数gcd,得到输入的两个正整数的最大公约数,并输出这个最大公约数。

本关涉及的代码文件src/step2/return.py的代码框架如下:

# coding=utf-8# 输入两个正整数a,ba = int(input())b = int(input())# 请在此添加代码,求两个正整数的最大公约数########## Begin #################### End ########### 调用函数,并输出最大公约数print(gcd(a,b))

测试说明

本关的测试文件是src/step2/return.py,测试过程如下:

平台自动编译生成return.exe;平台运行return.exe,并以标准输入方式提供测试输入;平台获取return.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。

以下是平台对src/step2/return.py的样例测试集:

测试输入:

18

预期输出:

1

测试输入:

93

预期输出:

3

测试输入:

921

预期输出:

3

测试输入:

12636

预期输出:

18 开始你的任务吧,祝你成功!

如果你觉得这一关的内容对你有帮助,请你在下面点赞。

# coding=utf-8 # 输入两个正整数a,b a = int(input()) b = int(input()) # 请在此添加代码,求两个正整数的最大公约数 ########## Begin ########## def gcd(a,b): if a 3:return _private_1(name)else:return _private_2(name)

我们在上述程序块里公开了greeting()函数,greeting()函数需要使用_private_1()和_private_2()函数。学习者并不需要知道greeting()函数中的内部实现细节,所以我们可以将内部逻辑用private函数隐藏起来,这是一种十分常用的代码封装的方法。

小结

为了让程序的封装性更好,我们一般都限定函数的使用范围。一般我们把外部需要使用的函数定义为public函数,而把只在内部使用而外部不需要引用的函数定义成private函数。

编程要求

本关的编程任务是补全src/step3/scope.py文件的代码,实现相应的功能。具体要求如下:

编写程序,功能是求两个正整数的最小公倍数;要求实现方法:先定义一个private函数 _gcd()求两个正整数的最大公约数,再定义public函数lcm()调用 _gcd()函数求两个正整数的最小公倍数;调用函数lcm(),并将输入的两个正整数的最小公倍数输出。

本关涉及的代码文件src/step3/scope.py的代码框架如下:

# coding=utf-8# 输入两个正整数a,ba = int(input())b = int(input())# 请在此添加代码,求两个正整数的最小公倍数########## Begin #################### End ########### 调用函数,并输出a,b的最小公倍数print(lcm(a,b))

测试说明

本关的测试文件是src/step3/scope.py,测试过程如下:

平台自动编译生成scope.exe;平台运行scope.exe,并以标准输入方式提供测试输入;平台获取scope.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。

以下是平台对src/step3/scope.py的样例测试集:

测试输入:

56

预期输出:

30

测试输入:

810

预期输出:

40

测试输入:

1624

预期输出:

48

测试输入:

132214

预期输出:

14124

开始你的任务吧,祝你成功!

# coding=utf-8 # 输入两个正整数a,b a = int(input()) b = int(input()) # 请在此添加代码,求两个正整数的最小公倍数 ########## Begin ########## c=a*b def lcm(a,b): if a bc -> ba -> cb -> ab -> ca -> c

程序分析:

        首先我们定义了一个函数move(n,a,b,c),参数n代表a柱上的圆盘个数,a,b,c三个柱子的顺序代表要将a柱上的圆盘最终移动到c柱上,然后b柱作为中间柱。

我们在递归函数中肯定会有终止递归的条件。第2到4行的代码就是表示,当a柱上的圆盘个数为1时,就中止递归并返回。因为此时a柱上面只有一个圆盘,肯定就是直接把圆盘从a柱移动到c柱了。

第5行的代码move(n-1, a, c, b)表示,先得把a柱上的n-1个圆盘从a柱移动到b柱,这时c柱是中间辅助柱。第6行的代码move(1, a, b, c)表示,当条件n=1的时候,把a柱上剩下的1个最大圆盘从a柱移动到c柱。

第7行的代码move(n-1, b, a, c)表示,现在n-1个圆盘已经转移到b柱上了,还是递归调用move函数,将n-1个圆盘从b柱移动到c柱,这时a柱是中间辅助柱。

最后我们调用move函数将3个圆盘从a柱移动到到c柱。当移动64个圆盘时,只需要将调用函数move(n,a,b,c)中的n变为64即可。这个计算量是十分巨大的,也只能交给计算机去解决。

小结

        我们通过汉诺塔的例子感受了递归函数的基本思路,并尝试解决了一个具体问题。递归函数的优点是定义清晰、思路简洁,能够极大简化编程过程。理论上,所有的递归函数都可以用循环的方法代替,但循环方法的编程过程要比递归函数复杂很多。

编程要求

本关的编程任务是补全src/step1/recursive.py文件的代码,实现相应的功能。具体要求如下:

定义一个函数fact(n),实现的功能是对输入的正整数n进行n!运算;调用函数fact(n),对输入的正整数n进行阶乘运算,并输出计算结果。

本关涉及的代码文件src/step1/recursive.py的代码框架如下:

# coding=utf-8# 输入正整数nn = int(input())# 请在此添加代码,对输入的正整数n进行阶乘运算,并输出计算结果。########## Begin #################### End ##########

测试说明

本关的测试文件是src/step1/recursive.py,测试过程如下:

平台自动编译生成recursive.exe;平台运行recursive.exe,并以标准输入方式提供测试输入;平台获取recursive.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。

以下是平台对src/step1/recursive.py的样例测试集:

测试输入:

5

预期输出: 120

测试输入:

6

预期输出:

720

测试输入:

7

预期输出:

5040

测试输入:

8

预期输出:

40320

开始你的任务吧,祝你成功!

# coding=utf-8 # 输入正整数n n = int(input()) # 请在此添加代码,对输入的正整数n进行阶乘运算,并输出计算结果。 ########## Begin ########## def fact(n): if n ==0: return 1 else: return n*fact(n-1) print(fact(n)) ########## End ##########  七、分支和循环结构 第1关:英寸与厘米互换

任务描述

本关任务:编写一个能实现单位英寸与公制单位厘米的程序。

相关知识

为了完成本关任务,你需要掌握:1.if条件语句。

编程要求

根据提示,在右侧编辑器补充代码,实现单位英寸与公制单位厘米互换。 (1英寸 = 2.54厘米) 注:函数有两个参数,一个value值(代表长度),一个单位(in(英寸)或cm(厘米)),如单位是cm则直接输出单位为英寸的长度,如单位是in则直接输出单位为厘米的长度,如果单位不是cm或in,则输出‘请输入有效的单位’。结果保留两位小数。(本函数不需返回值)

测试说明

平台会对你编写的代码进行测试:

测试输入:3,cm; 预期输出:1.18英寸

测试输入:3,厘米; 预期输出:1.18英寸

测试输入:5,in; 预期输出:12.70厘米

测试输入:5,英寸; 预期输出:12.70厘米

测试输入:5,tt; 预期输出:请输入有效的单位

开始你的任务吧,祝你成功!

""" 英制单位英寸和公制单位厘米互换 """ value = input() value = int(value) unit = input() # 请在此处添加代码 # # *************begin************# if unit in ["in"] or unit in ["英寸"]: a=value*2.54 print("{:.2f}厘米".format(a)) elif unit in ["cm","厘米"]: b=value/2.54 print("{:.2f}英寸".format(b)) else: print("请输入有效的单位") # **************end*************#  第2关:百分制转换为等级制成绩

任务描述

本关任务:编写一个能将百分制成绩转换为等级制成绩的程序。

相关知识

为了完成本关任务,你需要掌握: 1.if条件语句。

编程要求

根据提示,在右侧编辑器补充代码,将百分制成绩转换为等级制成绩。 (90



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有