目录
一、分支与循环 branch and loop
1.1 分支结构
1.1.1 if语句五种语法结构
- if
判断一个条件,如果这个条件成立,就执行其包含的某条语句或某个代码块。
if conditions:
statement(s)
使用缩进表示从属关系,在同一个代码块中,缩进量必须一致!
eg:
- if-else
判断一个条件:
如果条件成立,就执行其包含的某条语句或某个代码块;
如果条件不成立,就执行另外的某条语句或某个代码块。
if condition a:
condition(1)
else:
condition(2)
eg:
- if-elif
判断多个条件,如果第1个条件不成立,则继续判断第2个条件,如果低2个条件不成立,继续判断第3个条件,以此类推:
if condition1:
statement(s)
elif condition2:
statement(s)
elif condition3:
statement(s)
...
eg:
只用if 和使用elif 的区别:
- 在第3种情况下添加一个else,表示上面所有的条件均不成立的情况下,执行某条语句或某个代码块。
if condition1:
statement(s)
elif condition2:
statement(s)
elif condition3:
statement(s)
...
else:
statement(s)
eg:
- 条件表达式
语法:
条件成立时执行的语句 if condition else 条件不成立时执行的语句
eg1:
eg2:
使用条件表达式后:
eg3:
使用条件表达式后:
1.1.2 分支结构的嵌套 nested branches
eg:
二、循环
2.1 while语句
while condition:
statement(s)
只要条件为真,则一直执行循环语句。
eg:
计算1–100的和:
2.2 break语句:
当 while 条件为true时,循环就会一直执行,此时会出现死循环:
当程序进入死循环时,就需要使用break语句来退出。
eg:
2.3 continue语句
continue也用于跳出循环语句,与break不同的是:continue跳出本次循环,回到循环体开头条件判断位置,而break语句是直接跳出循环体。
eg:
2.4 else语句
当循环条件不再为真
的时候,else语句才会被执行。
eg:
else作用:不使用标志位检测循环的退出情况。
eg: 连续签到七天就会打印brilliant语句,否则直接退出。
2.5 循环结构的嵌套 nested loop
eg: 9 x 9 乘法表
eg:
学习7天八小时,当hour满足break条件后,只跳出内层循环,继续执行外侧day的循环 (工作只有5*8!!!!!)
2.6 for循环
for 变量 in 可迭代对象:
statement(s)
"China"
eg:
使用while循环遍历“China”字符串很麻烦
使用 for 循环就很简便:
- 想要遍历1-1000000,不能直接使用 for i in 1000000,因为int整型不可迭代,所以需要用到range()方法。
range():生成数字序列
用法:
range(stop)
range(start, stop)
range(start, stop, step)
eg:
range(11): 打印1-10的整数:
range(5,10), 左闭右开:
range(5,10,2)从5-10,以每两位取一位:
Practice
eg1:
range(1,1000001) 计算1-1000000的和:
tips: print(sum) 需在循环外计算才是所有的和,否则是每一步的和。
eg2:
找出10以内所有素数(除1外,不能被除本身和1以外的数整除):