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)