Python刷题:流程控制(下)

今天刷的是PythonTip的Python 入门挑战中的题,整体难度不高,适合小白练手以及巩固知识点。下面会进行详细讲解。


每日一句

在无人问津的角落里,

默默努力的人独自发光,

孤独是他们奋斗路上的常客,

却也是成就他们的力量。


21.自然数求和

写一个程序来:计算前N个自然数的总和。

  • 获取一个变量 n 的整数输入。
  • 运行一个从 1n 的循环。
  • 在这个循环中,计算从1n 的所有数字的总和。
  • 打印结果。

**输入格式:**一个整数

解析:

第一步:获取输入

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" 循环,从1number 进行循环。
  • 在这个循环中,检查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,说明 inumber 的一个因子,使用 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 或其本身整除的数字。例如,7519,等等。

  • 输入一个数字并赋值给变量 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的倍数

写一个程序:打印从1n 的所有数字,除了3的倍数。

  • 运行一个从i = 1nfor循环。
  • 检查 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则停止。

  • 运行一个始终为 Truewhile 循环。
  • 在这个循环中,用户输入一个整数值,并把它存储在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中。
  • 定义两个整数变量t1t2,其值均为1
  • 使用一个for循环,从i = 1n,包括n进行循环。
  • 在每个循环中
    1. 打印t1的值。
    2. 定义 resultt1t2 之和。
    3. t2 的值分配给 t1
    4. result 的值分配给 t2

**输入格式:**一个正整数

解析:

第一步:获取输入

1.使用 input() 函数从用户处获取一个输入,表示一个正整数。

2.由于输入的是字符串,将其转换为整数类型,存储在 n 变量中。这是因为 n 将决定斐波那契数列的长度,使用整数可以精确表示数列的项数。

第二步:初始化变量

1.定义两个整数变量 t1t2,并将它们的值初始化为 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,它是 t1t2 的和,使用 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中。
  • 定义两个整数变量t1t2,其值均为1
  • t1小于n时,运行循环。
  • 在每个循环中,打印t1的值。
  • 同时,定义result 变量为t1t2之和。
  • t2的值分配给t1
  • result 的值分配给 t2

**输入格式:**一个正整数

解析:

第一步:获取输入

1.使用 input() 函数从用户处获取一个输入,表示一个正整数。

2.由于输入的是字符串,将其转换为整数类型,存储在 n 变量中。因为我们要根据这个数字 n 来确定打印斐波那契数的范围,使用整数可以更准确地进行比较和计算。

第二步:初始化变量

定义两个整数变量 t1t2,并将它们的值初始化为 1。这是斐波那契数列的前两项,后续的项将基于这两项计算得出。

第三步:使用循环打印小于 n 的斐波那契数

1.使用 while 循环,循环条件为 t1 < n。只要 t1 的值小于 n,就会一直执行循环。

2.在 while 循环内部:

(1).首先,使用 print() 函数打印 t1 的值,因为 t1 是当前斐波那契数。

(2).计算 result,它是 t1t2 的和,使用 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("非完全平方数")

总结

以上这些题目极为基础,对于语法学习尚处入门阶段的小白而言,是检测自身语法是否达标的理想之选。

持续更新~

相关推荐
啥都鼓捣的小yao几秒前
课程10. 聚类问题
人工智能·python·算法·机器学习·聚类
HeShen.2 分钟前
机器学习Python实战-第三章-分类问题-4.支持向量机算法
python·机器学习·支持向量机·分类·sklearn
真智AI20 分钟前
掌握 Pandas DataFrame 的复杂过滤技巧
python·pandas
CHNMSCS23 分钟前
PyTorch_张量索引操作
人工智能·pytorch·python
twodragon&primy26 分钟前
CSS布局
开发语言·前端·css·算法·html5
老胖闲聊37 分钟前
Python PyTorch库【机器学习框架】全面深入讲解与实践 入选【全站综合热榜第四】【领域内容榜第一】
开发语言·python
灏瀚星空38 分钟前
鞅理论:从数学基石到金融工程的量化革命
笔记·python·学习·数学建模·信息可视化·金融·矩阵
love530love40 分钟前
修复笔记:SkyReels-V2项目中的 from_config 警告
运维·windows·笔记·python·virtualenv
程序员Bears42 分钟前
深入理解现代JavaScript:从ES6+语法到Fetch API
前端·javascript·python·es6
燃星cro1 小时前
关于MindVault项目测试报告
java·开发语言·测试工具·spring