zoukankan      html  css  js  c++  java
  • 语句完善---钱中平---2020-01-08

    语句的完善:
    if逻辑运算中的and和or
    and:
    条件1 and 条件2
    两个条件同时满足,就返回True
    两个条件都不满足,返回False

    or:
    条件1 or 条件2
    两个条件只要有一个满足,就返回True
    两个条件都不满足,返回False

    以年龄为例:

    and和or

    age = int(input("请输入您的年龄:"))
    if age >= 13 and age <= 18:
    print("青少年")
    else:
    print("非青少年")

    age = int(input("请输入您的年龄:"))
    if age <= 6 or age >= 65:
    print("尊老爱幼需让座")
    else:
    print("可不让座")

    循环语句中的break和continue
    break:
    某一条件满足的时候,退出循环,不再执行后续重复的代码
    在循环体内部,我们可以增加额外的条件,在需要的时候,跳出整个循环

    continue:
    某一条件满足的时候,不执行后续重复的代码,其他条件都要执行

    continue和break

    i = 0
    while i < 5:
    i += 1
    if i == 2:
    #continue
    break
    print(i)

    with:

    有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。
    一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。
    如果不用with语句,代码如下:
    file = open(r"C:Users钱中平DesktopPythonfile.txt")
    data = file.read()
    print(data)
    file.close()
    这里有两个问题。一是可能忘记关闭文件句柄;二是文件读取数据发生异常,没有进行任何处理。下面是处理异常的加强版本:
    file = open(r"C:Users钱中平DesktopPythonfile.txt")
    try:
    data = file.read()
    finally:
    print("我执行了")
    file.close()
    print("我执行了")
    虽然这段代码运行良好,但是太冗长了。这时候就是with一展身手的时候了。除了有更优雅的语法,with还可以很好的处理上下文环境产生的异常。下面是with版本的代码:
    with open(r"C:Users钱中平DesktopPythonfile.txt") as file:
    data = file.read()
    print(data)

    with如何工作的:

    基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。
    紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量(这句话的主要就是赋值,赋值就是 = 号
    就是file = open(r"C:Users钱中平DesktopPythonfile.txt"))。当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。
    下面例子可以具体说明with如何工作:
    class Sample:
    def enter(self):
    print("In enter()")
    return "Foo"

    def __exit__(self, type, value, trace):
        print("In __exit__()")
    

    def get_sample():
    return Sample()

    with get_sample() as sample:
    print("sample:", sample)

  • 相关阅读:
    【3】网站搭建:分页功能
    mapserv和mapserv.exe的区别
    WMS请求GetCapabilities,变成下载mapserv.exe解决办法
    get和post的区别
    实现ajax异步请求
    Thinkphp3.2 Widget的扩展
    Thinkphp3.2 路由是使用
    Thinkphp3.2 TagLib的使用
    Thinkphp下实现Rbac
    Thinkphp下实现分页
  • 原文地址:https://www.cnblogs.com/niaocaizhou/p/12167945.html
Copyright © 2011-2022 走看看