Python-程序逻辑结构与控制流

简介: Python-程序逻辑结构与控制流

程序逻辑

程序逻辑是编程语言中的重要组成部分,一般来说程序的结构包含有三种:

顺序结构、选择结构、循环结构


分支结构

在Python中可以通过if、else、elif关键字实现分支处理

使用if分支语句

# coding:UTF-8
age = 20 ;
if 18 < age <= 22:                                  # 分支语句
    print("我是个大学生,拥有无穷的拼搏与探索精神!")      # 利用缩进定义分支结构
  print("开始为自己的梦想不断努力拼搏!")

使用if…else分支语句

# coding:UTF-8
chePiao = 1 # ⽤1代表有⻋票,0代表没有⻋票
if chePiao == 1:
  print("有⻋票,可以上⽕⻋")
  print("终于可以⻅到Ta了,美滋滋~~~")
else:
  print("没有⻋票,不能上⻋")
  print("亲爱的,那就下次⻅了,⼀票难求啊~~~~(>_<)~~~~")

使用if…else多条件判断

  • 当xxx1满⾜时,执⾏事情1,然后整个if结束
  • 当xxx1不满⾜时,那么判断xxx2,如果xxx2满⾜,则执⾏事情2,然后整个if结束
  • 当xxx1不满⾜时,xxx2也不满⾜,如果xxx3满⾜,则执⾏事情3,然后整个if结束
# coding:UTF-8
score = 90.00;                          # 考试成绩
# score = float(input("输入成绩:"))      # 键盘输入考试成绩
if 90.00 <= score <= 100.00:            # 判断条件1
    print("优等生!")
elif 60.00 <= score < 90.00:            # 判断条件2
    print("良等生!")
else:                                   # 条件不满足时执行
    print("差等生。")

注意:和else⼀起使⽤

当 “性别为男性” 不满⾜,“性别为⼥性”也不满⾜,那么默认执⾏else后⾯的代码,即 “第三种性别的特征”相关代码

elif必须和if⼀起使⽤,否则出错


if嵌套

chePiao = 1 # ⽤1代表有⻋票,0代表没有⻋票
daoLenght = 9 # ⼑⼦的⻓度,单位为cm
if chePiao == 1:
  print("有⻋票,可以进站")
  if daoLenght < 10:
    print("通过安检")
    print("终于可以⻅到Ta了,美滋滋~~~")
  else:
    print("没有通过安检")
  print("⼑⼦的⻓度超过规定,等待警察处理...")
else:
  print("没有⻋票,不能进站")
  print("亲爱的,那就下次⻅了,⼀票难求啊~~~~(>_<)~~~~")

断言-assert

在Python语言中提供有assert关键字以实现断言,利用此机制就可以在程序开发过程中清楚的知道那个地方可能产生错误的执行结果。

# coding:UTF-8
age = 18
# 假设中间要经历过若干次的age变量内容修改操作
assert 18 < age < 50 , "age变量内容处理错误!"     # 程序断言,看是否满足判断条件
print("您的年龄是:%d" % age)

😀应用:猜拳游戏

  • 第一版:
# coding:UTF-8
import random
player_str = input('输入你的选择,石头/1 剪刀/2 布/3\n')
player = int(player_str)
computer = random.randint(1, 3)  # 逗号后加空格,虽然不影响结果
print('因为电脑输出了', computer)  # 没有字符串自动强类型转换,不能拼接                                                   
print('-----------')  
if player - computer == -1 or player - computer == 2:
    print('你赢了')
elif computer - player == -1 or computer - player == 2:
    print('电脑赢了')
else:
    print('平局')
print('-----------')

  • 第二版:
