一、分支结构 __if语句 注意!!颜值即正义
(一)判断一个条件,如果这个条件成立,就执行其包含的某条语句或某个代码块。【语法结构】
if condition: statement(s)
(二)判断一个条件:
如果条件成立,就执行其包含的某条语句或某个代码块。
如果条件不成立,就执行另外的某条语句或某个代码块。【语法结构】
if condition: statement(s) else: statement(s)
(三)判断多个条件:
如果第1个条件不成立,则继续判断第2个条件;
如果第2个条件还不成立,则继续判断第3个条件... ...【语法结构】
if condition1: statement(s) elif condition2: statement(s) elif condition3: statement(s) ...【好处】效率高!!
(四)第4种是在第3种的情况下添加一个else,表示上面所有的条件均不成立的情况下,执行某条语句或某个代码块。【语法结构】
if condition1: statement(s) elif condition2: statement(s) elif condition3: statement(s) ... else: statement(s)示例:
(五)条件表达式【语法结构】
条件成立时执行的语句 if condition else 条件不成立时执行的语句
例,原语句:
>>> age = 16 >>> if age < 18: print("未满18禁止进入哦~") else: print("欢迎您,常来玩哦~^o^") 未满18禁止进入哦~条件表达式:
>>> print("未满18禁止进入哦~") if age < 18 else print("欢迎您,常来玩哦~^o^") 未满18禁止进入哦~
例,原语句:
>>> a = 3 >>> b = 5 >>> if a < b: small = a else: small = b条件表达式:
>>> a = 3 >>> b = 5 >>> small = a if a < b else b
例,原语句:
score = 66 if 0 <= score < 60: level = "D" elif 60 <= score < 80: level = "C" elif 80 <= score < 90: level = "B" elif 90 <= score < 100: level = "A" elif score == 100: level = "S" else: level = "请输入0 ~ 100之间的分值~" print(level) C条件表达式:
score = 66 level = ("D" if 0 <= score < 60 else "C" if 60 <= score < 80 else "B" if 80 <= score < 90 else "A" if 90 <= score < 100 else "S" if score == 100 else "请输入0 ~ 100之间的分值~") print(level) C
(六)分支结构的嵌套【语法结构】
if condition1: statement(s) else condition2: if condition2-1: statement(s) else condition2-2: if condition2-2-1: statement(s) else condition2-2-2: ...
二、循环结构 __while循环 和 for循环
一、while循环 (一)满足条件则不停循环。【语法结构】
while condition1: statement(s)例①:
>>> love = "yes" >>> while love == "yes": love = input("今天你还爱我么?") 今天你还爱我么?(输入)yes 今天你还爱我么?(输入)yes 今天你还爱我么?(输入)yes 今天你还爱我么?(输入)no >>>(结束循环)
例②:
>>> while True: print("我是Python工具人,我要不停地工作!") 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! 我是Python工具人,我要不停地工作! ... (Ctrl + C) Traceback (most recent call last): File "【存在问题】无限循环,只有【Ctrl + C】才能手动停止...如何让其自己跳出循环?", line 2, in print("我是Python工具人,我要不停地工作!") KeyboardInterrupt
(二)break语句>>> while True: answer = input("主人,我可以退出循环了嘛?") if answer == "可以": print("主人我爱你!mua~") break print("唉,好累~~") 主人,我可以退出循环了嘛?(输入)no 唉,好累~~ 主人,我可以退出循环了嘛?(输入)不行! 唉,好累~~ 主人,我可以退出循环了嘛?(输入)还说? 唉,好累~~ 主人,我可以退出循环了嘛?(输入)闭嘴! 唉,好累~~ 主人,我可以退出循环了嘛?(输入)可以 主人我爱你!mua~ >>>(结束循环)
(三)continue语句__和break一样,跳出循环。
但只是会跳出本轮循环 ,直接循环下一个循环。>>> i = 0 >>> while i < 10: i += 1 if i % 2 == 0: continue print(i) 1 3 5 7 9
(四)else语句i = 1 while i < 5: print("循环内,i的值是", i) i += 1 else: print("循环外,i的值是", i) ====================================================== 循环内,i的值是 1 循环内,i的值是 2 循环内,i的值是 3 循环内,i的值是 4 循环外,i的值是 5 >>>【问题】这不是多此一举么?去掉else的结果是一样的:
i = 1 while i < 5: print("循环内,i的值是", i) i += 1 print("循环外,i的值是", i) ====================================================== 循环内,i的值是 1 循环内,i的值是 2 循环内,i的值是 3 循环内,i的值是 4 循环外,i的值是 5 >>>【原因】用break语句跳出来,就不会再执行else了:
i = 1 while i < 5: print("循环内,i的值是", i) if i == 2: break i += 1 else: print("循环外,i的值是", i) ====================================================== 循环内,i的值是 1 循环内,i的值是 2 >>>while 和 else 的结合:
'''只要是回答【有】,就会继续【i += 1】; 只要有一次回答除了【有】以外的任何,就会【break】跳出循环''' day = 1 while day <= 7: answer = input("今天又好好学习么?") if answer != "有": break day += 1 else: print("非常棒,你已经连续坚持7天学习了!!!") ====================================================== 今天又好好学习么?有 今天又好好学习么?有 今天又好好学习么?有 今天又好好学习么?有 今天又好好学习么?有 今天又好好学习么?有 今天又好好学习么?有 非常棒,你已经连续坚持7天学习了!!! >>> ====================================================== 今天又好好学习么?有 今天又好好学习么?没 >>>
(五)循环结构的嵌套(nested loop) 例,打印99乘法表:i = 1 while i <= 9: j = 1 while j <= i: print(j,"*",i,"=", j * i , end=" ") #【end】保证不换行 j += 1 print() #此处【print()的作用是换行】 i += 1 ====================================================== 1 * 1 = 1 1 * 2 = 2 2 * 2 = 4 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81 >>>【关于break】 每次只能跳出一层循环体,而非所有循环体。例:
day = 1 hour = 1 while day <= 7: while hour <= 8: print("我要学习8小时") hour += 1 if hour > 1: break day += 1 ====================================================== 我要学习8小时 我要学习8小时 我要学习8小时 我要学习8小时 我要学习8小时 我要学习8小时 我要学习8小时 >>>(自己读一遍代码,发现:
如果break可以跳出所有循环,结果只会有1遍;
如果break只可跳出一层循环,结果会有7遍(7天)。)
二、for循环【语法结构】
for 变量 in 可迭代对象: statement(s)例①:
>>> for each in "金小川": print(each) 金 小 川 >>>【解释】【for】让【“金小川”】中的每一个字符赋值给了【each】,然后依次【print】
例②(也可以用while实现,但是会别扭且难):
>>> i = 0 >>> while i < len("金小川"): print("金小川"[i]) i += 1 金 小 川 >>>【解释】
len():全称lenth,作用是取出字符串长度,返回值是int类型。
【疑问】可不可以用 for 实现和 while 相同的功能:计算 1 + ... + 1000 的总和?
试:
>>> sum = 0 >>> for i in 1000: sum += 1 Traceback (most recent call last): File "", line 1, in for i in 1000: TypeError: 'int' object is not iterable >>> Traceback (most recent call last):
File "", line 1, in
for i in 1000:
TypeError: 'int' object is not iterable【解释】【1000】是整数(int),不可以作为迭代对象
(1) range(stop) __生成一个从0开始到stop的一个整数数列:
【解决方法】range()函数 __参数只可以是整数型
range(stop)
range(start, stop)
range(start, stop, step)例:
>>> for i in range(10): print(i) 0 1 2 3 4 5 6 7 8 9 >>> '''注意:python经典顾头不顾腚 如果想打印到10,就要【range(11)】'''(2) range(start, stop) __生成一个从start开始到stop的一个整数数列:例:
>>> for i in range(5,10): print(i) 5 6 7 8 9 >>>(3) range(start, stop, step) __生成一个从start开始到stop、跨度为step的一个整数数列:例:
>>> for i in range(5,10, 2): print(i) 5 7 9 >>>>>> for i in range(10,5, -2): print(i) 10 8 6 >>>
【求和的正确写法(刚才的问题)】
>>> sum = 0 >>> for i in range(1001): sum += i >>> print(sum) 500500
【课后作业】找出10以内所有素数!for i in range(2, 10): for x in range(2, i): if i % x == 0: print(i,"=", x, "*", i // x) break else: print(i, "是一个素数") ====================================== 2 是一个素数 3 是一个素数 4 = 2 * 2 5 是一个素数 6 = 2 * 3 7 是一个素数 8 = 2 * 4 9 = 3 * 3



