Task02.条件与循环
一.条件语句
1.简单的if/else语句
age = 20
if age >= 18:
print('your age is', age)
print('adult')
注意:Python使用缩进而不是大括号来标记代码块边界
根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做。也可以给if添加一个else语句,意思是,如果if判断是False,不要执行if的内容,去把else执行了
age = 3
if age >= 18:
print('your age is', age)
print('adult')
else:
print('your age is', age)
print('teenager')
your age is 3
teenager
2.elif
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
elif是else if的缩写,需要注意的是:if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else。
age = 20
if age >= 6:
print('teenager')
elif age >= 18:
print('adult')
else:
print('kid')
teenager
3.asert关键词
assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。
my_list = ['ncepu']
my_list.pop(0)
assert len(my_list) > 0
AssertionError
Traceback (most recent call last)
<ipython-input-6-fc1260d46b61> in <module>
1 my_list = ['ncepu']
2 my_list.pop(0)
----> 3 assert len(my_list) > 0
AssertionError:
在进行单元测试时,可以用来在程序中置入检查点,只有条件为 True 才能让程序正常工作。
二.循环语句
1.while循环
sum = 0
n = 100
while n > 0:
sum = sum + n
n = n - 1
print(sum)
5050
循环体写在冒号和缩进之间。
2.for循环
for i in 'Study Love me':
print(i, end='')
Study Love me
for x in …循环就是把每个元素代入变量x,然后执行缩进块的语句。
一些例子:
(1).
names = ['Tom', 'Jack', 'Rose']
for name in names:
print(name)
Tom
Jack
Rose
(2).找质数
for i in range(101):
flag=0
for j in range(1,i):
if i%j==0:
flag=flag+1
if flag==1:
print(i,end=' ')
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
其中,range()函数,可以生成一个整数序列,比如range(5)生成的序列是从0开始小于5的整数
还有一种用法:
for i in range(0,9,2):
print(i,end=' ')
0 2 4 6 8
3.enumerate()函数
enumerate(sequence, [start=0])
equence – 一个序列、迭代器或其他支持迭代对象。
start – 下标起始位置。
返回 enumerate(枚举) 对象
numbers=[1,2,3,4,5]
spread = list(enumerate(numbers))
print(spread)
spread = list(enumerate(numbers,start=5))
print(spread)
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]
[(5, 1), (6, 2), (7, 3), (8, 4), (9, 5)]
enumerate()与 for 循环的结合使用
languages = ['Python', 'R', 'Matlab', 'C++']
for language in languages:
print('I love', language)
print('awsl!')
I love Python
I love R
I love Matlab
I love C++
awsl
for i, language in enumerate(languages, 1):
print(i, 'I love', language)
print('awsl!')
1 I love Python
2 I love R
3 I love Matlab
4 I love C++
awsl!
4.pass语句
pass 语句的意思是“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而 pass 语句就是用来解决这些问题的。
def fun():
SyntaxError: unexpected EOF while parsing
def fun():
pass
print('I love python')
I love python
5.综合
passwdList = ['123', '345', '890']
valid = False
count = 3
while count > 0:
password = input('enter password:')
for item in passwdList:
if password == item:
valid = True
break
if not valid:
print('invalid input')
count -= 1
continue
else:
break
enter password:568
invalid input
enter password:563
invalid input
enter password:890
**
总结
**
今天比较生疏的地方是enumerate()函数、assert关键词。
然后Python的这种以缩进代替大括号的方式我还不太习惯,经常有expected an indented block这样的错误。最后就是写博客还是对马老师的模板依赖太多,争取以后有更多自己原创的代码。