# coding:UTF-8
import random
class caiquan():
    print('欢迎来到猜拳游戏')
    print('进入游戏--8')
    print('退出游戏--9')
    b = input("请输入:")
    print("你的选择是: ", b)
    print("\n")
    while b == '8':
         print('请进行猜拳:')
         print('石头--0')
         print('布--1')
         print('剪刀--2')
         print('退出游戏--9')
         print('-------------')
         # 如果输入的数不是0,1,2;可以设置为重新输入,或者设置为失败
         a = random.randint(0, 2)
         b = int(input("你选择的是:"))  # 整型,
         print("电脑选择的是:", a)
         print("-------------")
         if (a == 0 and b == 1) or (a == 1 and b == 2) or (a == 2and b == 0):
            print("你赢了!\n")
         elif a == b:
            print("平局!\n")
         else:
          print("你输了!\n")
    print('-------------')
    print('继续游戏--8')
    print('退出游戏--9')
    b = input("请重新选择:")
    print("你的选择是: ", b + "\n")
if __name__ == "__main__":
    caiquan()
    print('游戏结束!')
    pass


循环结构


while循环结构

利用while语句实现循环条件的判断,当判断条件满足时则执行循环体的内容,有两种语法形式:

范例:使用while循环实现1 ~ 100的数字累加

# coding:UTF-8
sum = 0                                 # 保存累加计算结果
num = 1                                 # 循环初始化条件
while num <= 100:                       # 循环判断
    sum += num                           # 数据累加
    num += 1                             # 修改循环条件
print(sum)                              # 输出最终计算结果

范例:使用while…else实现1 ~ 100数字累加

# coding:UTF-8
sum = 0                                 # 保存累加计算结果
num = 1                                 # 循环初始化条件
while num <= 100:                       # 循环判断
    sum += num                          # 数据累加
    num += 1                            # 修改循环条件
else:                                   # 循环执行完毕后执行此语句
    print(sum)                          # 输出最终计算结果
print("计算完毕 ...")

范例:输出一个斐波那契数列(在1000以内的数值)

即著名的兔子数列,基本结构为:“1、1、2、3、5、8、13、21、34、55、…”,特点在于从数列的第三项开始,每个数的值为其前两个数之和

# coding:UTF-8
num_a = 0                                 # 定义初始化输出值
num_b = 1                                 # 定义初始化输出值
while num_b < 1000:                       # 输出内容不超过1000
    print(num_b, end="、")                # 输出数据
    num_a, num_b = num_b, num_a + num_b   # 数据计算
-----------------------------------
1、1、2、3、5、8、13、21、34、55、89、144、233、377、610、987、
>>>

for循环结构

在明确已知循环次数或者要进行序列数据(字符串就属于一种序列类型)遍历的情况下,可以利用for循环结构来实现循环控制,在Python中for循环结构有两种使用形式:

范例:使用for循环

# coding:UTF-8
for num in {1,2,3}:      # 定义要输出的数据范围   
print(num, end="、")     # 输出每次获取的数据

范例:使用for循环实现1 ~ 100数据累加

# coding:UTF-8
sum = 0                          # 定义变量保存计算总和
# 生成的最大数据为100,范围:0 - 100
for num in range(101):          # 遍历100次
    sum += num                        # 数据累加
print(sum)                               # 输出累加结果

范例:使用for…else循环实现1 ~ 100数据累加

# coding:UTF-8
sum = 0                   # 定义变量保存计算总和
# 生成的最大数据为100,范围:0 - 100
for num in range(101):        # 遍历100次
    sum += num                # 数据累加
else:
    print(sum)                  # 输出累加结果
print("计算结束。")

范例:迭代字符串

# coding:UTF-8
msg = "www.yootk.com"       # 定义字符串变量
for item in msg:          # 字符串遍历
    if 97 <= ord(item) <= 122:      # 97-122范围的编码为小写字母
        upper_num = ord(item) - 32      # 小写字母编码转大写字母编码
        print(chr(upper_num) , end="、")     # 将编码值转为字符
    else:             # 不是小写字母编码,不处理
        print(item, end="、")        # 信息输出

循环控制语句

在循环结构中只要循环条件满足,循环体的代码就会一直执行,但是在程序之中也提供有两个循环停止的控制语句:continue(退出本次循环)、break(退出整个循环)

范例:使用continue控制循环

# coding:UTF-8
for num in range(1, 10):        # 10次循环操作
    if num == 3:          # continue需要结合if分支使用
        continue          # 退出单次循环
    print(num, end="、")       # 内容输出

