美文网首页
条件控制语句

条件控制语句

作者: qjh_py | 来源:发表于2020-04-14 17:34 被阅读0次

    目录

    1. if语句
    2. input()函数
    3. if - else语句
    4. if - elif - else语句
    5. while语句
    6. 循环嵌套
    7. break和continue
    8. 程序优化-向更加优秀的代码看齐
    9. 运用

    1. 条件判断语句(if语句)

    • 执行的流程:
    • if语句在执行时,会先对条件表达式进行求值判断,
    • 如果为True,则执行if后的语句
    • 如果为False,则不执行
    • 语法:

    if 条件表达式 : 
         代码块
    

    • 代码块代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
    • 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
    • 代码块就是一种为代码分组的机制

    2. input() 函数

    • 该函数用来获取用户的输入
    • input()调用后,程序会立即暂停,等待用户输入
    • 用户输入完内容以后,点击回车程序才会继续向下执行
    • 用户输入完成以后,其所输入的的内容会以返回值得形式返回

    • 范例:
    # hello.py
    name = input('请输入你的姓名:')
    print('hello,'name')
    

    3. if-else语句

    • 语法:

      if 条件表达式 :
          代码块
      else :
          代码块
    

    • 执行流程:
    • if-else语句在执行时,先对if后的条件表达式进行求值判断
    • 如果为True,则执行if后的代码块
    • 如果为False,则执行else后的代码块

    • 范例:
    # calc.py
    temp = input('请输入1到100之间的数字:')
    number = int(temp)
    if 1 <= number <= 100 :
        print('你好帅!')
    else:
        print('你好丑!')
    

    4. if-elif-else 语句

    • 语法:

      if 条件表达式 :
          代码块
      elif 条件表达式 :
          代码块
      elif 条件表达式 :
          代码块
       ........
      else :
          代码块
    

    • 执行流程:
    • if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
    • 如果表达式的结果为True,则执行当前代码块,然后语句结束
    • 如果表达式的结果为False,则继续向下判断,直到找到True为止
    • 如果所有的表达式都是False,则执行else后的代码块
    • 总结: if-elif-else中只会有一个代码块会执行

    # 判断给定年份是否为闰年
    print(' 请输入一个年份,我可以判断它是否为闰年:',end = " ")
    temp = input()
    if not temp.isdigit():
        temp = print(" 抱歉,您的输入有误,下次要输入一个整数呀") 
        temp = 2020
    year = int(temp)        
    if year%400 == 0:
        print(temp+' 是闰年。')
    elif year%4 == 0 and year%100 != 0:
        print(temp+' 是闰年。')
    else:
        print(temp+' 不是闰年。')
    

    5. while语句

    • 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
    • 语法:

      while 条件表达式 :
          代码块
      else:
           代码块
    
    • 范例:
    # 小实验1(给定一个数字,打出有一定规律的*)
    temp = input('请输入一个数字:')
    num = int(temp)
    i = 0
    while i < num:
        print(' '*(num-i-1)+'*'*(num-i))
        i+=1
    else:
        print('打印完成!')
    
    #小实验2
    # 编写一个进制转换程序
    # bin()将十进制转换为二进制
    #需要用到while循环、input()函数、字符串格式化、if-else、数据类型转换等知识点。
    q = True 
    while q: 
        num = input(' 请输入一个整数 (输入 Q 结束程序 ):') 
        if num != 'Q': 
            num = int(num) 
            print(' 十进制 -> 十六进制 : %d -> 0x%x' % (num, num)) 
            print(' 十进制 -> 八进制 : %d -> 0o%o' % (num, num)) 
            print(' 十进制 -> 二进制 : %d -> ' % num, bin(num)) 
        else: 
            q = False 
    

    6. 循环嵌套

    • Python 语言允许在一个循环体里面嵌入另一个循环。
    • 语法
    while 表达式:
       [代码块]
       while 表达式:
          代码块
       代码块
    
    for 变量 in 循环规则:
       [代码块]
       for 变量 in 循环规则:
           代码块
       代码块
    

    7. break和continue

    • break 可以用来立即退出循环语句,包括else语句
    • continue 用来跳过此次循环
    # 用*打印倒三角
    i = 0
    while i < 6:
        j = 0
        while j < 6 - i:
            print('*', end='')
            j += 1
        print()
        i+= 1
    
    • 再运用之前学习到的格式化字符串的知识,我们就可以打印二年级时被逼着背了几十遍的九九乘法表了。
    # 打印九九乘法表
    i = 0
    
    while i < 9:
        i += 1
        j = 0
        while j < i:
            j += 1
            print(f'{j}*{i}={i*j}', end=' ')
    
        print()
    

    8.程序优化-向更加优秀的代码看齐

    • 如果我们想获取100以内的质数,一般来说用text_0就够了
    # text_0
    i = 2
    while i <= 100:
        flag = True
        j = 2
        while j < i:
            if i % j == 0:
                flag = False
            j += 1
        if flag:
            # print(i)
            # 可取消注释看打印出的质数
            pass
        i += 1
    
    • 但是如果上万呢?十万呢?
      我们就应该动一下我们聪明的大脑,来优化代码,减少其运行时间。如:text_1。
    • 难点:对于每个数n,其实并不需要从2判断到n-1,我们知道,一个数若可以进行因数分解,那么分解时得到的两个数一定是一个小于等于sqrt(n),一个大于等于sqrt(n),据此,上述代码中并不需要遍历到n-1,遍历到sqrt(n)即可,因为若sqrt(n)左侧找不到约数,那么右侧也一定找不到约数。
    #  text_1
    i = 2
    while i <= 100000:
        # 十万以内
        flag = True
        j = 2
        while j <= i ** 0.5:
            # 此处运用“难点”得知识点,改进代码。
            if i % j == 0:
                flag = False
                break
                # 此处用break跳出循环,减少运行时间。
            j += 1
        if flag:
            # print(i)
            pass
        i += 1
    
    • 不需要计算机得统计,我们也可以轻易的判断出text_1比text_0得运行时间少的多了。
    • 其实还有更快的方法,大家可以一起继续学习下去哦!

    相关文章

      网友评论

          本文标题:条件控制语句

          本文链接:https://www.haomeiwen.com/subject/nritvhtx.html