首页 > 编程语言 >PYTHON 控制语句

PYTHON 控制语句

时间:2022-11-29 17:33:56浏览次数:35  
标签:语句 case return 控制 PYTHON else score print match

1.1 if语句

1.1.1 if结构

if 条件:
	代码块

如果条件成立(True),则执行代码块。

score = 100

if score >=90:
    print("优秀")

1.1.2 if -else结构

if 条件:
    代码块1
else:
    代码块2

条件成立执行代码块1,否则执行代码块2

score = int(input("请输入成绩:"))

if score >= 60:
    print("及格")
else:
    print("不及格")

1.1.3 elif 结构

if 条件1:
	代码块1
elif 条件2:
    代码块2
elif 条件3:
    代码块3
    ……
elif 条件n:
    代码块n
else:
    代码块n+1

从上到下,依次测试,如果哪个条件成立就执行哪个。 都不成立执行代码块n+1

score = int(input("请输入成绩:"))

if score >= 90:
    print("优秀")
elif score >= 70:
    print("良好")
elif score >= 60:
    print("及格")
else:
    print("不及格")

1.2 三元运算

对于c语言: 条件 ? 表达式1:表达式2

#include <stdio.h>

int main() {
        int score = 50;
        char *ps = score >=60 ? "及格":"不及格";
        printf("%s\n",ps);
        return 0;
}

相要实现相同的功能,python中用:

表达式1 if 条件 else 表达式2
score = 50
result = "及格" if score >= 60 else "不及格"
print(result)

1.3 match ... case结构

类似于c语言中的switch结构,但要强大的多。python 3.10中开始出现。

1.3.1 基本匹配

n = -1
match n:
    case 1:
        print("正数")
    case 0:
        print("0")
    case -1:
        print("负数")
    case _:
        print("错误")

n和匹配项对比,成立执行其中的代码,都不成功执行 _的分支 ,类似switch中的default

1.3.2 匹配多个值(或)

同时匹配多个值

def match_test(status):
    match status:
        case 1 | 2 | 3:  # status 是1,2,3都进入这个分支
            return "正常结束"
        case 4 | 5:
            return "发生一些错误"
        case _:
            return "致命错误"

print(match_test(2))

1.3.3 列表匹配

在匹配中按最接近的匹配,同时可以进行赋值,元组同样。

def match_test(status):
    match status:
        case [1, 2]:
            return "1,2"
        case [3, 4]:
            return "3,4"
        case [3, b]:
            return b
        case [a, b, c]:
            return "->",a, b, c
        case [a, b, *args]:
            return a, b, *args
        case _:
            return "错误"


print(match_test([3, 3, 3]))


print(match_test([3, 3, 3]))

[1,2] 匹配第一个: case [1, 2]

[3,4] 匹配第二个:case [3, 4]

[3,5] 匹配第三个,同时把5赋值给b:case [3, b]

[3,3,3] 匹配第四个,同时赋值给a,b,c:case [a, b, c]

[3,4,5,6] 匹配第五个,同时赋值给a=3,b=4,args=[5,6]

子模式:匹配多个条件

def match_test(status):
    match status:
        # 匹配其中的一个单词
        case [('morning' | 'afternoon' | 'evening'), info]:
            print("Good {0[0]}! {0[1]}".format(status))
        case ['hello', 'abc']:
            print("hello, abc!")
        case _:
            print("错误")


match_test(['morning', 'It is time to work!'])
match_test(['hello', 'abc'])

1.3.4 匹配对象属性

class Circle:
    def __init__(self, x, y, radius):
        self.x = x
        self.y = y
        self.radius = radius


def match_test(circle):
    match circle:
        case Circle(x=1, y=1, radius=1):
            print("标准大小")
        case Circle(x=2, y=3, radius=4):
            print("预设大小")
        case _:
            print("错误")


match_test(Circle(1, 1, 1))

1.3.5 在匹配中添加条件判断

status = 1
flag = True
match status:
    case 1 if flag:
        print("1")
    case 2:
        print("2")

1.4 while循环

while 条件:
    语句块
    continue  # 结束本次循环,继续执行下一次循环
    break     # 强制离开循环
else:
    语句块

当循环条件为False时执行else块(就是正常结束),如果用break,异常,return强制结束则不行。

i = 0
while i < 10:
    i += 1
    print('*'*i)
else:
    print("end")   

1.5 for循环