范例:使用break控制循环

# coding:UTF-8
for num in range(1, 10):        # 10次循环操作
    if num == 3:          # break需要结合if分支使用
       break          # 退出整个循环
    print(num, end="、")       # 内容输出

循环嵌套

循环结构可以在内部嵌入若干个子的循环结构,这样可以实现更加复杂的循环控制结构,但是需要注意的是,这类循环结构有可能会导致程序复杂度的提升

范例:打印乘法口诀表

# coding:UTF-8
for x in range(1, 10):                                                 # 外层循环,范围1 - 9
    for y in range(1, x + 1):                                          # 内层循环,通过外层循环控制次数
        print("%d * %d = %d" % (y, x, x * y), end="\t")                # 输出计算结果
    print()                                                            # 换行

范例:打印三角形

# coding:UTF-8
line = 5            # 打印的总行数
for x in range(0, line):        # 外层循环控制输出行
    for z in range(0, line - x):      # 随着行的增加,输出的空格数减少
        print("", end=" ");       # 信息输出
    for y in range(0, x + 1):         # 随着行的增加,输出的“*”增多
        print("*", end=" ")       # 信息输出
    print()         # 换行

范例:通过Python特点实现代码改进

# coding:UTF-8
line = 5                    # 总共打印的行数
for x in range(0, line):              # 循环控制输出行
  print(" " * (line - x),end=" ")         # 空格输出
  print("* " * (x + 1))               # “*”号输出


相关文章
|
10天前
|
Python
python学习3-选择结构、bool值、pass语句
python学习3-选择结构、bool值、pass语句
|
1月前
|
存储 算法 数据处理
使用Python编写高效的数据处理程序
在当今信息爆炸的时代,数据处理变得越来越重要。本文将介绍如何使用Python语言编写高效的数据处理程序,包括利用Python内置的数据结构和函数、优化算法和并行处理等技术,帮助开发者更好地处理和分析大规模数据。
|
28天前
|
Python
Python学习之路 02 之分支结构
Python学习之路 02 之分支结构
47 0
Python学习之路 02 之分支结构
|
28天前
|
Java Python 开发者
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
线程池详解与异步任务编排使用案例-xian-cheng-chi-xiang-jie-yu-yi-bu-ren-wu-bian-pai-shi-yong-an-li
77 2
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
|
6天前
|
数据采集 JavaScript 前端开发
使用Python打造爬虫程序之破茧而出:Python爬虫遭遇反爬虫机制及应对策略
【4月更文挑战第19天】本文探讨了Python爬虫应对反爬虫机制的策略。常见的反爬虫机制包括User-Agent检测、IP限制、动态加载内容、验证码验证和Cookie跟踪。应对策略包括设置合理User-Agent、使用代理IP、处理动态加载内容、验证码识别及维护Cookie。此外,还提到高级策略如降低请求频率、模拟人类行为、分布式爬虫和学习网站规则。开发者需不断学习新策略,同时遵守规则和法律法规,确保爬虫的稳定性和合法性。
|
7天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
14 0
|
10天前
|
存储 Python
Python的结构
【4月更文挑战第15天】Python的结构
17 4
|
17天前
|
Python
Python控制结构学习应用案例详解
Python控制结构包含条件语句、循环语句和异常处理。条件语句用if-elif-else判断数字正负;for循环示例输出1到10的整数,while循环计算1到10的和;异常处理用try-except-finally处理除零错误,打印提示信息并结束。
10 3
|
23天前
|
分布式计算 算法 搜索推荐
优化 Python 程序的五大技巧
本文介绍了优化 Python 程序的五大技巧,涵盖了代码结构优化、算法选择、内置函数利用、库的使用以及并行处理等方面。通过对这些技巧的实践,可以提升 Python 程序的性能和效率,从而更好地满足各类应用的需求。
|
23天前
|
Python
python使用tkinter库,封装操作excel为GUI程序
python使用tkinter库,封装操作excel为GUI程序

热门文章

最新文章