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来忽略

时间: 2024-11-06 11:30:48

Python语言和标准库(第一章:做出决策)的相关文章

Python语言和标准库(第七章:文本处理)

7.1文本处理的用途 总的来说,文本处理背后的全部思想是找到目标文本.当然,有的情况下数据以结构化的方式组织,这就是所谓的数据库.然而有些数据资源包含的信息完全不是有序和规整的,例如成百上千的文件的目录结构.当需要查找这种类型的数据或者以某种方式处理它们,文本处理就非常实用.也可以同RDBMS(关系数据库管理系统)结合起来查找. 文本处理领域的两个主要的工具是目录导航和一种称为正则表达式的神奇技术. 目录导航:是一个不同的操作系统真正给简单的程序带来大量麻烦的领域,因为三个主要的操作系统的家族都

python语言线程标准库threading.local源码解读

本段源码可以学习的地方: 1. 考虑到效率问题,可以通过上下文的机制,在属性被访问的时候临时构建: 2. 可以重写一些魔术方法,比如 __new__ 方法,在调用 object.__new__(cls) 前后进行属性的一些小设置: 3. 在本库中使用的重写魔术方法,上下文这两种基础之上,我们可以想到函数装饰器,类装饰器,异常捕获,以及两种上下文的结构: 灵活运用这些手法,可以让我们在代码架构上更上一层,能够更加省时省力. 1 from weakref import ref # ref用在了构造大

Go语言开发(十二)、Go语言常用标准库二

Go语言开发(十二).Go语言常用标准库二 一.os 1.os简介 os 包提供了不依赖平台的操作系统函数接口,设计像Unix风格,但错误处理是go风格,当os包使用时,如果失败后返回错误类型而不是错误数量. 2.os常用接口 func Hostname() (name string, err error) // Hostname返回内核提供的主机名 func Environ() []string // Environ返回表示环境变量的格式为"key=value"的字符串的切片拷贝 f

Go语言开发(十一)、Go语言常用标准库一

Go语言开发(十一).Go语言常用标准库一 一.log 1.log模块简介 Go语言中log模块用于在程序中输出日志.log模块提供了三类日志输出接口,Print.Fatal和Panic.Print是普通输出:Fatal是在执行完Print后,执行 os.Exit(1):Panic是在执行完Print后调用panic()方法.log模块对每一类接口其提供了3中调用方式,分别是"Xxxx. Xxxxln.Xxxxf". 2.log.Print接口 log.Print类接口包括log.Pr

Go语言开发(十四)、Go语言常用标准库四

Go语言开发(十四).Go语言常用标准库四 一.heap 1.heap简介 heap仅仅提供了最小堆的操作,没有提供堆的数据结构,堆的数据结构必须由开发者自己实现.heap提供了一个heap.Interface接口来作为堆的操作和堆的数据结构(开发者自己实现)之间的桥梁,堆的数据结构必须满足此接口: type Interface interface { sort.Interface Push(x interface{}) // add x as element Len() Pop() inter

Go语言开发(十五)、Go语言常用标准库五

Go语言开发(十五).Go语言常用标准库五 一.md5 1.md5简介 md5在crypto/md5包中,md5包提供了New和Sum方法. func New() hash.Hash func Sum(data []byte) [Size]byte hash.Hash继承了io.Writer,因此可以将其当成一个输入流进行内容的更新. type Writer interface { Write(p []byte) (n int, err error) } Write方法将p中的内容读入后存入到h

Go语言开发(十三)、Go语言常用标准库三

Go语言开发(十三).Go语言常用标准库三 一.sync 1.sync简介 sync提供基本的同步原语,如sync.Mutex,sync.RWMutex,sync.Once,sync.Cond,sync.Waitgroup,除了Once和WaitGroup类型外,大多数类型都供低级库使用.Go语言中,不要通过共享内存通信,而要通过通信共享内存,通过Channel和沟通可以更好地完成更高级别的同步. type Locker interface { Lock() Unlock() } Locker提

python 常用的标准库及第三方库

标准库Python拥有一个强大的标准库.Python语言的核心只包含数字.字符串.列表.字典.文件等常见类型和函数,而由Python标准库提供了系统管理.网络通信.文本处理.数据库接口.图形系统.XML处理等额外的功能.Python标准库的主要功能有:1.文本处理,包含文本格式化.正则表达式匹配.文本差异计算与合并.Unicode支持,二进制数据处理等功能2.文件处理,包含文件操作.创建临时文件.文件压缩与归档.操作配置文件等功能3.操作系统功能,包含线程与进程支持.IO复用.日期与时间处理.调

Python中级 —— 07标准库

标准库学习 1. The Python Standard Library[https://docs.python.org/3.5/library/] ( 3.5.5 Documentation ) 1.介绍 2.内置函数 3.内置常量 3.1常数添加的 site模块 4.内置类型 4.1. 真值测试 4.2.布尔运算--and,or,not 4.3.比较 4.4.数值类型--int,float,complex 4.5.迭代器 4.6.序列--list,tuple,range 4.7.文本序列类型