【Python】学习笔记 -- CH4. 程序

文章目录

  • CH4. 程序
    • 程序的描述方式
      • 自然语言
      • 流程图
      • 伪代码
    • 程序的组织结构
      • 顺序结构
      • 选择/分支结构
        • Python3.11新特性 —— 模式匹配
      • 循环结构
        • 遍历循环for的语句结构
        • 无限循环结构while
        • 循环结构输出图形
      • 程序跳转语句
        • break
        • continue
      • 空语句pass

CH4. 程序

程序的描述方式

自然语言

  • 使用人类语言直接描述程序

流程图

  • 流程图是用一系列图形、流程线和文字说明描述程序的基本操作和控制流程,主要适用于较短的算法
note
起止框
判断框
处理框
输入/输出框
起止框
连接点
  • 注释框、流向线

伪代码

  • 是介于自然语言和编程语言之间的一种算法描述语言,如果程序比较小,可以直接使用代码描述

程序的组织结构

顺序结构

  • 按程序语句的自然顺序,从上到下,依次执行

选择/分支结构

  • 选择结构也称分支结构,是按照条件选择执行不同的代码段

  • 单分支结构

    if 表达式:
    	语句块
    
  • 双分支结构 if-else

  • 多分支结构 if-elif-else

  • 分支结构可以互相嵌套

Python3.11新特性 —— 模式匹配
  • match-case
score=input('请输入成绩等级:')
match score:
    case 'A':
        print("优秀")
    case 'B':
        print("良好")
    case 'C':
        print("中等")
    case 'D':
        print("及格")
    case 'E':
        print("不及格")

循环结构

遍历循环for的语句结构
for value in nums:
    pass

# for...else...结构
for value in nums:
    pass
else:
    pass
# range(m,n)函数,Python内置函数,产生一个[m,n)的整数序列
for i in range(1,11):
    if i%2==0:
        print(i, "是偶数")
# test_for_circle.py
# _*_ coding=UTF-8 _*_

'''
判断100到999之间的水仙花数
一个三位数A的个位数为x,十位数为y,百位数为z
如果A == x^3 + y^3 + z^3,那么这个三位数A为水仙花数
'''

for i in range(100, 1000):
    sd = i%10          # 个位数
    tens = i//10%10    # 十位数
    huns = i//100      # 百位数

    # 判断是否为水仙花数
    if sd**3+tens**3+huns**3 == i:
        print(i)

'''
153
370
371
407
'''
无限循环结构while
  • while 或者while...else...结构

  • while循环的四个步骤:

  1. 初始化变量

  2. 条件判断

  3. 语句块

  4. 改变变量

  • 循环结构可以相互嵌套
循环结构输出图形
# coding=utf-8

# 打印长方形
print('-'*20)
for i in range(1,4):
    for j in range(1,5):
        print('*', end='')
    print()

# 打印一个直角三角形
print('-'*20)
for i in range(1, 6):
    for j in range(1,i+1):
        print('*', end='')
    print()

# 打印一个倒三角
print('-'*20)
for i in range(1, 6):
    for j in range(1,7-i):
        print('*', end='')
    print()

# 打印一个等边三角形
print('-'*20)
row = 5
col = 2 * row - 1
for i in range(1, row+1):
    for j in range(1,row+1-i):
        print(' ',end='')
    for k in range(1,2*i):
        print('*',end='')
    print()


# 打印一个菱形
print('-'*20)
#row = eval(input('请输入菱形的行数:'))
row = 9
while row%2 == 0:
    row = eval(input('请输入菱形的行数(奇数行):'))
top_row = row//2 + 1
for i in range(1, top_row+1):
    for j in range(1,top_row+1-i):
        print(' ',end='')
    for k in range(1,2*i):
        print('*',end='')
    print()

bottom_row = row//2
for i in range(1, bottom_row+1):
    for j in range(1,i+1):
        print(' ', end='')
    for k in range(1,2*(bottom_row+1-i)):
        print('*',end='')
    print()

# 打印一个空心菱形
print('-'*20)
# row = eval(input('请输入菱形的行数:'))
row = 9
while row%2 == 0:
    row = eval(input('请输入菱形的行数(奇数行):'))
top_row = row//2 + 1
for i in range(1, top_row+1):
    for j in range(1,top_row+1-i):
        print(' ',end='')
    for k in range(1,2*i):
        if k > 1 and k < 2*i - 1:
            print(' ',end='')
        else:
            print('*',end='')
    print()

bottom_row = row//2
for i in range(1, bottom_row+1):
    for j in range(1,i+1):
        print(' ', end='')
    for k in range(1,2*(bottom_row+1-i)):
        if k > 1 and k < 2*(bottom_row+1-i)-1:
            print(' ',end='')
        else:
            print('*',end='')
    print()


'''
--------------------
****
****
****
--------------------
*
**
***
****
*****
--------------------
*****
****
***
**
*
--------------------
    *
   ***
  *****
 *******
*********
--------------------
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
--------------------
    *
   * *
  *   *
 *     *
*       *
 *     *
  *   *
   * *
    *
'''

程序跳转语句

break
  • 用于跳出本次循环结构
continue
  • 用于跳过本次循环的后续代码,而继续执行下一次循环操作

空语句pass

  • pass是Python中的保留字
  • 在语法结构中只起到占位符的作用,使语法结构完整,不报错
  • 一般可用在ifforwhile、函数的定义、类的定义中
if True:
    pass

while 1:
    pass
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值