第04章 流程控制

布尔逻辑

1、逻辑相等

咱们从==开始吧。公当p和q包含的真值相同,即都为True或都为False时,表达式p==q的结果才为True。表达式p != q检测p和q是否不同,公在p和q不同时才返回True。

2、逻辑与

仅当p和q都为True时,布尔表达式的结果才为True,而在其他情况下都为False。表4-1的第5列总结了各种组合的结果。

3、逻辑或

公当p和q至少有一个为True时,布尔表达式p or q才为True。表4-1的第6列对此做了总结。唯一稍微有点棘手的情形是,p和q都为True。在这种情形下,表达式p or q的结果为True。

4、逻辑非

最后,在p为False时,布尔表达式not p的结果为True;而在p为True时,结果为False。结果与变量的值相反。

 

布尔运算的优先级(按从高到低的顺序排列)

p == q

p != q

not p

p and q

p or q

if语句

#password1.py

pwd = input('What is the password? ')
if pwd == 'apple': #note use of == instead of =
    print("Logging on ...")
else:
    printf("Incorrect password.")
print("All done!")

 

代码块和缩进

Python的一个与众不同之处是,使用缩进来标识代码块。例如:

代码行print('Logging on ...')和print('Incorrect password')是两个不同的代码块。这些代码块只有一行,但Python允许你编写包含任意数量语句的代码块。

if/elif语句

age = int(input('How old are you?'))
if age <= 2:
    print("free")
elif 2 < age < 13:
    print("child fare")
else:
    print("adult fare")

 

循环

循环用于重复地执行代码块,Python有两种主要的循环:for循环和while循环。for循环通常比while循环更容易使用,也不那么容易出错,但没有while循环灵活。

for循环

基本for循环重复执行给定代码块指定的次数,如例如:下面的代码片段在屏幕上打印数0〜9

 

for i in range(10): #打印0〜9

print(i)

for j in range(5, 10): #打印5~9

print(j)

for循环的第1行被称为for循环头。for循环总是以关键字for打头,接下来是循环变量(这里为i),然后是关键字in。关键字in后面通常(但并非总是)是range(n)和结束符号:for循环重复执行循环体(循环头后而后 语句块)n次。

每次执行循环时,循环变量都被设置为下一个值。默认情况下,初始值为0,并逐递增到n-1 (而不是n!)。

如果想修改循环的初始值,可在range中添加初始值:

例如:

for j in range(5, 10): #打印5~9

    print(j)

while循环

第二种Python循环是while循环 。请看下面的程序:

#while10.py
i = 0
while i < 10:
    print(i)
    i = i + 1 #add 1 to i

这个程序在屏幕上打印数字0〜9。它比for循环要复杂得多,但也更灵活。

 

比较for循环和while循环

下面来通过一些示例演示如何使用for循环和while循环解决相同的问题。另外,还将份介绍一个使用for循环编写不出来的简单程序。

1、计算阶乘

#forfact.py
n = int(input("Enter an integer >=0: "))
fact = 1
for i in range(2, n + 1):
    fact = fact * i
print(str(n) + " factorial is " + str(fact))

下面是另一种使用while循环计算阶乘的方式:

#whilefact.py
n = int(input("Enter an integer >= 0: "))
fact = 1
i = 2
while i <= n:
    fact = fact * i
    i = i + 1
print(str(n) + " factorial is " + str(fact))

2 、计算用户输入的数字的总和

下面的程序让用户输入一些数字,然后打印出这些数字的总和。这是使用for循环的版本:

#forsum.py
n = int(input("How many numbers to sum? "))
total = 0
for i in range(n):
    s = input("Enter number " + str(i + 1) + ": ")
    total = total + int(s)
print("The sum is " + str(total))

 

使用while循环的版本:

#whilesum.py
n = int(input("How many numbers to sum? "))
total = 0
i = 1
while i <= n:
    s = input("Enter number " + str(i) + ": ")
    total = total + int(s)
    i = i + 1
print("The sum is " + str(total))

3、计算未知个数字的总和

#donesum.py
total = 0
s = input('Enter a number (or "done"): ')
while s != 'done':
    num = int(s)
    total = total + num
    s = input('Enter a number (or "done"): ')
print("The sum is " + str(total))

6、跳出循环和语句块

break语句提供了一种便利方式,让你能够从循环体内的任何地方跳出循环。例如,下面是另一种计算未知个数总和的方式:

#donesum_break.py
total = 0
while True:
    s = input('Enter a number (or "done"): ')
    if s == 'done':
        break #jump out of the loop
    num = int(s)
    total = total + num
print("The sum is " + str(total))

7、循环中的循环

循环中的循环也叫嵌套循环,在编程中相当常见。例如,下面是一个打印十十乘法表的程序:

#timestable.py
for row in range(1, 10):
    for col in range(1, 10):
        prod = row * col
        if prod < 10:
            print(' ', end = '')
        print(row * col, ' ', end = '')
    print()

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值