第二章 控制流——了解循环

1.布尔值

虽然整型、浮点型和字符串数据类型有无数种可能的值,但“布尔”数据类型只有两种值:True和False。它们总是以大写字母T或F开头,后面字母小写,两边没有引号。
布尔值可以用在表达式中,也可以保存在变量中。但如果大小写不正确,或者试图用True或False作为变量名,python就会报错哦!

2.比较操作符

比较操作符比较两个值,求值为一个布尔值。

操作符含义
==等于
!=不等于
<小于
>大于
<=小于等于
>=大于等于

Talk is cheap, let’s python it!

print(1314 == 1314)
True
print(419 < 520)
True
print('Love' == 'love')
False

聪明的你可能已经发现,==操作符(等号)有两个等号,而=操作符(赋值)只有一个等号。这两个操作符很容易混淆哦,只要记住:

  • ==操作符(等号)问两个值是否彼此相同;
  • =操作符(赋值)将右边的值放到左边的变量中。

3.布尔操作符

三个布尔操作符(and、or和not)用于比较布尔值。
布尔操作符真值表

表达式求值为
True and TrueTrue
True and FalseFalse
False and TrueFalse
False and FalseFalse
True or TrueTrue
True or FalseTrue
False or TrueTrue
False or FalseFalse
not TrueFalse
not FalseTrue

4.混合布尔和比较操作符

print((419 < 520) and (1314 == 1314))
True
print(('Love' == 'love') and (1314 == 1314))

和算数操作符一样,布尔操作符也有操作顺序:在所有算数和比较操作符求值之后,python先求值not操作符,然后是and操作符,最后是or操作符。

5.控制流的元素

控制流语句的开始部分通常是“条件”,接下来是一个代码块。

条件

前面所学的布尔表达式可以看成是条件。条件总是求值为一个布尔值,True或False。控制流根据条件是True或False,来决定做什么。几乎所有的控制流语句都使用条件。

代码块

一些代码行可以作为一组,放在“代码块”中。可以根据代码行的缩进,知道代码块的开始和结束。代码块有3条规则:

  • 缩进增加时,代码块开始;
  • 代码块可以包含其他代码块;
  • 缩进减少为零,或减少为外面包围代码块的缩进,代码块就结束了。
if name == 'Doraemon':
    print('Hello Doraemon!')
if password == 'number':
    print('Access granted.')

代码块开始于代码行print(‘Hello Doraemon!’),并包含后面所有的行。

6.控制流语句

if-elif-else语句

首先,总是只有一个if语句,所有需要的elif语句都应跟在if语句之后。其次,如果希望确保至少一条子句被执行,在最后加上else子句。

while语句

利用while语句,可以让一个代码块一遍又一遍的执行。while语句和if语句的不同之处在于:if语句结束时,程序继续执行if语句之后的语句;但在while语句结束时,程序执行跳回到while语句开始处。while子句常被称为while循环。

name = ''
while name != 'Doraemon':
    print('Please type your name:')
    name = input()
print('Thank you!')

break语句

break语句:跳出while循环子句,用于while和for循环内部。
while的两种用法:
①while+条件+子句
②while True+if+break+子句
只要能达到目的,用哪种方法都可以,并无好坏之分。由于while True是无限循环,因此一般会配合if…break一起使用。

name = ''
while True:
    print('Please type your name:')
    name = input()
    if name == 'Doraemon':
        break  #if条件为真,则跳出循环
print('Thank you!')

continue语句

continue语句:跳回到循环开始处,重新对循环条件求值。用于while和for循环循环内部。

while True:
    print('Please type your name:')
    name = input()
    if name != 'Doraemon':
        continue  #if条件为真,则跳回到循环开始处,if...else语句同样可以实现
    print('Hello,Doraemon,what is the password?')
    password = input()
    if password == 'number'
        break
print('Access granted.')

如果你运行了一个有缺陷的程序,导致陷入了一个无限循环,可以按Ctrl-C立即停止。

for循环和range()函数

在条件为True时,while循环就会继续循环。如果你想让一个代码块执行固定次数,可以通过for循环和range()函数来实现。

类真和类假的值

在用于条件时,0、0.0和’’(空字符串)被认为是False,其他值被认为是True。
例如:如果name = ‘’,那么not name的返回值为True,while not name等价于while True

for循环和range()函数

在代码中,for 语句看起来像for in range(5)这样,总是包含以下部分:

  • for关键字
  • 一个变量名
  • in关键字
  • 调用range()方法,最多传入三个参数
  • 冒号
  • 从下一行开始,缩进的代码块(称为for子句)
for i in range(5):
    print(i)

0
1
2
3
4

运行这个程序时,他将打印5次i的值,然后离开for循环。
也可以在循环中使用continue语句。continue语句让for循环变量继续下一个值,就像程序执行已经达到循环的末尾。实际上,只能在while和for循环内部使用continue和break语句,如果试图在别处使用这些语句,python将报错。
while循环可以做和for循环同样的事,只是for循环更简洁。

i = 0
while i < 5:
    print(i)
    i=i+1
0
1
2
3
4
range()的开始、停止和步长参数
  • 当range()的参数只有一个整数n时,调用range()将从0逐一增至n-1;
for i in range(5):
    print(i)

0
1
2
3
4
  • 当range()有两个参数x和y时,调用range()将从x逐一递增至y-1;
for i in range(2,5):
    print(i)

2
3
4
  • 当range()有三个参数x、y和a时,前两个参数分别是起始值和终止值,第三个参数是步长。步长是每次迭代后循环变量增加的值。
for i in range(0,10,2):
    print(i)

0
2
4
6
8

在为for循环生成序列数据方面,range()函数很灵活,甚至可以用负数作为步长参数,让循环技术逐渐减少,而不是增加。

for i in range(10,-2,-2):
    print(i)

10
8
6
4
2
0

7.导入模块

使用import关键字可以导入标准库中的模块,模块中有不同的函数可供使用。导入模块的语句一般为import + 模块名称,若有多个模块名称,则用逗号分隔。
导入模块后,我们就可以使用该模块中很酷的函数。比如random随机数模块中的random.randint()函数,该函数求值为传递给它的两个整数之间的一个随机整数(包含上下限)。

import random
for i in range(5):
    print(random.randint(1,5))

5
1
5
2
1

因为randint()属于random模块,因此必须在函数名称前面加上random,告诉python在random模块中寻找这个函数。

from import语句

import 语句的另一种形式包括from关键字,之后是模块名称,import关键字和一个星号,如from random import *
使用这种形式的import语句,调用random模块中的函数时不需要random.前缀。但是,完整的名称会让代码更可读,所以最好使用普通形式的import语句。

8.用sys.exit()提前结束程序

通过调用sys.exit()函数,可以让程序终止或退出。因为这个函数在sys模块中,因此需先导入才能使用。

import sys
while True:
    print('Type exit to exit.')
    response = input()
    if response == 'exit':
        sys.exit()  #if条件为真,则程序终止
print('Thank you!')

第二章知识点有点多,慢慢看哟~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值