第一阶段
第一关-求和
这次“绿盟杯”大赛,小明作为参赛选手在练习的时候遇到一个问题,他要对一个范围的两个数进行数位的累加,例如有两个数 15
,19
则 他们的数位和应该为:
1+5+1+6+1+7+1+8+1+9,结果为40。
你来帮他解决这个问题吧。
编程要求
补充完善右侧代码区中的getSum(self,num1,num2)
函数,实现对两个数num1
和num2
的数位和相加,最后返回计算的结果即可。
注:num1
和num2
的值都在1-999
之间。
测试说明
样例1
输入:
15
19
输出:
40
注意:
- 针对本关的具体评测代码由平台后台提供,你只需补充完善
getSum
函数,将计算结果作为返回值返回即可; - 本关共包含4个测试用例,需所有测试用例评测通过才能得分。
我的解答:考查强制类型转换、循环字符串的时候,每次循环一个字符。
class Task:
def getSum(self,num1,num2):
########## BEGIN ##########
# sum = 0
# for i in range(num1, num2+1):
# 第一种思路是将数字转化成字符串,依次取出各个字符再转化成数字进行相加
# for j in str(i):
# sum += int(j)
# return sum
sum = 0
for i in range(num1,num2+1):
# 第二种思路是取余数,再进行整除操作
while (i!=0):
sum = sum +i%10
i = i//10 # python中的整除是//
return sum
########## END ##########
第二关-文件查看器
参加“绿盟杯”竞赛的小红遇到一个问题,她想要编写代码实现文件查看器的功能,要实现指定文件夹下所有文件以及文件夹目录结构的展示。
你来帮她实现这个功能吧。
编程要求
编写代码实现对给定文件夹目录结构的展示,如果是文件夹则在其名字之前加上+--
若是文件则加上--
,上级目录与下级目录,下级文件用两个空格作为间隔,同级下依照文件夹、文件的首字母顺序依次打印;补充完善右侧代码区中的showDirTree(self,path)
函数实现要求的功能,其中函数参数含义如下:
-
path
:指定要显示的文件夹路径
测试说明
样例1
输入:src/step2/root
输出:
样例2
输入:src/step2/dir
输出:
提示:
os
包的,os.listdir(path)
可以获取path
路径下所有文件和文件夹的名字。
你可以通过如下链接下载本关涉及到的文件夹:
https://www.educoder.net/attachments/download/200773/step2Dir.zip
好的解答;考查递归、spilt()函数、列表通过[-1]取出最后一个元素、以及os.path.isdir()函数和os.listdir()函数
import os, sys
class Task:
def showDirTree(self,path):
########## BEGIN ##########
#递归
def list_search(path_1,num):
if os.path.isdir(path_1): # 第一种情况是文件夹
print(' '*num+'+--'+path_1.split('/')[-1])
for i in os.listdir(path_1):
list_search(path_1+'/'+i,num+2)
else: # 第二种情况是文件,直接输出
print(' '*num+'--'+path_1.split('/')[-1])
list_search(path,0)
########## END ##########
第三关-图片查看器
参加“绿盟杯”竞赛的小明想要开发一个图片查看器,他想只显示文件夹下所有图片类型的文件。
你来帮小明实现这个功能吧。
编程要求
基本功能与第二题类似,编写代码实现对给定文件夹目录结构的展示,如果是文件夹则在其名字之前加上+--
若是文件则加上--
,上级目录与下级目录、下级文件用两个空格作为间隔,同级下依照文件夹、文件的首字母顺序依次打印;另外需要对文件进行过滤,只显示图片类型的文件,本关需要过滤的图片文件类型有:“jpg,png,bmp”,请补充完善右侧代码区中的showDirTree(self,path)
函数实现本关要求的功能,其中函数参数含义如下:
-
path
:指定要显示的文件夹路径
测试说明
样例1
输入:src/step3/root
输出:
样例2
输入:src/step3/dir
输出:
提示:
os
包的,os.listdir(path)
可以获取path
路径下所有文件和文件夹的名字。
你可以通过如下链接下载本关涉及到的目录文件:
https://www.educoder.net/attachments/download/202620/step3Dir.zip
好的解答:在文件查看器的基础上,加了限制
考查列表的操作,list.count()会统计列表中出现该元素的次数
import os, sys
class Task:
def showDirTree(self,path):
########## BEGIN ##########
def list_search(path_1,num):
tup=['jpg','png','bmp']
if os.path.isdir(path_1):
print(' '*num+'+--'+path_1.split('/')[-1])
for i in os.listdir(path_1):
list_search(path_1+'/'+i,num+2)
else:
if tup.count(path_1.split('.')[-1])==1:#新加的判断条件
print(' '*num+'--'+path_1.split('/')[-1])
list_search(path,0)
########## END ##########
网友评论