
今天刷的是PythonTip的Python 入门挑战中的题,整体难度不高,适合小白练手以及巩固知识点。下面会进行详细讲解。
每日一句
在无人问津的角落里,
默默努力的人独自发光,
孤独是他们奋斗路上的常客,
却也是成就他们的力量。

21.自然数求和
写一个程序来:计算前N个自然数的总和。
- 获取一个变量
n
的整数输入。- 运行一个从
1
到n
的循环。- 在这个循环中,计算从
1
到n
的所有数字的总和。- 打印结果。
**输入格式:**一个整数
解析:
第一步:获取输入
1.使用 input()
函数从用户处获取一个输入,表示一个整数 n
。
2.由于输入的是字符串,将其转换为整数类型,存储在 n
变量中。这是因为我们要对 n
进行计数操作,使用整数可以精确表示数量。
第二步:计算总和
1.初始化一个变量 sum_total
为 0,用于存储从 1 到 n
的数字总和。
2.使用 for
循环从 1 迭代到 n
,可以使用 for i in range(1, n + 1)
这样的语句,其中 i
是迭代变量,range(1, n + 1)
会生成从 1 到 n
的整数序列(包括 1 和 n
)。
3.在 for
循环内部,将 i
的值累加到 sum_total
中。每次迭代,sum_total
的值会更新为其原有的值加上当前迭代变量 i
的值,实现求和操作。
第三步:输出结果
使用 print()
函数将存储在 sum_total
中的总和结果打印出来,以便用户查看从 1 到 n
的自然数总和。
代码如下:
python
n = int(input())
# 初始化累加器
add = 0
# 循环
for i in range (1,n+1):
# 增加i到累加器
add = add + i
# 打印结果
print(add)
22.一个整数的所有因子
写一个程序: 打印出一个数字的所有因子。
- 获取一个整数输入并将其分配给
number
变量。- 创建一个 "for" 循环,从1 到
number
进行循环。- 在这个循环中,检查
number
是否能完全被i
整除(余数0)。- 如果是,则打印
i
的值。输入格式:一个正整数
解析:
第一步:获取输入
1.使用 input()
函数从用户处获取一个输入,表示一个整数。
2.由于输入的是字符串,将其转换为整数类型,存储在 number
变量中。因为我们要对这个数字进行因子的计算,使用整数类型可以确保计算的准确性。
第二步:创建并执行 for
循环
1.使用 for
循环从 1 迭代到 number
。可以使用 for i in range(1, number + 1)
这样的语句,其中 i
是迭代变量,range(1, number + 1)
会生成从 1 到 number
的整数序列(包括 1 和 number
)。
2.在 for
循环内部,检查 number
是否能被 i
整除,也就是计算 number
除以 i
的余数是否为 0。可以使用取余运算符 %
来计算余数,即 number % i == 0
。
第三步:输出因子
如果 number
除以 i
的余数为 0,说明 i
是 number
的一个因子,使用 print()
函数将 i
的值打印出来,这样就可以找到并输出 number
的所有因子。
代码如下:
python
number = int(input())
# 循环
for i in range (1,number+1):
# 判断i是否能整除 number
# 如果是,打印i
if number % i == 0:
print(i)
23.判断质数
写一个程序: 判断一个数字是否是质数。
质数是一个只能被1 或其本身整除的数字。例如,7 ,5 ,19,等等。
- 输入一个数字并赋值给变量
number
。- 判断
number
能否被从2到number
的某一个数字整除。- 如果该数可以被除,则打印 "不是质数"。否则,打印 "质数"。
输入格式:一个整数
解析:
第一步:获取输入
1.使用 input()
函数从用户处获取一个输入,表示一个整数。
2.由于输入的是字符串,将其转换为整数类型,存储在 number
变量中。这是因为我们要对这个数字进行质数的判断,使用整数类型便于后续的整除运算。
第二步:判断是否为质数
1.首先,考虑特殊情况,如果 number
小于等于 1,它不是质数,直接打印 "不是质数"
。
2,.对于 number
大于 1 的情况,使用 for
循环从 2 迭代到 number - 1
。可以使用 for i in range(2, number)
这样的语句,其中 i
是迭代变量,range(2, number)
会生成从 2 到 number - 1
的整数序列(包括 2 但不包括 number
)。
3.在 for
循环内部,检查 number
是否能被 i
整除,也就是计算 number
除以 i
的余数是否为 0。可以使用取余运算符 %
来计算余数,即 number % i == 0
。
4.如果 number
除以 i
的余数为 0,说明 number
能被 i
整除,那么它不是质数,使用 print()
函数打印 "不是质数"
,并使用 break
语句终止循环,因为已经确定该数不是质数,无需继续检查。
5.如果 for
循环正常结束(即没有被 break
),说明 number
不能被 2 到 number - 1
中的任何数整除,它是质数,使用 print()
函数打印 "质数"
。
代码如下:
python
number = int(input())
# 标记number是否为质数,0是,1 不是
flag = 0
# 创建一个2到`number`的循环。不包括`number`。
for i in range (2,number):
# 判断循环过程的数是否能被`number`整除。
# 如果是,则设置标志位,表明不是质数
if number % i ==0:
flag = 1
# 打印是否是质数。
if flag == 0:
print("质数")
else:
print("不是质数")
24.一个整数有多少位?
编写一个程序来计算一个数字的位数。
- 输入一个整数并存储在
number
变量中。- 创建一个整数变量
count
并将数值0赋给它。- 创建一个
while
循环,只要number
不等于0就循环。- 循环中,每次可以将
number
整除10,得到商,从而去掉最后一个数字。count
增加1。- 在循环外,打印
count
的值。假设: 假设用户总是输入一个正数。
输入格式:一个整数
解析:
第一步:获取输入
1,.使用 input()
函数从用户处获取一个输入,表示一个整数。
2.由于输入的是字符串,将其转换为整数类型,存储在 number
变量中。这是因为我们要对该数字进行位数的计算,使用整数便于后续的数学运算。
第二步:初始化计数器
创建一个整数变量 count
并将其初始化为 0。这个变量将用于计数数字的位数。
第三步:使用 while
循环计算位数
1.使用 while
循环,只要 number
不等于 0 就执行循环体。
2.在循环内部,将 number
除以 10 取整(使用 //
运算符),得到的商存储回 number
变量中。这样每次循环会去掉 number
的最后一位数字。
3.每次循环时,将 count
的值加 1,用于记录数字的位数。
第四步:输出结果
在 while
循环结束后,使用 print()
函数将 count
的值打印出来,显示输入数字的位数。
代码如下:
python
number = int(input())
count = 0
# 如果number不等于0,就循环。
while number != 0:
# 除以10。
number = number // 10
# 位数增加1
count += 1
# 打印结果
print(count)
25.不要3的倍数
写一个程序:打印从1 到n 的所有数字,除了3的倍数。
- 运行一个从
i = 1
到n
的for
循环。- 检查
i
是否能完全被3整除。- 如果
i
能被3整除,跳过这个循环,进入下一个迭代。- 打印
i
的值。输入格式:一个整数
解析:
第一步:获取输入
1.使用 input()
函数从用户处获取一个输入,表示一个整数。
2.由于输入的是字符串,将其转换为整数类型,存储在 n
变量中。因为我们要确定打印数字的范围,使用整数类型可以准确表示范围的上限。
第二步:创建并执行 for
循环
1.使用 for
循环从 1 迭代到 n
。可以使用 for i in range(1, n + 1)
这样的语句,其中 i
是迭代变量,range(1, n + 1)
会生成从 1 到 n
的整数序列(包括 1 和 n
)。
第三步:检查并处理数字
1.在 for
循环内部,使用取余运算符 %
来检查 i
是否能被 3 整除,即 i % 3 == 0
。
2.如果 i
能被 3 整除,使用 continue
语句跳过当前迭代,直接进入下一个迭代,不执行后续的打印操作。
3.如果 i
不能被 3 整除,使用 print()
函数将 i
的值打印出来,这样就可以打印出从 1 到 n
中除了 3 的倍数以外的所有数字。
代码如下:
python
n = int(input())
# 循环
for i in range (1, n+1):
# 是否能被3整除
if i % 3 == 0:
# 如果是,跳过
continue
# 打印
print(i)
26.直到用户输入0
写一个程序:打印数字,直到用户输入0则停止。
- 运行一个始终为
True
的 while 循环。- 在这个循环中,用户输入一个整数值,并把它存储在
number
变量中。- 判断该值是否为0。
- 如果输入值是0,则终止循环。
- 否打印所有
number
的值。输入格式:多个整数
解析:
第一步:设置循环
使用 while True
创建一个无限循环,因为要持续接收用户输入,直到输入为 0 才停止。
第二步:获取用户输入
1.在 while
循环内部,使用 input()
函数从用户处获取一个输入,表示一个整数。
2.由于输入的是字符串,将其转换为整数类型,存储在 number
变量中。这是为了对用户输入的数字进行判断和处理。
第三步:检查输入并处理
1.使用 if
语句检查 number
的值是否为 0。
2.如果 number
为 0,使用 break
语句终止 while
循环,因为输入为 0 时程序应该停止接收和打印数字。
3.如果 number
不为 0,使用 print()
函数将 number
的值打印出来,以显示用户输入的非零数字。
代码如下:
python
# 一直为真的循环
while True:
# 输入一个数字
number = int(input())
# 如果是0停止循环
if number == 0:
break
# 打印数字
print(number)
27.打印正整数
编写一个程序:打印正整数数字。
- 运行一个条件为真的循环
while True:
- 在每次循环中,输入一个整数值,并将其存储在
number
变量中。- 检查
number
是否小于0。如果是,跳过当前迭代。- 检查
number
是否等于0。如果是,终止循环。- 如果用户输入的是一个正数,打印所有
number
的值。输入格式:多个整数
解析:
第一步:设置循环
使用 while True
创建一个无限循环,因为程序需要不断接收用户的输入,直到满足终止条件。
第二步:获取用户输入
1.在 while
循环内部,使用 input()
函数从用户处获取一个输入,表示一个整数。
2.由于输入的是字符串,将其转换为整数类型,存储在 number
变量中。这样做是为了方便后续对输入数字进行大小比较和其他处理。
第三步:检查输入数字并进行相应处理
1.使用 if
语句检查 number
是否小于 0。
2.如果 number
小于 0,使用 continue
语句跳过当前迭代,直接进入下一次迭代,不进行后续的操作。
3.使用另一个 if
语句检查 number
是否等于 0。
4.如果 number
等于 0,使用 break
语句终止 while
循环,因为当输入为 0 时,程序需要停止运行。
5.如果 number
是正数(既不小于 0 也不等于 0),使用 print()
函数将 number
的值打印出来,这样用户输入的正整数将被输出。
代码如下:
python
# 一直为真的循环
while True:
# 输入一个数字
number = int(input())
# 判断是否小于0
if number < 0 :
continue
# 判断是否等于0
if number == 0 :
break
# 打印数字
print(number)
28.斐波那契数列
写一个程序:打印斐波那契数列。
提示:斐波那契数列是一系列的数字,其中下一个数字是前面两个数字的和。例如:
1 1 2 3 5 8 ...
任务:
- 输入一个整数,并将其存储在
n
中。- 定义两个整数变量
t1
和t2
,其值均为1。- 使用一个
for
循环,从i = 1
到n
,包括n
进行循环。- 在每个循环中
- 打印
t1
的值。- 定义
result
为t1
和t2
之和。- 将
t2
的值分配给t1
。- 将
result
的值分配给t2
。**输入格式:**一个正整数
解析:
第一步:获取输入
1.使用 input()
函数从用户处获取一个输入,表示一个正整数。
2.由于输入的是字符串,将其转换为整数类型,存储在 n
变量中。这是因为 n
将决定斐波那契数列的长度,使用整数可以精确表示数列的项数。
第二步:初始化变量
1.定义两个整数变量 t1
和 t2
,并将它们的值初始化为 1。这是斐波那契数列的前两项,后续的项将基于这两项计算得出。
第三步:使用 for
循环生成斐波那契数列
1.使用 for
循环从 1 迭代到 n
。可以使用 for i in range(1, n + 1)
这样的语句,其中 i
是迭代变量,range(1, n + 1)
会生成从 1 到 n
的整数序列(包括 1 和 n
)。
2.在 for
循环内部:
(1).首先,使用 print()
函数打印 t1
的值,因为 t1
是当前斐波那契数列的项。
(2).计算 result
,它是 t1
和 t2
的和,使用 result = t1 + t2
。
(3).将 t2
的值赋给 t1
,这是将当前项更新为前一项,为下一个数的计算做准备。
(4).将 result
的值赋给 t2
,这是将 result
作为下一项的计算结果存储起来,用于下一次迭代。
代码如下:
python
n = int(input())
t1 = 1
t2 = 1
result = 0
# 1到n的循环
for i in range(1,n+1):
# 打印t1
print(t1)
# 定义result为t1和t2之和
result = t1 + t2
# 将 `t2` 的值分配给 `t1`
t1 = t2
# 将 `result` 的值分配给 `t2`
t2 = result
29.打印小于n的斐波那契数
写一个程序:打印所有小于n的斐波那契数。
提示: 斐波那契数列是一系列的数字,其中一个数字是最后两个数字的相加。比如说:
1 1 2 3 5 ...
任务:
- 接受用户的整数输入,并将其存储在
n
中。- 定义两个整数变量
t1
和t2
,其值均为1。- 当
t1
小于n
时,运行循环。- 在每个循环中,打印
t1
的值。- 同时,定义
result
变量为t1
和t2
之和。- 将
t2
的值分配给t1
。- 将
result
的值分配给t2
。**输入格式:**一个正整数
解析:
第一步:获取输入
1.使用 input()
函数从用户处获取一个输入,表示一个正整数。
2.由于输入的是字符串,将其转换为整数类型,存储在 n
变量中。因为我们要根据这个数字 n
来确定打印斐波那契数的范围,使用整数可以更准确地进行比较和计算。
第二步:初始化变量
定义两个整数变量 t1
和 t2
,并将它们的值初始化为 1。这是斐波那契数列的前两项,后续的项将基于这两项计算得出。
第三步:使用循环打印小于 n
的斐波那契数
1.使用 while
循环,循环条件为 t1 < n
。只要 t1
的值小于 n
,就会一直执行循环。
2.在 while
循环内部:
(1).首先,使用 print()
函数打印 t1
的值,因为 t1
是当前斐波那契数。
(2).计算 result
,它是 t1
和 t2
的和,使用 result = t1 + t2
。
(3).将 t2
的值赋给 t1
,这是将当前项更新为前一项,为下一个数的计算做准备。
(4).将 result
的值赋给 t2
,这是将 result
作为下一项的计算结果存储起来,用于下一次迭代。
代码如下:
python
n = int(input())
t1 = 1
t2 = 1
result = 0
#循环
while t1 < n:
# 打印t1
print(t1)
# 定义result 为t1和t2之和
result = t1 +t2
# 将t2的值分配给t1
t1 =t2
# 将result的值分配给t2
t2 = result
30.判断完全平方数
写一个程序:判断一个数字是否是完全平方数。
- 导入
math
模块。- 获取一个整数输入,并存储在
number
变量中。- 使用
sqrt()
函数找到该数字的平方根,并将其分配给square_root
变量。- 使用
%
运算符得对1 取余,计算出的平方根的余数,并把它赋给check_remainder
。- 如果余数等于0 ,打印
完全平方数
。- 否则打印
非完全平方数
。输入格式:一个整数
解析:
第一步:导入模块
首先,使用 import math
导入 math
模块。这个模块提供了许多数学函数,其中 sqrt()
函数将用于计算数字的平方根。
第二步:获取输入
1.使用 input()
函数从用户处获取一个输入,表示一个整数。
2.由于输入的是字符串,将其转换为整数类型,存储在 number
变量中。这是因为我们要对这个数字进行完全平方数的判断,使用整数类型可以保证计算的准确性。
第三步:计算平方根并检查余数
1.使用 math.sqrt()
函数计算 number
的平方根,并将结果存储在 square_root
变量中。
2.使用取余运算符 %
计算 square_root
对 1 取余的结果,并将其存储在 check_remainder
变量中。
第四步:判断并输出结果
1.使用 if
语句检查 check_remainder
是否等于 0。
2.如果 check_remainder
等于 0,说明 number
是完全平方数,使用 print()
函数打印 "完全平方数"
。
3.否则,说明 number
不是完全平方数,使用 print()
函数打印 "非完全平方数"
。
代码如下:
python
# 导入math模块
import math
number = int(input())
# 计算平方根
square_root = math.sqrt(number)
# 对1取余
check_remainder = number % square_root
# 如果余数等于0,打印"完全平方数";否则打印"非完全平方数"
if check_remainder == 0:
print("完全平方数")
else:
print("非完全平方数")
总结
以上这些题目极为基础,对于语法学习尚处入门阶段的小白而言,是检测自身语法是否达标的理想之选。
持续更新~