Python入门(八)分支与循环

简介: 了解了基本语句,知道话可以怎么讲了,在以后的练习中,会比较容易看懂整个程序的框架,并且能对所练习的实例,举一反三,这样学习会事半功倍。

分支

先例

写一个程序,按百分制评等级:
[90,100]等级为A,
[80,90)等级为B,
[60,80)等级为C,
[0,60)等级为D,
当用户输入分数时,自动转换为ABCD的形式输出。

  • rank1.py
>>> score = int ( input ('Please Input the Score:'))
if score < 0 or score > 100:
    print ('Input Error!')
if 90 <= score <= 100:
    print ('A')
if 80 < score <90:
    print ('B')
if 60 < score <=80:
    print ('C')
if 0 <= score <=60:
    print ('D')

F5运行后,输入分数:
1

  • rank2.py
>>> score = int ( input ('Please Input the Score:'))
if score < 0 or score > 100:
    print ('Input Error!')
elif 90 <= score <= 100:
    print ('A')
elif 80 < score <90:
    print ('B')
elif 60 < score <=80:
    print ('C')
elif 0 <= score <=60:
    print ('D')

F5运行后,输入分数:
2

  • rank3.py
>>> score = int ( input ('Please Input the Score:'))
if score < 0 or score > 100:
    print ('Input Error!')
else:
    if 90 <= score <= 100:
        print ('A')
    else:
        if 80 < score <90:
            print ('B')
        else:
            if 60 < score <=80:
                print ('C')
            else:
                print ('D')

F5运行后,输入分数:

3

rank1 VS rank2 VS rank3

  • rank1的特点:不论程序执行到哪一步能满足条件,都会把整个程序都走一遍,再输出结果。
  • rank2的特点:只要程序执行到满足条件的那一步,就会终止程序输出结果,比rank1节省时间。
  • rank3的特点:与rank2的执行方式一样,只是运用了python中特有的elif语句,简洁明了!
    rank2体现了python中的缩进机制,完美的避开了,在其他语言中经常会掉的坑。

悬挂else

像C语言中有如下代码:

if (a > 0)
    if (b > 0)
        printf("^_^")
else
    printf("&-&");

请问else是和哪个if搭配的呢?对和第二个if搭配!
BUT,在大量代码面前,这种框架的关键字像沧海一粟,找起来很费劲。
所以,悬挂else的问题在python中完全不存在。


条件表达式(三元操作符)

  • 买家秀:
x,y = 1,2
if x < y:
    print('min =',x)
else:
    print('min =',y)

F5运行后得:
vs1

  • 卖家秀:
x,y =1,2
print('min =', x if x < y else y)

F5运行后得:
vs1
即使得到相同的结果,过程仍可能有很大的差别!
由上述对比可知,条件表达式的语法为:

x if 条件 else y

当条件为真时,程序将返回x的值,反之,返回y的值。

断言(assert)

>>> assert 1 > 2
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    assert 1 > 2
AssertionError

由此异常可知,关键字 assert 后的条件为假时程序便会产生AssertionError,所以说,当我们需要确保程序中的某一个条件一定为真才能让程序正常工作的话时,用assert在程序中置入检查点。


循环

while 循环

while 条件:
  循环体

只要条件为真,程序就会一直执行循环体。

while 1:
    str1=str(input("你现在有什么想法:"))
    print("原来你很",str1,"呀!")

4

for 循环

for 目标 in 表达式:
  循环体

目标是指变量,表达式可为序列,可以是列表也可以是字符串。

>>> players = ['网易云音乐','酷狗音乐','QQ音乐']
>>> for player in players:
    print ('安装:',player,len(player))

    
安装: 网易云音乐 5
安装: 酷狗音乐 4
安装: QQ音乐 4

for 与很多BIF连用时会实现各种各样的功能,这里以range([star,]stop[,step=1])为例:

>>> for i in range(1,10,2):
    print(i)

    
1
3
5
7

break和continue

  • 关键字break的作用是终止当前循环,跳出循环体。
>>> for i in '123456789':
    if i == '7':
        break
    print(i)

    
1
2
3
4
5
6
  • 关键字continue的作用是终止当前循环,开始下次循环。
>>> for i in '123456789':
    if i == '7':
        continue
    print(i)

    
1
2
3
4
5
6
8
9

需要注意,循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被break终止时不执行。

