Python 测开27期 - WL - 学习笔记 - python 循环与判断

Python 循环与判断

运算符

算数运算符

  • 运算符号:加+,减-,乘*,除/,取余%,次方**,整除//

比较运算符

  • 运算符号:等于(==),不等于(!=),大于(>),小于(<),大于等于(>=),小于等于(<=)

赋值运算符

  • 运算符号:
    简单赋值运算符:=,如 a=1,多变量赋值如b,c=2,“的”, b的值为2,c的值为“的”
    加法赋值运算符:+=,a=1, b=a+1和a+=1一样,即为自增加
    减法赋值运算符:-=,a=3, b=a-1和a-=1一样,即为自减法
    乘法赋值运算符:=,a=3, b=a2和a*=2一样,即为自乘法
    除法赋值运算符:/=,a=5, b=a/2个a/=2一样,即为自除法
    取余赋值运算符:%=,a=5, b=a%2个a%=2一样,即为自除取余法
    幂赋值运算符-乘方:=,a=3, b=a3和a**=3一样,即为自乘方法
    整除赋值运算符://=,a=5, b=a//2个a//=2一样,即为自整除法

运算逻辑符

  • 运算符号
    and:x and y,xy都为真则为真-True,有一个为假则为假False
    or:x or y,xy任意一个为真则为真,两个都为假则为假
    not:not x,x为假,则not x为真

成员运算符

  • 运算符号
    in:在指定序列中找到值,为真,反之为假
    not in:在指定序列中没有找到值,为真,反之为假

身份运算符

  • 运算符号
    is:判断两个标识符是不是引用同一个对象
    is not:判断两个标识符是否引用自不同对象
    与“==”和“!=”的区别:==与!=只判断值,不判断内存地址,is是判断两个变量之间的内存地址是否相同,is not是判断两个变量之间的内存地址是否不同
    image

  • 注:
    可变的数据结构,即使看着一样,但是内存地址是不同的,如上图的list中的元素
    不可变的数据结构,如果看着一样,那么他们的内存地址是相同的,如上图中的直接命名的变量

控制流 - 分支判断

  • 一条一条语句顺序执行称为顺序结构
  • 分支结构:在某个判断条件后,选择一条分支执行

if条件判断

  • 第一个场景分支一定使用,需要跟随判断条件
    image

else条件判断

  • 当从第二个场景分支开始只剩下一种场景时使用,无需跟随判断条件
    image

elif多重条件判断

  • 当有两个以上场景分支时,从第二个分支开始使用,每一个都需要跟随判断条件
    image

分支嵌套

  • 多种不同层级的判断可嵌套进行
    image

三目运算符

控制流 - 循环

定义

  • 允许多次执行一个语句或多个语句
  • 分别为for循环和while循环

作用

  • 封装重复操作
  • 基础语法之一

for in 循环

  • 使用场景:明确知道循环执行的次数或者要对一个容器进行迭代
  • range函数
    range(101):产生一个0-100的整数序列
    range(1,100):产生一个1-99的整数序列
    range(1,100,2):产生一个1-99的奇数序列,步长为2
    range(2,101,2):产生一个2-100的偶数序列,步长为2
    image

while循环

  • 满足条件,进入循环
  • 需要设定好循环结束的条件
    image

break 跳出循环

continue 跳出当前轮次循环

pass

  • 用来占位
  • 不影响代码执行逻辑
    image

for 循环实例

计算1~100求和

  • 使用分支结构实现1-100之间的偶数求和
sum = 0
for i in range(1, 101):
    if i % 2 == 0:
        sum = sum + i
        print('i=%d'%i)
        print('sum=%d'%sum)
print(sum)
  • 不使用分支结构实现1~100之间的偶数求和
sum1 =0
for k in range(2, 101, 2):
    sum1 = sum1 + k
    print('k=%d'%k)
    print('sum1=%d'%sum1)

while循环实例

猜数字游戏

  • 计算机出一个1-100之间的随机数由人来猜
  • 计算机出根据人猜的数字分别
  • 给出提示大一点/小一点/猜对了
  • 人一直给出数字
import random
conputer_no =random.randint(1,100)
print('conputer_no',conputer_no)
while True:
    people_no =int(input("请输入数字:"))
    if conputer_no>people_no:
        print("你猜小了")
    elif conputer_no<people_no:
        print("你猜大了")
    else:
        print("猜对了")
        break
  • 机器一直给出数字
import random
people_no =int(input("请输入数字:"))
ss=0
min=1
max=100
while ss != people_no:
    print("min = %d"%min+",max = %d"%max)
    # random.randint(min, max) 是随机生产一个范围内的整数
    conputer_no =random.randint(min, max)
    print('conputer_no',conputer_no)
    if conputer_no> people_no:
        print("电脑大了")
        max = conputer_no
    elif conputer_no< people_no:
        print("电脑小了")
        min =conputer_no+1
    else:
        print("电脑猜对了")
        break

课后练习

  • 不使用分支结构实现1~100之间的求和求和
sum =0
for i in range(1,101,2):
    print(i)
    sum = sum+i
    print(sum)
  • 使用while语句实现1~100 之间的奇数求和
k = 1
big = 0
while k % 2 == 1 and k < 101:
    print(k)
    big = big + k
    k += 2
    print(big)