条件分支
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都是保留字

可迭代对象表示从这个数据对象中可逐个取出数据项赋值给“循环变量”

可迭代对象有字符串、容器类型,和生成器、迭代器

如:

如何在python 运行vbs脚本并立即关闭自身 python vb6_字符串

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
fecab

4、给定一个英文数字字符串,打印相应阿拉伯数字字符串,如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