day4-分支和循环

分支结构

1.if-elif-else结构

1)语法:
if 条件1:
    代码1
elif 条件2:
    代码2
elif 条件3:
    代码3
...
else:
    代码N
2)执行过程:

判断1是否为True,如果是则执行1,整个if-elif-else结构结束:
如果1为False,判断2,依次类推
如果所有elif都不成立,执行else

根据年龄范围打印:少年(-14)、青年(14-25)、壮年(26-35)、中年(36-50)、老年(50-)

age = 26
if age < 14:
    print('少年')
elif age <= 25:    # 因为上级条件没执行,所以可以省略上级条件
    print('青年')
elif age <= 35:
    print('壮年')
elif age <= 50:
    print('中年')
elif age > 50:
    print('老年')

2. if嵌套

if结构中可以再出现其他if语句

判断一个数是否为偶数,并且再判断这个数是否是4的倍数;并打印结论

num = 13
if num & 1 == 0:
    print('偶数')
    if num % 4 == 0:
        print('4的倍数')
else:
    print('奇数')
    if num % 10 == 3:
        print('个位数是3')

for循环

循环结构:for循环和while循环

1.for循环

1)语法:

for 变量 in 序列:
    循环体

2)说明:
for - 关键字,固定写法
变量名 - 和声明变量时的要求一样
in - 关键字,固定写法
序列 - 容器型数据:字符串、列表、字典、元组、集合、迭代器、生成器、range
: - 固定写法
循环体 - 和for保持一个缩进的一条或者多条语句;需要重复执行的语句

3)执行过程:
让变量取序列中取值,一个一个取,取完为止;每取一个值,执行一次循环体
(for循环通过控制序列中元素个数来控制循环次数)

for x in 'abc12':
    print(x)
    print('hello')

2.range函数 - 为了让for更加方便的控制次数

range(N) - 产生0~N-1的数字序列
range(M,N) - 产生M~N-1的数字序列
range(M,N,step) - 产生M~N-1,间隔step的数字学列

作用:
1.产生指定的数字序列
2.控制循环次数
如果只是为了控制循环次数,不需要变量的时候可以用_命名

for x in range(4):
    print(x)

print('-----------------')

for x in range(3,10):
    print(x)

print('-----------------')

for x in range(0,10,2):
    print(x)

print('-----------------')

练习1:统计0~100中能被3整除的个数

# 方法一:
num_1 = 0
for i in range(101):
    if i % 3 == 0:
        num_1 += 1
        print(i)
print(num_1)

print('-----------------')
# 方法二:
for i in range(0,101,3):
    print(i)

练习2:统计1~100中能被4整除的并且个位数是2的数字的个数

num_2 = 0

for i in range(1, 101):
    if i % 4 == 0 and i % 10 == 2:
        print(i)
        num_2 += 1
print(num_2)

练习3:计算1+2+3+.....+100

num_3 = 0
for i in range(1,101):
    num_3 += i
print(num_3)

while循环

1.while循环

1)语法
while 条件:
    循环体
2)说明

while - 关键字;固定写法
条件语句 - 任何有结果的表达式都可以;数据、已经声明过的变量、运算表达式(赋值语句除外)
: - 固定写法
循环体 - 和while保持一个缩进的一条或者多条语句;(需要重复执行的语句)

3)执行过程:

先判断条件语句是否为True,为True就执行循环体,然后再判断条件是否为True...依次类推,
直到条件为False循环结束

num = 0
while num < 5:
    print('====')
    num += 1

2.for循环和while的选择

1)什么时候用for循环
a.循环次数确定的时候
b.遍历序列

2)什么时候使用while循环
a.死循环
b.循环次数不确定的时候

# 不断输入数字,直到输入的值是0为止

value = 1
while value != '0':
    value = input('请输入数字:')

1练习:猜数字游戏
2游戏开始的时候随机产生一个100以内的数字,直到猜对结束
3没猜对给出相应提示

number = randint(0, 100)

answer = -1

while answer != number:
    answer = int(input('请输入你的答案:'))
    if answer > number:
        print('大了')
    elif answer < number:
        print('小了')
    elif answer == number:
        print('对了,答案就是', number)

循环关键字

1.continue

continue是循环体中的关键字
当执行循环体的时候,如果遇到continue,结束当次循环,直接进入下一次

for x in range(4):
    print('hello')
    if x % 2 == 0:
        continue
    print('Hi')

2.break

break是循环体中的关键字
当执行循环体的时候,如果遇到break,整个循环直接结束

for x in range(4):
    print('===')
    break
    print('+++')

# 功能:不断输入数字直到输入为0,求出所有奇数的和
sum1 = 0
while True:
    value = int(input('请输入数字:'))

    if value == 0:
        break

    if value % 2 == 0:
        continue
    sum1 += value

print(sum1)

3.else

1)完整的for循环
for 变量 in 序列:
    循环体
else:
    代码段
    
2)完整的while循环
while 条件:
    循环体
else:
    代码段

else中的代码段:当循环自然结束的时候就执行,如果是break强制打断则不执行

else的意义:可以通过判断else中的代码有没有执行来判断有没有遇到break

for x in range(4):
    print(x)
    if x == 2:
        break
else:
    print('else')

循环嵌套

循环嵌套:外面的循环执行一次,里面的循环要执行完毕

练习:计算1!+2!+3!+....10!=

方法一:

num = 0
for i in range(1, 11):
    num1 = 1
    for j in range(1, i+1):
        num1 *= j
    num += num1
    print(num1, num)

print(num)

方法二:

sum1 = 0
sum2 = 1
for num in range(1,11):
    sum2 *= num
    sum1 += sum2
print(sum1)

你可能感兴趣的:(day4-分支和循环)