day 2 课程总结
循环、分支结构
流程控制:控制代码顺序执行
顺序结构:代码从上往下顺序执行,每条语句只执行一次
分支结构:根据条件选择执行或者不执行部分代码(if / if…else / if…elif…else(某些情况可丢掉))
循环结构:让代码重复执行(for / while)
容器型数据类型:字符串、列表、字典、集合、元组、迭代器、生成器、range等
让变量去序列中取值,一次取一个,并执行一次循环体,取完为止
 range(n): 产生[0,n)的等差数列,差是1 0,1,2,3,4······n-1
 range(m,n): 产生[m,n)的等差数列,差是1 m,m+1,m+2······n-1
 range(m,n,step): 产生[m,n)的等差数列,差是step m,m+step,m+2*step······
 for 变量(可以是已经定义过或没有定义的) in 序列(容器型数据类型的数据):
 循环体
 while 条件:
 循环体
分支结构语法
1.  if 条件语句(不能是赋值运算):
		代码段
3.  if 条件语句:
        代码段
    else:
    	代码段
4.  if 条件语句:
        代码段
    elif 条件语句:
        代码段
          .
          .
          .
     else:
        代码段
pass:占位符
同时输入多个变量值
a, b, c = input('请输入三个人的成绩:').split()
同时输入多个变量值并进行类型转换
d, e, f = map(int, input('请输入三个人的成绩:').split())
  print(a, b, c)
判断数据类型
num = 'hellow world'
  if type(num) == int:
      print('该数据为整型
  else:
      print('该数据类型为:', type(num))
for 循环的执行过程
for x in 'abc':
	print(1)
print(x)
'''
执行过程:
第一次:x = 'a' ->  print(1)
第一次:x = 'b' ->  print(1)
第一次:x = 'c' ->  print(1)
循环结束
最后x的值为c
'''
例题
# 1000以内所有偶数
 for i in range(0, 1000, 2):
     print(i)
# 累计求和:1+2+3+···+100
sum1 = 0
for i in range(1, 101):
    sum1 += i
print(sum1)
#求10的阶乘
sum2 = 1
for i in range(1, 11):
    sum2 *= i
print(sum2)
# 求100到200中所有能被3整除的偶数的和
sum3 = 0
for i in range(100, 201):
    if i % 3 == 0 and i % 2 == 0:   # if i % 6 == 0:
        sum3 += i
print(sum3)
'''
优化1:
for i in range(100, 201, 2)
    if i % 3 == 0:
            sum3 += i
优化2:
for i in range(102, 201, 3):
    if i % 2 == 0:
        sum3 += i
优化3:
for i in range(102, 201, 6):
    sum3 += i
'''
# 统计1000以内奇数的个数
count1 = 0
for i in range(1, 1000, 2):
    count1 += 1
print(count1)
# 统计1000以内能被3整除但是不能被7整除的个数
count2 = 0
for i in range(3, 1000, 3):
    if i % 7 != 0:
        count2 += 1
print(count2)