>>> for i in range(1,10):
    for x in range(2,i):
        if i % x == 0:
            print(i,'能分解成',x,'*',i//x)
            break
    else:
        print(i,'是质数!')

        
1 是质数!
2 是质数!
3 是质数!
4 能分解成 2 * 2
5 是质数!
6 能分解成 2 * 3
7 是质数!
8 能分解成 2 * 4
9 能分解成 3 * 3

END!

目录
相关文章
|
9天前
|
搜索推荐 Python
Python上下文管理器DIY指南:从入门到精通,轻松驾驭资源管理
【7月更文挑战第6天】Python的上下文管理器是资源管理的利器,简化文件操作、网络连接等场景。通过定义类及`__enter__`、`__exit__`方法,可自定义管理器,如示例中的`MyContextManager`,实现资源获取与释放。使用with语句,提升代码可读性和维护性,不仅用于基本资源管理,还可扩展到事务控制、自动重试等高级应用,让编程更加高效和灵活。
24 0
|
7天前
|
安全 Java 调度
「Python入门」Python多线程
1. **线程与进程区别**:线程共享内存,进程独立;线程启动快,多线程效率高于多进程。 2. **多线程使用**:直接使用Thread类,通过`target`指定函数,`args`传递参数;或继承Thread,重写`run`方法。 3. **守护线程**:设置`setDaemon(True)`,主线程结束时,守护线程一同结束。 4. **join线程同步**:主线程等待子线程完成,如`t.join()`。 5. **线程锁**(Mutex):防止数据竞争,确保同一时间只有一个线程访问共享资源。 6. **RLock(递归锁)**:允许多次锁定,用于需要多次加锁的递归操作。
16 1
「Python入门」Python多线程
|
7天前
|
数据采集 XML JSON
「Python入门」Python代码规范(风格)
**Python编码规范摘要** - 编码:使用UTF-8编码,文件开头可声明`# -- coding: utf-8 --`。 - 分号:避免在行尾使用,不用于分隔命令。 - 行长:不超过80字符,长表达式可使用括号换行。 - 缩进:使用4个空格,禁止混用tab。 - 注释:行注释始于`#`和空格,块注释和文档注释遵循特定格式。 - 空行:函数和类定义间用2空行,方法间1空行,内部适当空行。 - 空格:运算符两侧各空一格,逗号后空格,括号内不空格。 - 命名:模块小写,变量下划线分隔,类驼峰式,布尔变量前缀`is_`。 - 引号:保持一致性,可使用单引号或双引号。
12 1
「Python入门」Python代码规范(风格)
|
7天前
|
SQL 关系型数据库 MySQL
「Python入门」python操作MySQL和SqlServer
**摘要:** 了解如何使用Python的pymysql模块与MySQL数据库交互。首先,通过`pip install pymysql`安装模块。pymysql提供与MySQL的连接功能,例如创建数据库连接、执行SQL查询。在设置好MySQL环境后,使用`pymysql.connect()`建立连接,并通过游标执行SQL(如用户登录验证)。注意防止SQL注入,使用参数化查询。增删改操作需调用`conn.commit()`来保存更改。pymssql模块类似,但导入和连接对象创建略有不同。
11 0
「Python入门」python操作MySQL和SqlServer
|
7天前
|
并行计算 Java Python
「Python入门」Python多进程
本文探讨Python中的单进程和多进程。多进程使用`multiprocessing`库,如`Process`类,类似于`threading.Thread`。进程是操作系统分配资源的基本单位,每个程序至少有一个进程。多进程允许多个任务并发执行,提升效率,尤其在多核CPU上优于多线程,因Python的GIL限制了多线程的并行计算。文中通过吃饭睡觉打豆豆的例子,展示了单进程按顺序执行,多进程则可并发执行。还介绍了带参数的多进程、获取进程ID、主进程等待子进程结束及子进程守护等概念。在IO或网络密集型任务中,多线程和多进程各有优势,具体选择应根据任务类型和资源需求。
「Python入门」Python多进程
|
7天前
|
IDE PHP 开发工具
「Python入门」python环境搭建及VScode使用python运行方式
**Python 概述与环境搭建摘要** Python是一种解释型、面向对象、交互式的脚本语言,以其简单易学和丰富库著称。安装Python时,推荐在Windows上选择.exe安装程序,记得勾选“Add Python to PATH”。安装完成后,通过环境变量配置确保Python可被系统识别。验证安装成功,可在CMD中输入`python --version`。Visual Studio Code (VScode)是流行的Python IDE,安装Python插件并选择解释器后,可直接在VScode内编写和运行Python代码。
16 0
「Python入门」python环境搭建及VScode使用python运行方式
|
8天前
|
Python
从入门到精通,Python元类:让你的代码拥有自我进化的超能力
【7月更文挑战第7天】元类是Python中类的类,用于定义类的创建和行为。它们允许在创建类时动态修改,常用于注册、属性修改或实现单例。要使用元类,需定义继承`type`的类,重写`__new__`或`__init__`。例如,一个简单的元类能自动给新类添加属性。虽然初学者会感到挑战,但通过实践能揭示其潜力,赋予代码超凡的灵活性。**
19 0
|
程序员 Python
6_python基础—循环(上)
6_python基础—循环
92 0
6_python基础—循环(上)
7_python基础—while循环应用1-100累加和
7_python基础—while循环应用1-100累加和
323 0
|
Python
6_python基础—循环(下)
6_python基础—循环
104 0