第1关:正整数n以内累加求和
任务描述
本关任务:输入一个正整数n,利用循环的方法实现:
1.求n以内所有奇数和(包含n)
2.求n以内所有偶数和(包含n)
输出为:奇数和和偶数和,以空格隔开。
测试说明
平台会对你编写的代码进行测试:
测试输入:10
预期输出:25 30
测试输入:100
预期输出:2500 2550
开始你的任务吧,祝你成功!
###begin
n = int(input())
x = y = 0
for i in range(n + 1):
if i % 2 == 0:
x += i
else:
y += i
print(y, x)
###end
第2关:整数的条件判断
任务描述
本关任务:
1.求[1,100]内能被7整除,但不能同时被5整除的所有整数。
2.求500以内能被17整除的最大正整数。
测试说明
平台会对你编写的代码进行测试:
测试输入:无
预期输出:
7,14,21,28,42,49,56,63,77,84,91,98
493
开始你的任务吧,祝你成功!
###begin
x = []
for i in range(101):
if i % 35 != 0 and i % 7 == 0:
x.append(i)
y = ','.join(map(str, x)) #将列表x中的每个元素转换成字符串,然后用','拼接起来
print(y)
for i in range(500, 0, -1): #倒序更容易完成要求
if i % 17 == 0:
print(i)
break
###end
第3关:素数判断
任务描述
本关任务:输入一个正整数x,请判断其是否为素数。
相关知识
素数定义:只能被1和自身整除的整数。最小的素数是2。
测试说明
平台会对你编写的代码进行测试:
测试输入:
4
预期输出:
False
测试输入:
11
预期输出:
True
开始你的任务吧,祝你成功!
###begin
def is_zhishu(t):
if t <= 1:
return False
for i in range(2, t):
if t % i == 0:
return False
return True
#本来不想用函数嵌套的,但感觉没啥更简洁的写法
t = int(input())
print(is_zhishu(t))
###end
第4关:循环之序列解包
相关知识
Python 中有很多很实用的语法,这些语法可以帮助我们简化代码、更易理解等优点,特别实用的语法序列解包示例如下。
这种方法并不限于列表和元组,而是适用于任意序列类型(甚至包括字符串和字节序列)。只要赋值运算符左边的变量数目与序列中的元素数目相等,你都可以用这种方法将元素序列解包到另一组变量中。
解包的使用还可以利用 * 表达式获取单个变量中的多个元素,只要它的解释没有歧义即可。如获取剩余部分:
获取中间部分:
如果左值比右值要多,那么带 * 的变量默认为空
嵌套解包:
编程要求
根据提示,在右侧编辑器补充代码,输出如下格式:
测试输入:
ABCDEFGH
输出格式:
A ['B', 'C', 'D', 'E', 'F', 'G', 'H']
B ['C', 'D', 'E', 'F', 'G', 'H']
C ['D', 'E', 'F', 'G', 'H']
D ['E', 'F', 'G', 'H']
E ['F', 'G', 'H']
F ['G', 'H']
G ['H']
H []
开始你的任务吧,祝你成功!
###begin
s = input()
n = len(s)
S = []
for i in range(n):
S.append(s[i]) #先将s中的每个字符存到S中
for i in range(n):
print(s[i], end=" ") #注意这里要留一个空格
S.pop(0) #删除指定位置的元素
print(S)
###end
第5关:求n以内的所有自幂数
任务描述
本关任务:求n以内的(含n)所有自幂数(大于0的正整数),n为正整数,且n<10000。
相关知识
如果在一个固定的进制中,一个n位自然数等于自身各个数位上数字的n次幂之和,则称此数为自幂数。
一位自幂数:独身数
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数
测试说明
平台会对你编写的代码进行测试:
测试输入:10
预期输出:1 2 3 4 5 6 7 8 9
测试输入:500
预期输出:1 2 3 4 5 6 7 8 9 153 370 371 407
提示:输出数字间以空格隔开
开始你的任务吧,祝你成功!
###begin
n = input()
for i in range(1, int(n) + 1):
s = 0
for j in str(i):
s += int(j) ** len(str(i)) #不要忘了i和j的数据类型
if s == i:
print(i, end=" ")
###end
第6关:打印九九乘法表
任务描述
本关任务:打印九九乘法表。
测试说明
平台会对你编写的代码进行测试:
测试输入:无
预期输出:如上图所示
说明:每个公式占7个字符,公式之间有一个空格。
开始你的任务吧,祝你成功!
###begin
for i in range(1, 10):
for j in range(1, i + 1):
s = str(i) + '*' + str(j) + '=' + str(i * j) #字符串的拼接感觉是比较简洁的
print(f'{s:7}', end=' ') #这里的f'{:n}'中的n就是指定占位,缺位则用空格补充
print('')
###end
第7关:数字组合
任务描述
本关任务:编写程序,输出由1、2、3、4这四个数字组成的每位数都不相同的所有三位数。
测试说明
平台会对你编写的代码进行测试:
测试输入:无
预期输出:
123
124
...
432
开始你的任务吧,祝你成功!
###begin
for i in range(123, 433): #在知道最小值和最大值后就可以直接循环找了
s = ['1', '2', '3', '4']
for j in range(len(s)):
m = s.pop(j) #将删除的值先存到m里面
if all(n in str(i) for n in s): #all的用法就是完全满足,如果是只要求部分满足可以用any
print(i)
s.insert(j, m) #别忘了将删除的元素添加回来
###end
第8关:阶乘之和
任务描述
本关任务:输入正整数n,求1!+2!+...+n!之和
测试说明
平台会对你编写的代码进行测试:
测试输入:
3
预期输出:
9
开始你的任务吧,祝你成功!
###begin
n = int(input())
m = 0
for i in range(1, n + 1):
x = 1
for j in range(1, i + 1):
x *= j
m += x
print(m)
###end
第9关:因式分解
任务描述
本关任务:输入一个正整数n(n>=2),对其做因式分解。
例如:
10 = 2*5
60 = 2*2*3*5
测试说明
平台会对你编写的代码进行测试:
测试输入:
5
预期输出:
5
测试输入:
60
预期输出:
2*2*3*5
开始你的任务吧,祝你成功!
###begin
n = int(input())
m = ''
while n != 0:
for i in range(2, n + 1):
if n == i: #除到最后,剩下的因子就是自己
m += str(i)
n = 0 #这个是打破while循环的条件
break
elif n % i == 0:
m += str(i) + '*'
n //= i #这里采用整除,因为用/的话会将n变成浮点数
break
print(m)
###end