for 迭代变量 in 序列:  # 序列包括字符串,列表,元组,集合等
    语句块
    continue
    break
else:
    语句块

当循环正常结束时执行else块,如果用break,异常,return强制结束则不行。

for i in "hello world":
    print(i)
else:
    print("end")

a = [1,2,3,4,5,6]
for i in a[1:3]:  # 循环列表区间内容
    print(i)

1.5.1 循环range

生成数字序列:range(开始,结束,步长), 注意不包括结束位置

for i in range(5): # 0-5(不包括5)
    print(i)

for i in range(0,100,2):
    print(i)

1.5.2 循环enumerate对象

他会给列表元素添加一个序号,生成:序号 元素值

a = ["a", "b", "c", "d"]
for n, item in enumerate(a):
    print(n, item)

1.5.3 九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print("{}×{}={:2d}".format(j,i,i*j), end="\t")
    print()

输出

1×1= 1	
1×2= 2	2×2= 4	
1×3= 3	2×3= 6	3×3= 9	
1×4= 4	2×4= 8	3×4=12	4×4=16	
1×5= 5	2×5=10	3×5=15	4×5=20	5×5=25	
1×6= 6	2×6=12	3×6=18	4×6=24	5×6=30	6×6=36	
1×7= 7	2×7=14	3×7=21	4×7=28	5×7=35	6×7=42	7×7=49	
1×8= 8	2×8=16	3×8=24	4×8=32	5×8=40	6×8=48	7×8=56	8×8=64	
1×9= 9	2×9=18	3×9=27	4×9=36	5×9=45	6×9=54	7×9=63	8×9=72	9×9=81	

1.6 pass语句

用于占位,什么也不做,当没想好时可以这样写,防止报错。

for i in range(1,10):
    pass

标签:语句,case,return,控制,PYTHON,else,score,print,match
From: https://www.cnblogs.com/three-sheep/p/16936016.html

相关文章

  • window下版本控制工具Git 客户端安装
    软件开发好久,突然才发现还有git,没有用过。安装使用1.下载msysgit​​http://code.google.com/p/msysgit/​​2.下载tortoisegit客户端安装​​http://code.goog......
  • 力扣240(java&python)-搜索二维矩阵 II(中等)
    题目:编写一个高效的算法来搜索 m x n 矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例......
  • 【python】locust模块_性能测试
    简介Locust是一款易于使用的分布式负载测试工具,完全基于事件,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过gevent使用轻量级过程(即在自己的进程......
  • pythonfloat优雅的四舍五入
    开发中经常会有float四舍五入转int的需求,先看看浮点数直接转int的情形:无论如何float直接转int都不会四舍五入,而是直接抹去小数点。这个需求很简单,实现也很简单,看过网友的......
  • python一键去PDF水印,只需十行代码,超级简单...
    弟弟最近要考试,临时抱佛脚在网上找了一堆学习资料复习,这不刚就来找我了,说PDF上有水印,影响阅读效果,到时候考不好就怪资料不行,气的我差点当场想把他揍一顿!算了,弟弟长......
  • python-面向对象- 实例方法,类方法,静态方法, 类属性
    名称定义方法权限调用方法实例方法第一个参数必须是示例,一般命名为self可以访问实例的属性和方法,也可以访问类的实例和方法一般通过示例调用,类也可以调用类方法......
  • Python工具箱系列(十六)
    前面介绍了对称加密算法,本文将介绍密码学中另一类重要应用:消息摘要(Digest),什么是消息摘要?简单的定义是:对一份数据,进行一个单向的Hash函数,生成一个固定长度的Hash值,这个值......
  • 工具---idea控制台乱码永久解决
    我们打开IntelliJIDEA在本地的安装目录,找到下面两个文件,使用记事本打开,在最后一行添加-Dfile.encoding=UTF-8 即可。在重启之后运行程序检查控制台信息,问题解决! ......
  • 拓端tecdat|Python代写中用PyTorch机器学习分类预测银行客户流失模型
    Python中用PyTorch机器学习分类预测银行客户流失模型  分类问题属于机器学习问题的类别,其中给定一组功能,任务是预测离散值。分类问题的一些常见......
  • python中time模块的常用方法的转换关系图
      获取当前的时间戳  把时间戳转换成了时间的格式  获取时间  把时间格式数据转换为易识别的字符串 获取到表示时间的字符串,再转换为时间数据。 ......