2021.3.4总结

3.4总结

01review

  1. 内存大小
  2. python支持的运算:数学运算符、比较运算符、逻辑运算符、赋值运算符、*位运算
    • 数学运算符: + 、- 、* 、/ 、% 、// 、 * *
    • 比较运算符: == 、!= 、> 、< 、>= 、<=
    • 逻辑运算符:and 、 or 、not
    • 赋值运算符:= 、+= 、-= 、*= 、/= 、//= 、%= 、**=
    • *位运算
  3. 运算符的优先级
    • 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
    • ** > * 、/ 、 % 、// > + 、-
    • 有括号先算括号里面(只有小括号)
  4. if
    • 顺序结构
    • 分支/选择结构
    • 循环结构

02if

流程控制的三种结构:
  1. 顺序结构:代码从上往下一条一条的执行,而且每条代码只执行一次 (默认)
print(1)
print(2)
print(3)
# 1 
# 2
# 3
  1. 分支/选择结构:满足某个条件才执行某段代码,如果条件不满足就不执行或者执行其他的代码
  • 单分支结构 - if

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

    说明:

    1. if - 关键字;固定写法
    2. 条件语句 - 任何有结果的表达式(赋值语句不可以):具体的数据、已经赋值过的变量、运算表达式
    3. : - 固定写法,不能省略
    4. 代码段 - 和if保持一个缩进(一般用tab键产生)的一条或者多条语句;
      就是满足条件才执行的代码

执行过程:如果条件语句为True(成立),就执行代码段,否则代码段不执行

练习:如果指定的数据是奇数就控制台打印’奇数’

num = 29
# 方法一:
if num % 2 != 0:
    print('奇数') 

# 方法二:
if num % 2:
    print('奇数')
  • 双分支结构 - if…else…
    语法:
    if 条件语句:
    代码段1(条件成立的时候会执行的代码)
    else:
    代码段2(条件不成立的时候会执行的代码)
age = 17
if age >= 18 :
    print('成年' )
else:
    print('未成年')
# 未成年

age = 80
if age >= 18 :
    print('成年' )
else:
    print('未成年')
# 成年
  • if多分支

    根据不同的条件做不一样的事情,但是要求条件之间存在:其中某一个条件成立了,另外的其他条件一定不会成立
    语法:
    if 条件语句1:
    代码段1
    elif 条件语句2:
    代码段2
    elif 条件语句3:
    代码段3

    else:
    代码段N

    # 根据分数对成绩进行评级:A(90 ~ 100)、B(80 ~ 89)、C(60~79)、D(60分以下),分数是有效的百分制分数
    score = 30
    # 方法一:
    if 90 <= score <= 100:
        print('A')
    elif 80 <= score <= 89:
        print('B')
    elif 60 <= score <= 79:
        print('C')
    else:
        print('D')
    
    # 方法二:
    if score >= 90:
        print('A')
    elif score >= 80:
        print('B')
    elif score >= 60:
        print('C')
    else:
        print('D')
    
# 进校标准:分数高于500进普通班级,等级是A级进特长班
if score > 500:
    print('进普通班级')
if grade == 'A':
    print('进特长班')
  • if嵌套

    # 练习:判断一个数是否是偶数,如果是打印'偶数'否则打印'奇数',同时判断这个数是否是4的倍数,如果是打印'4的倍数'
    num = 20
    if num % 2 == 0:
        print('偶数')
        if num % 4 == 0:
            print('4的倍数')
    else:
        print('奇数')
    
    # if num % 4 == 0:
    #     print('4的倍数')
    

循环结构:代码只写一遍,但是可以重复执行很多次。

