• Task 2: 条件循环结构(1天)


    目录

    一、条件循环

    1.if 语句

    2.if-else 语句

    3.if-elif-else 语句

    4.assert 关键字

    二、循环语句

    1.while 循环

    2.while -else 循环

    3.for 循环

    4.for -else 循环

    5.range()函数

    6.enumerate() 函数

    7.break 语句

    8.continue 语句

    9.pass 语句

    10.推导式

    11.综合例子

    正文

    一、条件循环中

    if之前有仔细研究过,今天就不赘述了

    主要说一下elif 和esle 的区别,elif有条件表达式,二esle没有

    #elif 和else 的区别是elif有条件表达式,另外一个没有   
    age=3
    if age>=18:
        print('adult')
    elif age>6:
        print('teenager')
    else:
        print('kid')
    
    
    #else   
    age=int(input('age:'))
    if age>=18:
        print('adult')
    else:
        print('not adult')

    主要记录一下没有接触过的assert

    assert 关键字

    用法如下

    assert +条件表达式

    当条件表达式为真时,才能让程序正常进行,但条件为假时,抛出AssertionError

    #assert 
    assert 2>3
    
    assert 3>2

    二、循环语句

    1.while循环

    while 布尔表达式:
        代码块

    代码会一直循环执行下去,直到布尔表达式的值为假

    n=10 
    i=0
    while i <n:
        print(i)
        i=i+1

    如果布尔表达式不带有<、>、==、!=、in、not in等运算符,仅仅给出数值之类的条件,也是可以的

    while后写入一个非零整数时,视为真值,执行循环体;写入0时,视为假值,不执行循环体

    也可以写入str、list或任何序列,长度非零则视为真值,执行循环体;否则视为假值,不执行循环体

    #死循环了,最好不要写这样的死循环
    while 1:
        print('hi')
        
        
    #list
    l=list('abc')
    while l:
        print(l)
        l=l[1:]  #除了位置为0的不要,其他都要

    2.while-else 循环

    while 布尔表达式:
        代码块
    else:
        代码块   

    当布尔表达时为真是,循环执行while的代码块,但是当布尔表达式为假时,则执行else的代码块

    count = 0
    while count < 5:
        print("%d is  less than 5" % count)
        count = count + 1
    else:
        print("%d is not less than 5" % count)

    3.for 循环

    在工作中,主要用于可迭代对象的遍历

    for 迭代变量 in 可迭代对象:
        代码块

    list 的遍历

    #list 的迭代
    l=list('abcdefg')   
    for i in l:
        print(i)
    
    #位置和值
    for i ,j in enumerate(l):
        print((i,j))
        
    
    #len和range
    for i in range(len(l)):
        print(l[i])    

    dict的遍历

    #dict的迭代
    dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    
    #value的遍历
    for i in dic.values():
        
        print(i,end=' ')
    
    #key的遍历
    for i in dic.keys():
        print(i,end=' ')
        
    #key 和value 的遍历
    for i ,j in dic.items():
        print(i,j,sep=':',end=' ')

    当然string也可以迭代

    #string    
    a='hello,python'
    for i in a:
        print(i,end=' ')

    4.for -else 循环

    for循环正常执行完的情况下,执行else输出,如果for循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容,与while - else语句一样

    for 迭代变量 in 可迭代对象:
        代码块
    else:
        代码块
    for num in range(10, 20):  # 迭代 10 到 20 之间的数字
        for i in range(2, num):  # 根据因子迭代
            if num % i == 0:  # 确定第一个因子
                j = num / i  # 计算第二个因子
                print('%d 等于 %d * %d' % (num, i, j))
                break  # 跳出当前循环
        else:  # 循环的 else 部分
            print(num, '是一个质数')

    5.range()函数

    一般用于生产一个数字序列

    range([start,] stop, [step=1])

    start 和step这两个参数可以不输入,如果只输入stop值,那么将会生产一个从0到stop-1的的序列

    list(range(10))  #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    list(range(1,10))  #[1, 2, 3, 4, 5, 6, 7, 8, 9]
    list(range(1,10,2))  #[1, 3, 5, 7, 9]
    
    #0 1 2 3 4 5 6 7 8 9 
    for i in range(10):
        print(i,end=' ')

    6.enumerate()函数

    enumerate(sequence, [start=0])   #start参数可以不输入

    sequence -- 一个序列、迭代器或其他支持迭代对象。

    start -- 下标起始位置。

    返回 enumerate(枚举) 对象

     我一般用于list迭代时,位置和value的输出

    #位置和值
    l=list('abcdefg')   
    for i ,j in enumerate(l):
        print((i,j),end=' ')
        
    #(0, 'a') (1, 'b') (2, 'c') (3, 'd') (4, 'e') (5, 'f') (6, 'g') 
        

    还可以直接使用

    list(enumerate(l))
    # [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g')]

    7.break 语句

    break 语句可以跳出当前所在层的循环

    import random
    secret = random.randint(1, 10) #[1,10]之间的随机数
    
    while True:
        temp = input("不妨猜一下小哥哥现在心里想的是那个数字:")
        guess = int(temp)
        if guess > secret:
            print("大了,大了")
        else:
            if guess == secret:
                print("你这样懂小哥哥的心思啊?")
                print("哼,猜对也没有奖励!")
                break
            else:
                print("小了,小了")
    print("游戏结束,不玩儿啦!")

    8.continue 语句

    终止本轮循环并开始下一轮循还

    #首先是0,然后就结束了if本轮的循环,直接到0+2,并输出2,再到1,1可以不可以整除2,于是输出1,然后到2,2可以整除,就直接到2+2,然后到3,,,,
    for i in range(10):
        if i % 2 != 0:
            print(i)
            continue
        i += 2
        print(i)

     9.pass 

    主要用于定义函数时,暂时不知道要函数要做什么用,但是又得然程序正常运行下去,就是要pass先占住位置

    def f():
        pass

    10.推导式

    应该叫列表生成器吧

    练习题

    1.编写一个Python程序来查找那些既可以被7整除又可以被5整除的数字,介于1500和2700之间

    l=[]
    for i in range(1500,2701):
        if i%5==0 and i%7==0:
            l.append(i)
            
    l

    2.

     

  • 相关阅读:
    Android TextView 跑马灯效果
    Android Studio 3.1.3正式版的新坑。。。
    日常 2018年6月11日21:07:22 周一
    Android Spinner 设置setOnItemSelectedListener时,竟会默认触发一次事件!
    String类的简要概述(1)
    Scanner(键盘录入)
    如何保存或读取数据(到android的data目录)利用context获取常见目录可优化代码
    测试修改的概念
    java object
    Rendering Problems Failed to load platform rendering library 为何打开布局页面时手机预览页面显示不出来?
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/13369222.html
Copyright © 2020-2023  润新知