day04-python分支和循环

一 if语句

1.1 什么时候使用if语句

如果某一段代码需要在满足条件的时候才执行就是用if语句

1.2 怎么使用if语句

1. 2.1 if单分支结构 — 满足条件执行某个操作,不满足不执行

语法:

if 条件语句:
	代码块(if里面的代码)
其他代码(if外面的代码)

说明:

  1. if — 关键字;固定写法
  2. 条件语句 - 任何有结果的表达式(具体的数据、除了赋值语句以外的运算表达式、函数调用表达式)
  3. : - 固定写法
  4. 代码块 - 和if保持一个缩进的一条或者多条语句;需要在满足条件才会执行的代码。
  5. 执行过程 - 判断条件语句是否为True(如果不是布尔就看条件语句的结果的布尔值是否为True),为True就执行if里面的代码快,否则不执行。
  • 注意:条件语句可以是除了赋值语句以外的任何表达式
if 100:
    pass
if 'abc':
    pass
if 10 > 5:
    pass

报错:
'''
if num = 10:
    pass
'''
  • 代码块和执行过程
print('====分割线===')
if 1:
    print('===')
    print('---')
print('***')

练习:根据输入的数据打印偶数

num = float(input('请输入:'))
if num % 2 == 0:
    print(num)
else:
    print('此数为奇数。')
或者:
if not num % 2:
    print('偶数')

if num % 2:
    print('奇数')

判断字符串是否为空

str1 = ''
if str1:
    print('不是空串')

1.2.2 if双分支结构 - 满足条件执行某个条件,不满足执行另外一个操作

语法:
if 条件语句:
    代码块1(满足条件要执行的代码)
else:
    代码块2(条件不满足的时候要执行的代码)

执行过程:
判断条件语句是否为True(如果不是布尔就转换成布尔),如果为True就执行代码块1,否则执行代码块2.

练习1:根据年龄的值打印成年或者未成年。

age = int(input('请输入年龄:'))
if age >= 18:
    print('成年')
else:
    print('未成年')

练习2:判断一个三位数是否为水仙花数(各位数的立方和刚好等于这个数本身)
num = int(input(‘请输入一个三位数:’))

if 100 <= num < 1000:
    a = num // 100
    b = num % 100 // 10
    c = num % 100 % 10
    if num == a ** 3 + b ** 3 + c ** 3:
        print('次数为水仙花数')
    else:
        print('次数不是水仙花数')
else:
    print('你输的啥?')

1.2.3 if多分支结构 - 根据不同的条件执行不同的操作

语法:
if 条件语句1:
    代码块1
elif 条件语句2:
    代码块2
elif 条件语句3:
    代码块3
...
else:
    代码块N
其他代码

执行过程:
先判断条件语句1是否为True,为True就执行代码块1,然后if语句结构直接结束;否则就判断条件语句2是否为True,如果为True就执行代码块2,然后整个if语句结构直接结束;否则就判段条件语句3是否为True,以此类推…。如果前面所有语句不成立,就直接else后面的代码块。

练习:根据每个月的收入情况判断这个月的伙食

income = int(input('请输入你的工资:'))
if 500 < income <= 1000:
    print('吃土吧')
elif 1000 < income <= 3000:
    print('省吃简雍还能过')
elif 3000 < income <= 5000:
    print('泡面在等你')
elif 5000 < income <= 10000:
    print('吃面或米饭')
elif 10000 < income:
    print('好嗨哦,感觉人生已经达到了巅峰!')
else:
    print('你来城市里干嘛?')

1.3.python中的三目运算符

  1. C中的三目运算符 - ?;
    表达式1?表达式2:表达式3 - 判断表达式1的值是否为真,如果是真,整个运算的结果就是表达式2的值,否则就是表达式3的值。
    例如:
int age = 18;
int result = age >=18?"成年":"未成年";
  1. python中的三目运算符 - 通过if-else来实现c中 ?:的功能。
    表达式2 if 表达式1 else 表达式3 - 判断表达式1的值是否为True,如果是True,整个语句的结果就是表达式2的值,否则就是表达式3的值。
    例如:
age = 18
result = '成年' if age >= 18 else '未成年'
print(result)

score = 69
result = '及格' if score >= 60 else '不及格'
print(result)

1.4 if嵌套 - 在一个if语句中嵌套其他的if语句

