【Python分支循环概要】| 回文数&水仙花数&杨辉三角示例

目录

一、知识点概要        

        1.分支结构        

        2.循环结构

        3.分支循环

二、代码示例

        1.回文数

        2.水仙花数

        3.杨辉三角


一、知识点概要        

        1.分支结构        

                核心思想

                        根据条件判断结果选择程序执行语句。

                常用结​​​​​​​构:

                        · 1.)if...    

                          · 2.)if...else...

                          · 3.)if...elif...elif...else

                          · 4.)block1 if... else... block2

        2.循环结构

                核心思想:

                        重复执行某一特定语句或语句模块。        

                  常用结构:

                        循环:

                                · 1.)while

                                · 2.)   for

                        终止:

                                · 1.) break

                                ` 2.) continue

  • break语句是跳出当层循环,不再继续执行;
  • 而continue语句则是跳出当层循环一次,之后会继续执行;
  • while...else...语句中,通过在循环体中嵌入break语句,可通过结果是否执行else语句判断循环体内语句最终是否执行完全。

        3.分支循环

                核心思想:

                        将条件语句以及循环语句通过组合实现条件循环,解决特定问题。

                重要工具:        

                        ·1.)思维导图

                        ·2.)流程图

二、代码示例

        1.回文数

        回文数是指指正序(从左向右)和倒序(从右向左)读都是一样的整数。

#为了避免污染原数据,考虑引入一个新的临时变量temp用于存储计算
num = int(input("请输入一个整数:"))
temp = num.copy()

#将不符合条件的数字排出在外
if temp < 0 or (temp % 10 == 0 and temp != 0):
    print(num,"不是回文数",sep="")
else:
    revertedNumber = 0
    while temp>revertedNumber:
        revertedNumber = revertedNumber*10 + temp%10
        temp //= 10
    if revertedNumber == temp or revertedNumber//10:
        print(num,"是回文数")
    else:
        print(num,"不是回文数")

        2.水仙花数

        水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身

(例如:1^3 + 5^3+ 3^3 = 153)。”

  • 方法一: 
for num in range(100,1000):
    if num == (num//100)**3+((num//10)%10)**3+(num%10)**3:
        print(num)
    else:
        continue
  • 方法二: 
num = str(input("请输入需要判断的数字:"))
"是回文数" if num == num[::-1] else "不是回文数"

 

        3.杨辉三角

# 1. 初始化一个10*10的矩阵用于存储
triangle = [] #首先初始化一个一维空列表
for i in range(10): #外层循环,定义矩阵行
    triangle.append([]) #首先将列表初始化为包含10个空列表元素的一维列表
    for j in range(10): #内层循环,定义矩阵列
        triangle[i].append(0) #其次将每个外层循环元素初始化包含10个0作为初始元素的二维列表
        
# 2. 将左右两边元素赋值为1
for i in range(10): #通过观察杨辉三角可知最外侧元素均为1
        triangle[i][0] = 1 #将最左侧元素赋值为1
        triangle[i][i] = 1 #将最右侧元素赋值为1
        
# 3. 为其他元素赋值
for i in range(2,10): #从第三行元素开始为其他元素赋值
    for j in range(1,i): #range()函数遍历可迭代对象为左闭右开,因端点处数值均为1,故此处遍历范围为(1,i)
        triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j] # **杨辉三角中元素特定关系
        
# 4. 输出杨辉三角
for i in range(10): #循环遍历,控制行元素的打印
    for m in range((10-i)//2): #每行通过“tab”分隔,第i行“tab”个数为(10-i)//2,由于为取整,故相邻两元素最前的“tab”间隔个数相同
        print("\t",end="") 
    for j in range(i+1): #循环遍历,控制列打印每个元素
        if i % 2 == 1: #条件判断
            print("    ",end="") #将偶数行使用四个间隔与相邻行错开
        print(triangle[i][j],end = "\t") #打印每一个元素,同时使用“tab”间隔        
    
    print(" ")#内层循环完后进行换行

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值