04分支循环

04学习总结

一、作业改错

  • x = (y = z + 1) × —— 赋值语句无法提供数据

  • C语言编译型

    C源码 (.c)-—编译—>可执行文件(.exe) —执行—>计算机执行

  • python - 解释型语言

    python源码(.py)—(解释执行)—>计算机执行 (边翻译边执行)

    python版本 - A.B.C(C-修改bug、B-添加新功能、A - 重大修改,A不同不兼容)

  • 空串和空格意义不同:空格是有意义的。

  • python对大小写敏感

  • 输入数据注意类型转换

  • 注意区分 /(除) 和 //(整除)

二、流程控制

1.顺序结构

  • 代码从上往下一条一条执行,每条语句只执行一次(默认);
  • 注意:input函数会将程序暂停,输入操作后接着执行

2.分支结构

  • 代码在执行过程中,根据条件选择执行或者不执行某些代码(if语句)

3.循环结构

  • 代码只写一边重复执行多次(for、while )
# 1)顺序结构:
print('ok')
print('yes')
# input('输入任意字符:')

# 2)分支结构
age=int(input('input age:'))
if age>=18:
    print('adult')
else:
    print('child')
# 3)循环结构

for _ in range(10):
    print('ok',end=' ')

三、分支结构

1.if 单分支结构

  • 如果xxx就xxx(满足某个条件执行某个操作,不满足时不执行)

  • 语法:if 条件语句:
    代码段

  • 说明:

    • if - 关键字:固定写法
    • 条件语句 - 对应的条件代码(必须是一个有结果的表达式 - 赋值语句不能做条件)
    • 冒号 - 固定写法(英文输入法下)
    • 代码段 - 结构上,和if保持缩进的一条或多条语句(至少一条)
      逻辑上,满足条件才执行的代码
  • 执行过程:先判断条件语句.是否成立:成立代码段执行,否则就不执行。

    案例:如果score对于80分就打印‘通过‘

score = 4  # int(input("input score:"))
if score > 80:
    print("pass")
    print('get rewards')  # 满足条件才执行

if score > 80:
    print("pass")
print('get rewards')  # 总会执行
  • 练习1:根据num的值打印奇数
num1 = 335
if num1 % 2 != 0:
    print("奇数")   #奇数
  • 练习2:判断一个数是否是水仙花数
um = 153
if num // 1000 == 0 and num == (num // 100) ** 3 + (num % 100 // 10) ** 3 + (num % 10) ** 3:
    print('水仙花数')
 # 水仙花数

2.if 双分支结构

  • 如果xxx就xxx,否则xxx(满足条件执行一个操作,条件不满足时执行另外的操作)

  • 语法:

    if 条件语句
    代码段1(满足条件时执行)
    else:
    代码段2(不满足条件时执行)

  • 练习1:根据num的值打印奇数或者偶数

num = 80
if num % 2 == 0:
    print('偶数')
else:
    print('奇数')
  • 练习2:根据age的值打印成年或者未成年
age = 29
if age >= 18:
    print('成年')
else:
    print('未成年')
  • 练习3:如果num1大于10,就减5,否则num加5
num1 = 89
if num1 > 10:
    num1 -= 5
else:
    num1 += 5
print(num1)

3.if 多分支结构

  • 如果xx就xx,如果xxx就xxx,…(根据不同的条件做不同的事情)

  • 方法1: 多个单支语句如果其中一个条件成立,其他条件也有可能成立时使用

    • if 条件语句1:
      代码段1
      if 条件语句2
      代码段2
      if 条件语句3
      代码段3
  • 案例:如果考试100分 买车,90分 买鞋,80多分 吃火锅,80分以下 打死

score = 99
if score == 100:
    print('买车')
if 90 <= score < 100:
    print('买鞋')
if 80 <= score < 90:
    print('吃火锅')
if score < 80:
    print('打死')
 # 虽然可用但是会执行不必要的操作,效率低,不管条件是否满足,每一个条件语句都会判断  
  • 方法2:使用if-elif结构(如果其中一个条件成立,其他条件绝不会成立时使用)
    • if 条件语句1:****
      代码段1
      elif 条件语句2:
      代码段2
      elif 条件语句3:
      代码段3

      else: - (可以没有)
      代码段n
    • 特点:后面的条件是在前面的条件不成立的情况下执行判断。
score = 99
if score < 80:
    print('打死')
elif score < 90:
    print('吃火锅')
elif  score < 100:
    print('买鞋')
elif score == 100:
    print('买车')  #从小往大写,可以写的更简洁
  • 练习:如果num是偶数打印’偶数‘,如果是奇数就打印奇数,如果能被5整除就打印5的倍数
num = 43
if num % 5 == 0:
    print('5的倍数')
if num % 2 == 0:
    print('偶数')
else:
    print('奇数')

四、循环结构

1.for 循环结构

  • 语法:

    for 变量 in 序列:
    循环体

  • 说明:

    • for - 固定写法
    • 变量 - 变量名(没有定义的变量名也可以)
    • in - 关键字:固定写法
    • 序列 - 容器型数据类型的数据就是序列;
    • 冒号 - 固定写法
    • 循环体 - 结构上,和for保持一个缩进的一条或多条语句(至少一条)
      逻辑上,需要重复执行的代码
  • 执行过程:

    • 让变量去序列中一个一个取值,取完为止,每取一次,执行一次循环体;
    • 循环的次数序列中元素的个数决定
  • 扩展:容器型数据类型&非容器型数据类型

    • 非容器型变量:同一时间只能保存一个数据
    • 常见的容器型数据:字符串、列表、元组、集合、字典、迭代器、生成器
  • 案例:案例使用for循环打印 hello word 5次

for i in '12345':
    print(i, 'hello word!')
  • range函数 - 创建等差数列

    • 使用字符串来限制for循环的执行次数,当所需循环次数过大时,这种方法使用起来极其不方便

    • range函数三个用法:

      • range(N) - 创建一个[0,N)的等差数列,差是1,

        例如:range(5) - 0,1,2,3,4

      • range(M,N) - 创建[M,N)的等差数列,差是1,例如:range(5,10) - 5,6,7,8,9

      • range(M,N,step) - 创建[M,N)的等差数列,差是step,

        例如:range(5,12,2) - 5,7,9,11
        range(20,10,-2) - 20,18,16,14,12

  • 练习:写出以下等差数列对应的range函数

    1. 0 1 2 3 4 5
    2. 1 3 5 7 9 11
    3. 90 100 110 120 130
    4. 9 8 7 6 5
    5. 19 16 13
    6. 2 1 0 -1 -2
# 0 1 2 3 4 5
for i in range(6):
    print(i, end=' ')
print()

# 1 3 5 7 9 11
for i in range(1, 12, 2):
    print(i, end=' ')
print()

# 90 100 110 120 130
for i in range(90, 131, 10):
    print(i, end=' ')
print()

# 9 8 7 6 5
for i in range(9, 4, -1):
    print(i, end=' ')
print()

# 19 16 13
for i in range(19, 12, -3):
    print(i, end=' ')
print()

# 2 1 0 -1 -2
for i in range(2, -3, -1):
    print(i, end=' ')
print()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值