例如:
判断一个数是否是偶数,如果是打印’偶数’,否则打印’奇数’,;然后再判断这个数是否能被4整除。

num = int(input('请输入一个数:'))
if not num % 2:
    print('偶数')
    if not num % 4:
        print('能被4整除')
    else:
        print('不能被4整除')
else:
    print('奇数')

二.for循环

语法:
for 变量 in 序列:
    循环体
  • 说明:
  1. for - 关键字;固定写法
  2. 变量 - 可以是已经定义过的变量,也可以是没有定义过的变量(常用)
  3. in - 关键字;固定写法
  4. 序列 - python中容器型数据类型得数据,例如:字符串、列表、元组、集合、字典、迭代器、生成器、range等
  5. : - 固定写法
  6. 循环体 - 和for保持一个缩进的一条语句或者多条语句;需要重复执行的代码
  • 执行过程:
    让变量去序列中取值,一个一个的取,取完为止,每取一个值执行一次循环。(for循环的循环次数和序列中元素的个数一样)
for i in 'abc':
    print('==')
    print(i)

执行过程:

i = 'a';print('a')
i = 'b';print('a')
i = 'c';print('a')

2.1 range函数 - 产生数据序列

用法1:

range(N)    -   产生一个 0~N-1 的数字序列(N是正整数)

例如:

for i in range(4):
    print('i:', i)

练习:print("!!!")执行100次

for i in range(100):
    print('!!!', i)

用法2:

range(M,N)  -   产生一个 M~N-1 的数字序列;(M,N都是整数;N>M)
for j in range(10, 100):
    print('j:', j)

for z in range(-100, -10):
    print('z:', z)

用法3:

range(M,N,step) -   从M开始每次增加step产生下一个数字,到N前为止。
注意:当step为负数时,M > N
for i in range(1, 10, 2):
    print('i:', i)

for j in range(10, 1, -1):
    print('j:', j)

练习1:计算1+2+3+…+100的和。

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

练习2:统计100~300中能被3整除但不能被4整除的个数。

s = 0
for i in range(100, 301):
    if i % 3 == 0 and i % 4 != 0:
        s += 1
        print('满足条件的数:', i)
print('s:', s)

三 while循环

语法:

while 条件语句:
    循环体

说明:
1)while - 关键字;固定写法
2)条件语句 - 任何又结果的表达式,只要不是赋值语句就可以,和if的条件语句一样
3): - 固定写法
4)循环体 - 和while保持一个缩进的一条或者多条语句;需要重复执行的代码

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

num = 0
while num <= 4:
    print('sh!')
    num += 1

练习1:不断从控制台输入数字,直到输入的数字为0就停止。
方法一:

num = int(input('请输入:'))
while num != 0:
    num = int(input('请输入num:'))
    print('num:', num)

方法二:

while True:
    value = input('请输入:')
    if value == '0':
        break

练习2:猜数字游戏

import random
r_num = random.randint(0, 100)
print('r_num:', r_num)
while True:
    num = int(input('请输入新的num:'))
    if num != r_num:
        print(num, '不对!', sep=':')
    else:
        print('bingo')
        break

四 python中的三个关键字

4.1continue

continue是循环体中的关键字,只能在循环体中使用。
当执行循环体的时候,如果遇到continue,当次循环结束,直接进入下次循环的判断.
例如:

for _ in range(5):
    print('==')
    continue
    print('--')

4.2 break

break是循环体中的关键字,只能在循环体中使用。
当执行循环提的的时候如果遇到break,整个循环直接结束。
例如:

for _ in range(5):
    print('==')
    break
    print('--')
4.2.1 python中while正确打开方式
while True:
    需要重复执行的操作
    if 循环结束的条件:
        break
4.2.2 python中的for和while的完整结构是:for-else结构和while-else结构。
  1. for-else结构
for 变量 in 序列:
    循环体
else:
代码块
  1. while-else结构
while 条件语句:
    循环体
else:
    代码块

注意:
else后面的代码在循环的过程中如果遇到了break就不会执行,反之就会执行。
例如:

for _ in range(5):
    print('==')
    break
    print('--')
else:
    print('else中的')

num = 1
while num < 5:
    print('sdas')
    num += 1
    if num == 3:
        break
else:
    print('while-else结构')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值