• Python语言和标准库(第一章:做出决策)


    1-做出决策

    2-函数

    3-类与对象

    4-组织程序

    5-文件和目录

    6-Python语言的其他特性

    7-创建模块

    8-文本处理

    第一章:做出决策

    本章介绍如何创建可以使用循环重复相同操作的情形,自动逐步遍历列表,元组和字典。

    如何使用字典,列表和元组,探究字典中的内容。

    使用一场处理编写的程序,以应对可能在程序内部处理的问题。

    1.1比较两个值是否相等

    在python里,如果每个序列中同一位置的每个元素都相同,那么两个序列相同。字典的比较和序列的一样。

    1.2比较两个值是否不同

    !=

    1.3比较两个值的大小

    值得注意的是,我们可以用特殊方法lower(),避免两个相似单词由于大小写不同而引起的问题。

    >>>"Pumpkin"=="pumpkin"
    False
    >>>"Pumpkin".lower()=="pumpkin".lower()
    True
    >>>"pumpkin".upper()
    'PUMPKIN'

    1.4对真值和假值取反

    >>>not True
    False
    >>>not 5
    False
    >>>not 0
    True
    >>>Not True
    报错

    在此,任何非零都是为True

    1.5多个比较运算的结果

    与或非

    >>>True and True
    True
    >>>False and True
    False
    
    >>>True or False
    True

    如何做出决策

    >>>if 1>2:
               print("No it is not!")
    >>>if 2>1:
               print("Yes it is!")
    
    yes it is!

    仅当if和冒号之间的语句的值为true时,缩进的语句才会被python 访问并且求值。

    在python程序中,看到冒号时,它指出python进入了程序中与其余部分相对独立的一部分。此时,缩进变得很重要。python通过缩进知道一个特定的代码块与周围的代码保持独立。所用的空格数很重要。

    在测试中嵌套测试

    >>>omelet_ingredients = {"egg":2,"mushroom":5,"pepper":1,"cheese":1,"milk":1}
    >>>fridge_contents+
    {"egg":10,"mushroom":20,"pepper":3,"cheese":2,"tomato":4,"milk":15}
    >>>have_ingredients = [False]
    >>>if fridge_contents["egg"]>omelet_ingredients["egg"]:
                have_ingredients[0] = True
            have_ingredients.append("egg")
    
    >>>print(have_ingredients)
    [True,'egg']

    做一个贯穿语句

    >>>OJ_price = 2.50
    >>>if OJ_price<1.25:
               print("Get one, Im thirsty.")
           elif OJ_price<=2.00:
               print("Ummm........sure,but Ill drink it slowly.")
           else:
               print("I dont have enough money . Never mind.")
    
    
    I dont have enough money.Never mind.

    1.6循环

    >>>i = 10
    >>>while i>0:
    print("Lift off in:")
    print(i)
    i= i -1

    这是用while循环

    >>>for i in range(10,0,-1):
    print("T_minus:")
    print(i)
    ...
    
    T-minus:
    10
    T-minus:
    9
    T-minus:
    8
    .
    .
    .

    for-in循环

     1.6终止循环

    我们来看一段代码

    >>>age = 0
    >>>while True:
    how_old = input("Enter your age:")
    if how_old =="No":
        print("dont be ashamed of your age!")
        break
    num = int(how_old)
    age = age+num
    print("Your age is:")
    print("that is old!")
    ...
    Enter your age:1
    Your age is:
    1
    that is old!
    Enter your age:2
    your age is:3
    ...
    Enter your age:no
    dont be ashamed of your age!

    在这段语句里,while总是为true,所以会一直循环下去,为了解决这个问题,给用户提示一些信息,如果为no的话,就会break,跳出循环。

    用continue继续循环

    >>>for food in ("pate","cheese","rotten apple","crackers","whip cream","tomato soup"):
    ...         if food[0:6] == "rotten":
    ...             continue
    ...             print("hey you can eat %$"% food)

    打印结果是:

    因为使用了一个if...测试来判断food列表中每一项的第一部分是否包含字符串“rotten”,所有“rotten apple”会被跳过,其余的被打印出来。

    1.7处理错误

    错误通常包含大量与发生错误和失败的原因有关的信息:

    >>>fridge_contents = {"egg:8","mushroom":20,"pepper":3,"cheese":2,"tomato":4,"milk":13}
    >>>if fridge_contents["orange juice"]>3:
    ...        print("lets have some juice!")
    ...

    打印结果:

    噢!目前冰箱里面没有橘子汁。前面已经介绍了一种找出字典中出现的所有键的方法,可以使用字典的keys方法,然后在返回的键列表中搜索,以判断某个希望的键是否出现。

    使用try:语句

    try语句设立了这样一种情况,其中try语句后面可以跟一个except语句。每个except语句都处理错误,错误被我们称之为异常。首先使用except:处理一种类型的错误,例如在试图检查冰箱时,得到keyerror错误。

    有多种类型的异常,每个异常的名称都反应了发生的问题,并且也可能反应出异常说发生的条件。因为字典有键与值,keyerror表示python期待某种类型的数据,可以是一个字符串或者一个整型值,但是提供给它的确是另外一种不能满足要求的类型。

    例如:

    创建异常和对异常进行说明:

    在字典fridge_contents中没有键“orange juice”,python抛出了一个keyerror异常,说明没有这样的键,除此之外,还指定了名称error。python将用它引用一个字符串,该字符串包含了python可以提供的错误信息。我们通过as关键字将keyerror的值发给error。这样一来,字符串与已请求但未在字典fridge_contents中出现的键有关(这里是橘子汁)。

     有时我们需要处理一个异常,但是希望不做其他方式处理它,可以通过pass来忽略

  • 相关阅读:
    16 pymysql模块的使用
    15 可视化工具 Navicat的简单使用
    14 补充 MySQL的创建用户和授权
    13 多表查询
    linux常用查看文件或日志命令
    linux查找大文件命令
    linux测试环境维护之磁盘空间维护
    linux配置IP访问权限
    通过pytty工具代理连接数据库mysql(绕开数据库白名单限制)
    redis安装详解
  • 原文地址:https://www.cnblogs.com/romanhzzz/p/4024955.html
Copyright © 2020-2023  润新知