Python 挑战,你通关了吗?速来看题解!
Python 通关挑战结束了,快来看看自己获奖了吗?
没有获奖的小伙伴也不能灰心哦下一期楼赛我们也在努力“缓冲”中期待下次在排行榜中见到你,来挑战薅羊毛哦!
这次 Python 挑战完,你还记得你做了哪些题呢?在挑战过程中又遇到什么难题了呢?如果你没有参加挑战,也可以来涨涨知识哦!
总共有 10 个挑战题,因为内容比较多,无法一一展示,可以戳/获取全部内容:shiyanlou007
01 圆的面积
相信大家都学过 Python 3 的基本语法吧?这个挑战中,我们将实现一个简单的程序用来计算圆的面积并打印输出。
挑战步骤
在 /home/project 中创建一个 Python 脚本 CircleArea.py。
cd /home/project
touch CircleArea.py
CircleArea.py 能够根据输入的半径计算圆的面积,并把面积打印出来,保留小数点后 10 位(四舍五入)。
请完善下面的代码:
import sys
import math
#请完善代码
挑战要求
- 本次挑战必须使用 Python 3 实现;
- 文件路径为 /home/project/CircleArea.py ;
- 本题不是使用 input 函数接收用户输入,而是使用命令行参数;
- 圆周率可以使用 math.pi 。
最终效果
参考代码
这题的难度比较简单,仅用补充 4 行代码就可完成挑战。
import sys
import math
a=sys.argv[1]
r=float(a)
s=math.pi*r**2
print(f'{s:.10f}')
02 字符串操作
我们需要实现一个程序来提取文件中大于 5 的数字,然后依次打印输出。
挑战步骤
首先,在终端中下载所需的测试文件:
cd /home/project
wget https://labfile.oss.aliyuncs.com/courses/790/String.txt
这个文件 String.txt 中存储了一个很长的字符串,需要读取并进行处理。
在 /home/project 目录下创建 FindDigits.py Python 文件:
cd /home/project
touch FindDigits.py
FindDigits.py 中,我们需要完成以下任务:
使用 open 函数打开同级目录下的 String.txt 文件并读取其中的字符串。
依次提取字符串中符合要求的数字,并组合成一个新的字符串,然后打印输出。
挑战要求
- 本次挑战必须使用 Python 3 实现;
- 请在 Open 函数中使用相对路径,避免影响检测结果。
- Python 文件路径为 /home/project/FindDigits.py 。
最终效果
参考代码
这题的难度也比较简单,共有 2 个方法。
方法一:
with open('String.txt') as f:
s = f.read()
res = ""
for char in s:
if char.isdigit() and int(char)>5:
res += char
print(res)
方法二:
with open('String.txt') as g:
print(''.join([i for i in g.read() if i.isdigit() and int(i)>5]))
03 逢 X 就跳过
不知道大家有没有玩过“逢 7 跳过”的游戏,游戏规则很简单:
几个人轮流报数,凡遇到 7 的倍数,或者尾数为 7 的数字就要跳过,否则为失败。
比如下图中,绿色部分的数字就属于安全区域,而报出红色部分的数字就失败了。
挑战步骤
首先在 /home/project 目录下创建 /home/project 文件。然后写入代码并完善,使之能够返回安全区域全部数字的列表。
挑战要求
- 本次挑战必须使用 Python 3 实现;
- 文件路径为 /home/project/jumpx.py ;
- 在文件中写入代码,返回 1 到 100 之间(包含 1 和 100 )不是 x 的倍数且不含 x 的数字组成的列表;
- 请不要修改现有的代码。
最终效果
参考代码
如果你有任何编程问题,欢迎戳/:shiyanlou007