03for

  • 语法:
    for 变量 in 序列:
    循环体

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

    执行过程:
    让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。(序列中元素的个数决定了循环的次数)

    for x in 'abc=-':
        print('+++', x)
    
  • range函数 - 产生一个指定范围的数字序列

    range(N) - 产生[0,N)的数字序列, N必须大于0,每次数字增加1
    range(M,N) - 产生[M,N)的数字序列,M < N, 每次数字增加1
    range(M,N,step) - 产生[M,N)的数字序列,每次数字增加step

    for x in range(5):
        print('x1:', x)
    
    # 写程序打印'hello' 100遍
    
    
    # 练习1:统计100以内能被3整除数的个数
    
    
    
    # 练习2:计算1~100中所有能被3整除但是不能被5整除的数的和
    
    
    
    

04while

    • 语法:
      while 条件语句:
      循环体

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

      执行过程:
      先判断条件语句是否为True,为True就执行循环体,执行完再判断条件语句是否为True,为True就执行循环体,…
      以此类推,直到判断条件语句的时候结果为False,整个循环就结束。

    # 打印1~100
    num = 1
    while num < 101:
        print(num)
        num += 1
        
    num = 0
    while num < 10:
        print('hello')
        num += 1
    
2.for循环和while循环的选择
当循环次数不确定的时候使用while循环,否则使用for循环
# 练习:写一个猜数字游戏
程序开始的时候随机产生一个100以内的数,用户通过输入的方式来猜数字,如果猜对了游戏结束,如果猜错了给出提示信息:大了、小了


05circulationKeyword

1)continue和break

continue和break只能在循环体中使用
continue: 结束一次循环(当执行循环体的时候遇到continue,当次循环结束,直接进入下次循环的判断)
break:结束整个循环(当执行循环体的时候遇到break,整个循环直接结束)

*使用while循环的套路

​ while True:
​ 每次循环要做的事情
​ if 循环结束的条件:
​ break

2)else

python中完整的for循环和while循环后面都有else结构,else结构的存在不影响原循环的执行。

for 变量 in 序列:

​ 循环体
​ else:
​ 代码段

while 条件语句:

​ 循环体
​ else:
​ 代码段

当循环是因为遇到break而结束的,那么循环后面else里面的代码不会执行。
循环结束的时候不是因为遇到break,那么else后面的代码段会执行

3.3作业:

基础题

  1. 根据输入的成绩的范围打印及格 或者不及格

    score = 80
    if score > 60:
        print("及格")
    else:
        print('不及格')
    
  2. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!

    age = 151
    if 0 < age < 18:
        print('未成年')
    elif 18 < age < 150:
        print('成年')
    else:
        print('这不是人')
    
  3. 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数

    a = 8
    b = 6
    if (a-b) % 2 ==1:
        print(a-b)
    else:
        print('a-b的结果不是奇数')
    
  4. 使用for和while循环输出 0~100内所有3的倍数。

    for num in range(0,100,3):
        print(num)
    
    num = 11
    while num < 101:
        if num % 3 ==0:
            print(num)
        num += 1
    
  5. 使用for和while循环输出100~200内个位数或者十位数能被3整除的数。

    for num in range(100,201):
        if num % 10 % 3 == 0 or num // 10 % 10 % 3 == 0 :
            print(num)
    
    num = 100
    while 100 <= num < 201:
        if num % 10 % 3 == 0 or num // 10 % 10 % 3 == 0:
            print(num)
        num += 1
    

进阶题

  1. 使用循环计算1*2*3*4*...*10的结果。

    count = 1
    for num in range(1,11):
        count *= num
    print(count)
    
  2. 统计100以内个位数是2并且能够被3整除的数的个数。

    count = 0
    for num in range(0,101):
        if num % 10 == 2 and num % 3 == 0:
            count += 1
    print(count)
    
  3. 输入任意一个正整数,求他是几位数?

    注意: 这儿不能使用字符串,只能用循环

  4. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是

    ⼀个⽔仙花数,因为 1³ + 5³ + 3³ 等于 153。

挑战题

  1. 判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)

  2. 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定)

  3. 输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

  4. 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值