目录
条件判断 if
循环
for ... in ...
while
break
continue
继 "Python 学习之路二":
条件判断 if
比如,输入用户年龄,根据年龄打印不同的内容,在 Python 程序中,用 if 语句实现:
>>> age = 18
>>> if age >= 18 :
print("your age is ",age)
print("adult")
your age is 18
adult
>>>
根据 Python 的缩进规则,如果 if 语句判断是 True,就把缩进的两行 print 语句执行了,否则,什么也不做。也可以给 if 添加一个 else 语句,意思是,如果 if 判断是 False,不要执行 if 的内容,去把 else 执行了:
>>> age = 9
>>> if age >= 18:
print("your age is",age)
print("adult")
else:
print('your age is',age)
print("teenager")
your age is 9
teenager
>>>
(注意不要少写了冒号 : )
当然上面的判断是很粗略的,完全可以用 elif 做更细致的判断:
>>> age = 3
>>> if age >= 18:
print("adult")
elif age >= 6:
print("teenager")
else:
print("kid")
kid
>>>
elif 是 else if 的缩写,完全可以有多个 elif,所以 if 语句的完整形式就是:
if <判断条件1>:
执行语句1
elif <判断条件2>:
执行语句2
elif <判断条件3>:
执行语句3
else :
执行语句4
if 语句执行有个特点,它是从上往下判断,如果在某个判断上是 True,把该判断对应的语句执行后,就忽略掉剩下的 elif 和 else,所以,请测试并解释为什么下面的程序打印的是 teenager:
>>> age = 3
>>> if age >= 18:
print("adult")
elif age >= 6:
print("teenager")
else:
print("kid")
kid
if 判断条件还可以简写,比如写:
if x:
print("True")
只要 x 是非零数值、非空字符串、非空 list 等,就判断为 True,否则为 False。补充:可以使用 input()进行数据的输入.注意输入的内容是 str,如果需要 int 需要进行类型转换。
循环
Python 的循环有两种
for ... in ...
一种是 for...in 循环,依次把 list 或 tuple 中的每个元素迭代出来:
>>> names = ["Michael","Bob","Tracy"]
>>> for name in names :
print(name)
Michael
Bob
Tracy
所以 for x in ...循环就是把每个元素代入变量 x,然后执行缩进块的语句.如我们想计算 1-10 的整数之和,可以用一个 sum 变量做累加:
>>> sum = 0
>>> for x in [1,2,3,4,5,6,7,8,9,10]:
sum = sum + x
print(sum)
1
3
6
10
15
21
28
36
45
55
>>>
如果要计算 1-100 的整数之和,从 1 写到 100 有点困难,幸好 Python 提供一个 range()函数,可以生成一个整数序列,再通过 list()函数可以转换为 list。比如 range(5)生成的序列是从 0 开始小于 5 的整数:
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
while
第二种循环是 while 循环,只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算 100 以内所有奇数之和,可以用 while 循环实现:
>>> sum = 0
>>> n = 99
>>> while n > 0 :
sum += n
n -= 2
print(sum)
break
在循环中,break 语句可以提前退出循环。例如,本来要循环打印 1~100 的数字:
>>> n = 1
>>> while n <= 20 :
if n > 10 :
break
print(n)
n = n + 1
print("END")
执行上面的代码可以看到,打印出 1~10 后,紧接着打印 END,程序结束。可见 break 的作用是提前结束循环.
continue
在循环过程中,也可以通过 continue 语句,跳过当前的这次循环,直接开始下一次循环。
>>> n = 0
>>> while n < 10 :
n = n + 1
print(n)
1
2
3
4
5
6
7
8
9
10
>>>
上面的程序可以打印出 1~10。但是,如果我们想只打印奇数,可以用 continue 语句跳过某些循环:
>>> n = 0
>>> while n < 10 :
n = n + 1
if n % 2 == 0 :
continue
print(n)
1
3
5
7
9
>>>