Day4-分支和循环总结

今天讲的内容有:if多分支结构、三目运算符、for循环、while循环、continue和break

if多分支结构

1. if多分支结构 - 根据不同的条件做不一样的事情

1)if - elif - else - 不同条件之间存在:其中一个条件成的时候,别的条件一定不会成立

if 条件1:
    代码段1
elif 条件2:
    代码段2
elif 条件3:
    代码段3
...
else:
    代码段N

执行特点:如果前面的条件成立,那么后面的条件不会再判断(后面的条件的判断是在前面的条件不成立的情况下进行的)

2) 单独使用多个if - 条件之间存在:其中一个条件成立,其他的条件也可能成立

if 条件1:
    代码段1
if 条件2:
    代码段2
if 条件3:
    代码段3
...

练习1: 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!。

age = 35
if age < 0 or age > 150:
    print('这不是人!')
elif age < 18:
    print('未成年')
else:
    print('成年')

练习2: 根据数字的值打印奇数、偶数和4的倍数

num = 25
if num % 2:
    print('奇数')
else:
    if num % 4 == 0:
        print('4的倍数', end=' ')
    print('偶数')

三目运算符

1. 三目运算

1)C、java、js中三目的运算符: ?:
表达式 1 ? 值1 : 值2 - 先判断表达式1的结果是否为真,如果是,整个运算表达式的结果是值1,否则是值2。

int a = 100;
int x;
x = a > 100 ? 10:20;

2)Python中的三目运算符
值1 if 表达式 1 else 值2 - 先判断表达式1的结果是否为True,如果是,整个运算表达式的结果是值1,否则是值2。

a = 100
x = 10 if a > 100 else 20
print(x)

for循环

1.循环结构 - 让代码重复执行

for _ in range(3):
    print('hello world!')

2.for循环

1) 语法:

for 变量 in 序列:
	循环体

2) 说明:
for、in - 关键字;固定写法
变量 - 变量名(可以是已经定义的变量的变量名,也可以是没有定义过的变量的变量名)。
序列 - 容器型数据类型的数据就是序列,例如:字符串、列表、字典、元组、集合、迭代器、生成器、range等。
: - 固定写法
循环体 - 结构上是和for保持一个缩进的一条或者多条语句(至少1条);逻辑上就是需要重复执行的代码。
3) 执行过程
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。
for循环由序列中的元素的个数决定
4) range函数 - 产生一个等差数列的数字序列的函数

range(N)   -   产生[0, N)步长为1的数字序列
                  range(3) -> 0, 1, 2
                  range(5) -> 0, 1, 2, 3, 4
range(M, N)   -   产生[M, N)步长为1的数字序列
                     range(1, 5)-> 1, 2, 3, 4
                     range(10, 21) -> 10, 11, 12,..., 20
range(M, N, step)  -  产生[M, N)步长为step指定值的数字序列,
                         range(1, 5, 2)  -> 1, 3
                         range(10, 20, 3)  -> 10, 13, 16, 19
                         range(20, 14, -1)   -> 20, 19, 18, 17, 16, 15

练习:利用循环计算1+2+3+…+100的和 - 求和套路

sum1 = 0    # 保存最后的和
for x in range(1, 101):
   sum1 += x   # sum1 = sum1 + x
print(sum1)

统计1000以内能被3整除的数的个数

ount = 0   # 保存最后的个数
for x in range(1, 1000):
    if x % 3 == 0:
        count += 1
print(count)    

统计1000以内能被3整除但是不能被7整除的数的个数

# 方法一:
count = 0
for x in range(1, 1000):
    if x % 3 == 0 and x % 7 != 0:
        count += 1
print(count)

# 方法二:
count = 0
for x in range(3, 1000, 3):
    if x % 7 != 0:
        count += 1
print(count)            

while循环

1.while循环

1)语法:
while 条件语句:
    循环体

2)说明:
while       -   关键字,固定写法
条件语句     -   任何有结果的表达式(不能是赋值语法)
:           -   固定写法
循环体       -   结构上和while保持一个缩进的一条或者多条语句;逻辑上就是需要重复执行的代码

3)执行过程:
先判断条件语句是否为True,如果为True就执行循环体,执行完循环体在判断条件语句是否为True, 为True又执行循环体,
以此类推,如果条件语句为False,循环就结束!

2. for循环和while的选择

循环次数确定的时候就使用for循环,循环次数不确定就使用while循环。
练习(循环次数不确定):提示用户输入密码,直到密码输入正确为止

pw = '123456'   # 原密码
get_pw = None    # 保存输入得到的密码
# 当输入的密码和原密码不相等的时候就提示输入
while get_pw != pw:
    get_pw = input('请输入密码:')

continue和break

1. continue - 结束一次循环

当执行循环体的时候遇到了continue,那么这一次循环结束,直接进入下一次循环。

for x in range(10):
    if x % 2:
        continue
    print(x)    # 0,2,4,6,8

2. break - 结束整个循环

执行循环体的时候如果遇到了break,那么整个循环直接结束。

or x in range(1, 10):
    if x % 3 == 0:
        break
    print(x)

3. while循环和break的配合

初学者的while循环
while True:
    需要重复执行的代码
    if 循环结束的条件:
        break
上一篇:牛客java专项练习-day4


下一篇:Mybatis day4