条件分支 1、基本要素: 预设判断条件 达到条件后执行的语句
2、扩展要素: 不满足条件执行的语句 满足多条件执行语句
3、条件语法: if<逻辑表达式>: <语句块1> else: <语句块2> if和else都是“保留字” 冒号表示语句的层次 None,0,0.0,’ ',[ ],(),{ },set()都自动转换为False,其他值为True
4、分段条件(多个条件) 条件互斥使用else字句判定 缩进太多可将else,if转成elif最后以else:收尾
条件循环 1、基本要素: 可以从容器或数据集中获取数据项,for语句 逻辑表达式计算结果判断循环前提是否存在
2、扩展要素: 循环前提消失,停止执行这组语句,执行另一组(else)语句
3、循环语法: 条件循环,以逻辑表达式为前提循环 while<逻辑表达式>: <语句块> break #跳出循环 continue #略过余下循环语句 <语句块> else: #条件不满足退出循环,则执行 <语句块> while、else为保留字
4、多重循环 中断程序:ctrl+c range函数
迭代循环(for) 1、for语句实现循环的结构 for<循环变量>in<可迭代对象>: <语句块1> break #跳出循环 continue #略过余下语句 else: #迭代完毕,则执行 <语句块2> for、in、else都是保留字 可迭代对象表示从这个数据对象中可逐个取出数据项赋值给“循环变量” 可迭代对象有字符串、容器类型,和生成器、迭代器 如:
2、range函数 range(<终点>) 返回一个从0到终点-1的数列 range(<起点>,<终点>) 实现返回从0以外任何整数开始构建的数列 range(<起点>,<终点>,<步长>) 修改数列的步长,通过将步长设置为负数能够实现反向数列 都是左闭右开 range类型的对象 直接当做序列; 转换为list或者tuple等容器类型,如list(range(n))
3、跳出和继续 continue语句和break语句 只能在循环内部使用 均作用于离他们最近的一层循环 一般continue不会无条件执行,加个if条件语句执行continue
上机练习 1、给定n,计算1+2!+3!+…+n!的值
# 给定n,计算1+2!+3!+…+n!的值 a = int(input('请输入一个正整数:')) t = 1 s = 0 for b in range(1, a+1): t = t * b s = s + t print(s)2、给定y和m,计算y年m月(字典关联)有几天,注意闰年定义
# 给定y和m,计算y年m月有几天 date = {input('请输入年份:'): input('请输入月份:')} for Y, M in date.items(): Year = int(Y) Month = int(M) if Month == 2: if (Year % 400 == 0) or (Year % 4 == 0) and (Year % 100 != 0): print('%d年%d月有%d天' % (Year, Month, 29)) else: print('%d年%d月有%d天' % (Year, Month, 28)) elif Month == 1 or 3 or 5 or 7 or 8 or 10 or 12: print('%d年%d月有%d天' % (Year, Month, 31)) else: print('%d年%d月有%d天' % (Year, Month, 30)) 请输入年份:2012 请输入月份:2 2012年2月有29天3、给定字符串s和数字n,打印把字符串s向右移动n位的新字符串,如abcd和1,返回:dabc
# 给定字符串s和数字n,打印把字符串s向右移动n位的新字符串,如abcd和1,返回:dabc s = input('请输入一个字符串:') n = int(input('请输入数字:')) Newlist = s[-1:-n-1:-1]+s[0:len(s)-n] print(Newlist) 请输入一个字符串:abcef 请输入数字:3 fecab4、给定一个英文数字字符串,打印相应阿拉伯数字字符串,如one-four-five-nine,返回:1459
# 给定一个英文数字字符串,打印相应阿拉伯数字字符串,如one-four-five-nine,返回:1459 s = input('输入英文数字字符串:') list1 = s.split('-') str2 = ' ' dict1 = {'zero': '0', 'one': '1', 'two': '2', 'three': '3', 'four': '4', 'five': '5', 'six': '6', 'seven': '7', 'eight': '8', 'nine': '9'} for i in list1: str1 = dict1[i] str2 = str2 + str1 print(str2) 输入英文数字字符串:four-five-seven 457